Warning: Undefined variable $dir in /var/www/html/includes/report_guide_infra.php on line 177
보고서 가이드 — ForusSec Lab
W-01

SQL Injection (인증 우회)

위험도: 상
⚠️ 위험도 근거: 인증 우회로 관리자 권한 탈취 가능, DB 전체 조회·삭제 가능

자주 하는 실수 — 나쁜 예시 vs 좋은 예시

실수 유형: 개요 부실
❌ 나쁜 예시
SQL Injection은 위험한 취약점입니다.
✅ 좋은 예시
SQL Injection이란 사용자 입력값이 적절한 검증 없이 SQL 쿼리에 삽입되어, 공격자가 의도하지 않은 SQL 구문을 실행할 수 있는 취약점이다.
실수 유형: 발견 내용 불명확
❌ 나쁜 예시
로그인 페이지에서 SQL Injection이 발생했습니다. admin'-- 을 입력했더니 로그인이 됐습니다.
✅ 좋은 예시
점검 URL: http://target/login.php
파라미터: username (POST)
페이로드: admin'--

POST 요청:
username=admin'--&password=test

결과: admin 계정으로 인증 우회 성공 (관리자 대시보드 접근 확인)
실수 유형: 조치방안 추상적
❌ 나쁜 예시
입력값을 검증해야 합니다.
✅ 좋은 예시
Prepared Statement 적용:
취약: $sql = "SELECT * FROM users WHERE username = '$username'";
조치: $stmt = $db->prepare("SELECT * FROM users WHERE username = ?");
      $stmt->execute([$username]);