문제이다! 친절히 SQLI 문제라고 알려주고 있다. 코드를 구경해보자.
먼저 문제가 해결되는 조건부터 살펴본다.
db에 쿼리문을 날려 조회된 id값이 admin일 경우 해결된다. 쿼리문은 다음과 같다.
select id, cash, from chall46 where lv=$_GET[lv]
싱글쿼터도 없기 때문에 싱글쿼터 탈출은 생각안해도 된다. 필터링 역시 str_replace함수로 대체만 해주기 때문에 두 번 써주면 모두 우회가 된다.
내가 생각하는 페이로드는 다음과 같다.
앞 조건 lv=? 거짓을 만든 후 or id='admin'을 해서 참을 만들어준다. 그러나 addslashes로 싱글쿼터를 필터링하고 있기 때문에 싱글쿼터는 못 쓴다. 대신 char함수나 16진수, 2진수, concat 함수 이용 등등 너무 많은 방법이 있지만 이번엔 2진수를 이용해보자.
lv=0%09or%09id=0b110000101100100011011010110100101101110
'Web Hacking > Webhacking.kr' 카테고리의 다른 글
[Webhacking.kr] old-43 write up (0) | 2024.03.17 |
---|---|
[Webhacking.kr] old-49 write up (0) | 2024.03.17 |
[Webhacking.kr] old-8 write up (0) | 2024.03.12 |
[Webhacking.kr] old-21 write up (0) | 2024.03.01 |
[Webhacking.kr] old-27 write up (0) | 2024.03.01 |