본문 바로가기
Web/Webhacking.kr

Webhacking.kr Challenge old-49 문제 풀이

by jh117jh 2024. 2. 2.
728x90

이번 문제는 sql injection으로 level에 맞는 id를 출력해 준다.

 

 

코드를 보면 select, or, and, (, ), limit, 공백( ) 등등 많은 공격 기법들이 막혀있다 또한 level 숫자를 바꿔도 admin은 출력되지 않으므로 

12' or id='admin'# 형식을 넣어 admin이 출력되게 해야 될 것이다. (쿼리문을 참으로 만들기 위해서는 lv가 존재하지 않는 값을 넣어야 된다.)

 

그럼 이것을 어떻게 필터링을 우회하여 작성하냐가 문제인데

 

지금까지 했던 것을 조합하면 쉽게 풀 수 있다.

 

우선 lv는 정수형태이므로 싱글쿼터(')로 닫아줄 필요가 없고 공백과 or는 ||를 사용하여 우회하면 된다.

또한 'admin'은 0x61646d696e로 hex값을 이용하여 문자열로 표현할 수 있다.

 

최종적으로 12||id=0x61646d696e#를 넣으면 문제가 풀린다.

 

 

728x90