문제의 소스 코드입니다.
id='guest' 뒤에 주석처리가 되어있습니다.
id가 admin이 되면 문제가 풀립니다.
mysql에서 #문자는 한 줄 주석 처리 문자입니다.
따라서 개행을 시켜주면 주석의 영향을 받지 않습니다.
url에서 개행에는 %0a가 사용됩니다.
mysql에서 세미콜론을 만나기 전까진 한 문장이 종료되지 않으므로 이어서 작성할 수 있습니다.
mysql_fetch_array 함수는 한 행만 가져오므로
앞에 있는 guest에 대한 조건은 false로 만들어 주어야 합니다.
즉 and pw='' or id='admin'을 추가로 넣어주면 됩니다.
먼저 '문자로 pw를 닫아준 후 %0a로 개행합니다.
이후 and pw=''으로 id='guest'라는 조건을 false로 만든 뒤
or id='admin'으로 원하는 결과를 얻어낼 수 있습니다.
최종 쿼리문은 아래와 같습니다.
pw=' %0a and pw='' or id='admin'
'write-up(web) > LOS' 카테고리의 다른 글
[Lord of SQLInjection] dark_eyes write-up (0) | 2022.08.04 |
---|---|
[Lord of SQLInjection] iron_golem write-up (0) | 2022.08.03 |
[Lord of SQLInjection] xavis write-up (0) | 2022.08.02 |
[Lord of SQLInjection] nightmare write-up (0) | 2022.08.01 |
[Lord of SQLInjection] zombie_assassin write-up (0) | 2022.08.01 |