webhacking.kr 사이트의 18번 문제를 보면 다음과 같다.
SQL Injection 문제이고 index.phps 페이지를 제공해 주었다.
index.phps 페이지를 보면 다음과 같다.
no라는 변수를 받아서 여러가지 문자를 필터링한다.
id='guest'이고 전달받은 no변수의 값에 대해 challenge18_table에 있을 경우 해당 id를 변수 q에 저장한다.
q의 값이 admin이면 문제가 풀리는 것 같다.
일단 id가 admin 이어야하기 때문에 기존 where문을 이용하면 안될 것 같다.
즉, id='guest' and no=$_GET[no] 이 조건을 무효화 시켜야 한다.
그러기 위해서 no 값에 0을 넣으면 true and false가 되기 때문에 무효시킬 수 있다.
그리고 나서 admin의 no값을 찾아야 하는데, 페이지만 봐서는 알 수가 없다.
일단 1을 넣으면 다음과 같은 화면을 볼 수 있다.
guest의 no 값이 1인것을 알 수 있다.
chellenge18_table에 어떤 데이터들이 들어 있는지 모르지만 guest의 no 값이 1이기 때문에
admin의 no 값은 2일 확률이 높다.
no=0%0Aor%0Ano=2를 입력해보면 문제가 풀린다.
'Wargame > webhacking' 카테고리의 다른 글
[webhacking.kr] 23번 문제 (0) | 2017.06.09 |
---|---|
[webhacking.kr] 24번 문제 (0) | 2017.06.08 |
[webhacking.kr] 17번 문제 (0) | 2017.05.04 |
[webhacking.kr] 16번 문제 (0) | 2017.05.04 |
[webhacking.kr] 15번 문제 (0) | 2017.05.04 |