Webhacking Writeup 49번 문제입니다.

46번 문제와 똑같은 페이지라 순간 잘못들어왔나 생각하며
재확인 했고 46번과 비슷한 문제로 예상되어 바로 시도해봤습니다.

다행이 46번보다는 소스코드가 짧습니다.
코드를 해석해보면
select, or, and, \ , limit, ( , ) , order, cash, \t, ' , '' 를 필터링 하고있습니다.
46번과 비교해보자면 여기서는 0x인 16진수를 막지않고 콤마(,)를 막고 있는걸 보니
16진수로 admin을 입력하라는 힌트를 생각 할 수 있습니다.
그러나 추가로 or and를 필터링 하고있으니 이부분을 우회하는 것이 필요합니다.
or and 우회 키워드로 검색을 해보니

이러한 방식으로 우회가 가능하다는 점을 찾았습니다.
이제 앞부분 lv값이 False가 나오는 값을 찾고 || 형태로 or을 추가한후 id=admin을 16진수로
입력하면 문제가 해결될 것입니다.
먼저 lv은




4까지 값이 존재하는 것을 확인했습니다.
존재하지 않는 값을 넣어 False를 출력해야 하므로 lv=6으로 삽입하고
or 대신에 || 을 사용
id=admin은 id=0x61646d696e 형태로 삽입
(추가로 필터링 우회를 검색하다 알게된점인데
|| 형태로 사용할 경우 띄어쓰기를 하지 않아도 된다고 합니다.)
정리하면
lv=6||id=0x61646d696e
위 와같이 될것입니다.
삽입을 시도해보면

문제가 해결되었습니다!
'Wargame(Web) > Webhacking.kr Writeup' 카테고리의 다른 글
Webhacking Writeup 9번 문제 (0) | 2022.08.13 |
---|---|
Webhacking Writeup 20번 문제 (0) | 2022.08.13 |
Webhacking Wrietup 46번 문제 (0) | 2022.08.13 |
Webhacking Writeup 54번 문제 (0) | 2022.08.12 |
Webhacking Writeup 58번 문제 (0) | 2022.08.12 |