Web Hacking/LOS
Lord of SQL Injection - zombie_assassin
Lucvs
2021. 8. 21. 20:43
이전 succubus 문제와 query 문의 형식은 아주 비슷하다.
그러나 addslashes 함수가 추가되어 있다.
addslashes 함수는 GET 방식으로 받아온 데이터에 싱글쿼터나 더블쿼터, 그리고 역슬래시가 있으면 해당 문자의 바로 앞에 역슬래시를 하나 더 붙여주는 역할을 한다. 예를 들어 query 문이 id=" 과 같이 전달되었다면, addslashes 함수를 거친 이후에는
id=\" 과 같이 역슬래시가 추가된다.
따라서 succubus 문제처럼 역슬래시를 이용하여 바로 뒤의 싱글쿼터를 문자열로 인식시키는 방법은 사용할 수 없다.
그런데 우리에게는 같은팀이 하나 존재한다. strrev 함수이다. 누가봐도 문자열은 reverse 시키는 함수이다.
이를 이용하면 위와 같이 쿼리문을 전달했을 때 실질적으로는
id="\ 과 같이 순서가 뒤바뀌어 전달될 것이다.
이렇게 된다면 역슬래시가 뒤쪽으로 빠지기 때문에 GET 방식으로 받아온 데이터를 감싸는 싱글쿼터를 일반적인 문자열로 캐스팅할 수 있을 것이다.
이제는 쉬워진다. 싱글쿼터 대신 더블쿼터를 사용하면 된다. strrev 함수도 감안하여 값을 전달해주면 된다.
따라서 작성된 query 문은 다음과 같다.
?id="&pw=%231%20ro%20