본문 바로가기
C. 웹/실습

[WEB] SQL Injection 공격 문제

by E-HO 2017. 7. 27.
728x90

Kknock 친구한테 받은 SQL Injection을 활용한 문제이다.


이 페이지의 소스코드를 봐보니

Basic2.php라는 페이지가 있다는것을 알 수 있어서 접속 해보았다.

처음에 문제를 풀 때는 id칸에 쿼리문을 넣는데 addslashes 함수 때문에 ' 이것을 넣을때 앞에 \이것이 붙는 것을 우회 하는 것 인 줄 알았다.

그래서 앞에 quote를 쓰기 전 앞에 %bf같은 문자를 넣으면

ex) admin%bf%27

( %27은 ' 를 뜻한다. )

이런식으로 넣었는데 되지 않아서 코드를 다시 봐보니 no=$no 이렇게 되있고 quote로 감싸져있지 않았다.

no에 넣을 수 있는 숫자 값은 1,2 이므로 no에다가

1 or id='admin' #

을 넣어보면

$q="select id from account_info where id = '$id' and pw = '$pw' and no = 1 or id = 'admin'#";

or를 기준으로 오른쪽이 참이 되어서 쿼리문이 작동하는 것을 알 수 있다.


따라서 성공!


오른쪽이 참이 되도록 하면 문제가 풀릴 것 같아서 오른쪽이 참이 되도록 

no에다가 

1 or length(no)>0 

를 넣어보니깐


이렇게 guest로 로그인이 되었다.


이 구문을 이용해서  admin으로 로그인 하는것은 아직 잘 모르겠다... 

더 해봐야겠다



반응형

'C. 웹 > 실습' 카테고리의 다른 글

[LOS] 2번 cobolt  (0) 2017.08.03
[LOS] 1번 gremlin  (0) 2017.08.03
[WEB] Brute Force 문제  (0) 2017.07.27
[Webhacking.kr] 9. Challenge 14  (0) 2017.07.20
[Webhacking.kr] 8. Challenge 4  (0) 2017.07.20