⚠ Error-based SQL Injection
Practice 4 — DB 오류 메시지로 데이터 추출
OWASP A03 · SQL Injection
실습 목표: MySQL 오류 메시지(extractvalue, updatexml 등)에 데이터를 유출시키세요.
힌트: 쿼리 오류가 발생하면 아래 빨간 박스에 MySQL 에러 문자열이 표시됩니다.
예시: ?query=' AND extractvalue(1,concat(0x7e,version()))-- -
검색어를 입력하면 쿼리가 실행됩니다.
Source Code
$query = $_GET['query'] ?? '';
$stmt = $pdo->query("SELECT * FROM security_user WHERE name='$query'");
if ($stmt === false) {
echo $pdo->errorInfo()[2]; // 오류 메시지가 화면에 노출됨
}