yuil :: SecOps

[WebSec] SQL Injection 본문

Web Security

[WebSec] SQL Injection

yuil.lee 2025. 10. 20. 14:35
SQL Injection
사용자가 서버에 제출한 데이터가 SQL Query로 사용되어 Database나 시스템에 영향을 주는 공격기법

입력 데이터에 대한 검증이 없어서 발생하는 문제
웹 어플리케이션의 일반적인 인증절차

SQL Injection 가능성 확인하기

인젝션 벡터 찾기
SQL Injection을 이용한 인증우회

#인증에 취약한 코드 예
chkUser = false
id = request("user_id")
password= request("user_pw")
strSQL="select user_id, user_pw, name, email, homepage from member
where user_id=' " & id & " ' and user_pw=' " & password & " ' "
set Rs=DBconn.execute(strSQL)
if not Rs.eof then chkUser = true
인증에 사용되는 SQL Query
SELECT * FROM user_table WHERE id='사용자입력값' and pw='사용자입력값'
#입력된 id 와 pw가 만족하는 레코드셋을 가져오게 된다.
SELECT * FROM user_table WHERE 1=1
모든 행이 반환
SELECT * FROM user_table WHERE 1=2
어떤 레코드 셋도 반환되지 않는다.

특정 ID의 권한으로 로그인 하기

변환 에러를 이용한 데이터 알아내기

 

UNION을 이용한 데이터 알아내기

 

반응형

'Web Security' 카테고리의 다른 글

[WebSec] Stored Procedure  (0) 2025.10.23
[WebSec] Blind SQL Injection  (0) 2025.10.22
[WebSec] SQL Basic  (0) 2025.10.20
[WebSec] CSRF (Cross Site Request Forgery)  (0) 2025.10.16
[WebSec] XSS (Cross Site Scripting)  (0) 2025.10.15