[Lord of SQL Injection] #1

김태현·2022년 8월 26일

Lord of SQL Injection

목록 보기
1/7
post-thumbnail

query = "select id from prob_gremlin where id='{_GET[id]}' and pw='{$_GET[pw]}'";

이 부분을 보면 id 와 pw 둘다 참이어야 한다.

if($result['id']) solve("gremlin");

하지만 아이디만 찾으면 gremlin이 해결된다고 한다.

따라서 id pw 둘 다 참이 되게 하는 쿼리문을 만들어야 한다.


일단 무작위로 id 와 pw를 넣어보았다. id 에는 a 를 pw 에는 1을 넣으니

select id from prob_gremlin where id='a' and pw='1' 로 변했다.

여기서 id 값은 어떠한 값이여도 상관 없으니 pw 를 무조건 참인 값으로 우회해 볼것이다.


id 값에는 아무런 값을 넣고 pw 값에 or 를 사용하여 pw = 1 이거나 1=1이다. 라면 무조건 참이되는 구문이 된다.

이후 아래와 같이 문제를 해결할 수 있다.

업로드중..

중요한 점은 주소창을 보면

첫번째에 입력할때는 ?id=a&pw=1' or '1=1 이었지만 주소로 이동하고 나니

두번째에 입력할때는 ?id=a&pw=1%27%20or%20%271=1 이런식으로 바뀐다.

여기서 알 수 있는 부분은 %27 = ' , %20 = 띄어쓰기라는 것이다.

profile
보안을 공부중입니다

0개의 댓글