SQL Injection문제이다.
# / union / from / challenge / select / ( / 수평 탭 / "/" / limit / = / 0x <<--모두 필터링 된다.
쿼리문에 no=($_GET[no]) <<== 처럼 괄호로 묶어있기 때문에 sql injection을 할때 괄호를 안 맞춰서 에러가 나는 일은 없게 해야한다.
또한 =이 필터링 되기 때문에 = 대신에 like 와 같은 문법을 사용한다.
그리고 #이 필터링 되기 때문에 " -- " < 이와같은 방식을 이용해서 뒷 부분을 주석처리 해준다.
guest의 no는 1 이었고, admin의 no는 1과 가까울 것이라고 생각했다.
url창에 no=0%29%20or%20no%20like%202%20--%20을 입력해서 풀거나
입력창에 0) or no like 2 -- 를 직접 입력해 푼다.
select id from challenge27_table where id='guest' and no=(0) or no like 2 -- (주석처리) ) <<-- 가 될 것이다.
'Web Hacking > Webhacking.kr' 카테고리의 다른 글
Webhacking.kr 16번 (0) | 2018.04.12 |
---|---|
Webhacking.kr 26번 (0) | 2018.04.12 |
Webhacking.kr 47번 (0) | 2018.04.11 |
Webhacking.kr 25번 (0) | 2018.04.11 |
Webhacking.kr 18번 (0) | 2018.04.11 |