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 의 한줄 주석