-
[LOS] succubusWargame/Lord of SQLInjection 2019. 7. 6. 02:43
[succubus] https://los.rubiya.kr/chall/succubus_37568a99f12e6bd2f097e8038f74d768.php
' 가 필터링되어 있다.
쿼리문의 결과 값이 존재하기만 하면 문제가 풀린다.
하지만,
id와 pw를 알아낼 수 있는 방법이 없기 때문에 뭔가를 우회해야 한다.
' 필터링을 우회할 수 있다면 쉽게 풀 수 있을텐데...;;
' 필터링을 우회하는 방법을 찾아보다 addslashes 함수가 생각났다.
addslashes 함수는 쿼리문의 ' "와 같은 특수 문자 앞에 \를 붙여주어 문자로 인식하도록 하는 함수이다.
addslashes와 같이 id의 값으로 \를 입력해주면, '를 문자로 인식하지 않을까?!
select id from prob_succubus where id='\' and pw=''
id에 \를 입력해줌으로써 id 값을 감싸고 있는
뒤의 작은 따옴표를 문자로 인식하여 pw의 시작하는 작은 따옴표까지를 id의 값으로 인식할 것이다.
이를 이용하여 쿼리문을 항상 참이 되도록 만들어줄 수 있다.
select id from prob_succubus where id ='\' and pw=' or true#'
해당 쿼리문을 해석하면, id가 ' and pw= 이거나 true 이다.
id가 ' and pw=인 값은 존재하지 않겠지만, true에 의해 항상 참이 되어 결과 값이 존재하게 된다.
?id=\&pw=or true%23
[ 작은 따옴표 우회 ] https://security.stackexchange.com/questions/37749/no-single-quotes-is-allowed-is-this-sql-injection-point-still-exploitable
[ SQLi 우회 기법 정리 ] https://ar9ang3.tistory.com/7
'Wargame > Lord of SQLInjection' 카테고리의 다른 글
[LOS] nightmare (0) 2019.07.13 [LOS] zombie_assassin (2) 2019.07.09 [LOS] assassin (0) 2019.07.06 [LOS] giant (0) 2019.07.05 [LOS] bugbear (0) 2019.07.05 댓글