Wargame/Load of SQL injection (rubiya)
Los gremlin 1번 문제 (rubiya)
SunrinWooju
2019. 10. 6. 21:23
LoS는 따로 플래그를 입력하는 방식이 아니라 코드 안의 solve() 함수가 동작하도록 하면 문제가 풀린다.
그리고 친절하게 내가 입력 한 값이 어떻게 쿼리에 들어가는지도 보여준다.
첫 번째 문제는 gremlin이다.
앞서 말한것 처럼 solve() 함수를 동작시키기 위해선 if($result['id']) 라는 조건문을 통과해야 한다.
즉 id 의 존재 여부에 따라서 if 문의 조건을 통과 할 수 있는지 없는지를 말한다.
하지만 id가 없으면 0이 반환되기 때문에 아이디가 어떻든 존재하기만 하면 이 문제는 풀린다.
select id from prob_gremlin where id='{$_GET[id]}' and pw='{$_GET[pw]}'
위의 쿼리처럼 GET방식으로 아이디와 비밀번호를 입력받아서 퀴리문을 보낸다.
id 의 값이 뭐든 상관 없기 때문에 참이라는 결과값만 만들어 주면 될 것 같다.
그래서 쿼리문을 완성하기 위해서 아래의 파라미터 값을 입력했다.
?id= 1' or 1=1#
-> # 는 데이터베이스 mysql 의 한줄 주석