War game/LOS

1. gremlin 풀이

째로스 2023. 4. 24. 16:59

※ LOS = Lord Of SQL Injection

 

Ⅰ. 문제

(문제를 클릭하면 위와 같은 화면을 볼 수 있는데, 아래 코드들은 해당 페이지의 php코드이다.)

 

Ⅱ. 코드 분석

 4 : db연결

 5,6 : GET 메소드를 통해 id, pw를 전달 받음

 7 : db에 질의

 8 : 쿼리문 화면에 출력

 9 : db에 질의하여 나온 결과물들 중 가장 위에 있는 튜플 선택

 10 : 선택된 튜플에 id가 존재하면 문제 풀이 성공

 

Ⅲ.  취약점 분석

 - GET 방식을 통해 파라미터를 넘기고 있음

 - id, pw를 하나의 쿼리문을 사용하여 질의하고 있음

 

Ⅳ. 풀이방법

 - URL을 변경하여 파라미터를 넘겨주되, result에 속하는 튜플이 있을 수 있도록 SQL Injection 공격을 실시한다.

 <payload>

https://los.rubiya.kr/chall/gremlin_280c5552de8b681110e9287421b834fd.php?id=123' or 1=1 --+

 id에 어떤 값을 입력하든 상관없이 작음 따옴표를 사용하여 id 입력란을 마쳐주고, or 1=1 을 넣어 질의문이 항상

 참이도록 한다. 그리고 뒤에 --+를 넣어줌으로서 뒤에 있는 쿼리문 뒤의 문자열들을 무시한다.