728x90
27번을 눌러 들어가보면 깔끔하게 되어있다.
바로 view-source를 눌러보았다.
해당 소스코드에서 php 부분만 살펴보았다.
특정 문자열들은 필터링 되어 있으며, 쿼리를 보낼 때 id가 guest로 고정되어 있다.
하지만 조건문을 확인하였을때, id가 admin일 경우만, 문제 해결이 된다고 한다.
각 유저 아이디의 no값을 알아내봤다.
각각 1과 2를 제출하였을 때,
no = 1일 경우, guest인 것으로 확인 되었고,
no = 2일 경우, query error 메세지가 보인다.
no = 2가 admin 값의 no 값임을 예상해볼 수 있다.
select id from challenge27_table where id='guest' and no=(0) or no = 2)")) or die("query error")
0) or no =2 를 넣고 쿼리문 전체를 확인하였다.
뒤의 괄호가 하나가 남으므로, 주석 처리를 위해 --를 추가하였다.
select id from challenge27_table where id='guest' and no=(0) or no = 2 -- )")) or die("query error")
하지만 한가지 더 유의할 점이 있다.
필터링 된 문자열에서 =은 쓰지 못하므로 like로 대신한다.
0)%0Aor%0Ano%0Alike%0A2%0A--+
해당 url 변조 값을 입력하면 문제를 해결할 수 있다.
728x90
'Web > Webhacking' 카테고리의 다른 글
Webhacking - challenge(old) 55번 (0) | 2021.11.08 |
---|---|
Webhacking - challenge(old) 2번 (0) | 2021.11.08 |
Webhacking - challenge(old) 18번 (0) | 2021.10.16 |
Webhacking - challenge(old) 26번 (0) | 2021.09.25 |
Webhacking - challenge(old) 24번 (0) | 2021.09.25 |