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 |