본문 바로가기

카테고리 없음

Lord of SQLInjection 17번 zombie_assassin

반응형

https://los.rubiya.kr/

 

Lord of SQLInjection

 

los.rubiya.kr

 

 

Lord of SQLInjection 17번 zombie_assassin 

 

 

 

 

 $_GET['id'] = strrev(addslashes($_GET['id']));
 $_GET['pw'] = strrev(addslashes($_GET['pw']));

 

- strrev는 문자열을 역으로 바꾸는함수이다.

- addslashes는 싱글쿼터, 더블쿼터, 백슬래시, Null문자가 포함되어 있다면 해당 문자 앞에 백슬래시를 추가해주는 함수이다.

 

 

방법 1)

 

위와 같이 더블쿼터를 입력하게 되면 id='"\'가 된다.

addslashes($_GET['id']) : \"

strrev(addslashes($_GET['id'])) : "\

 

query : select id from prob_zombie_assassin where id='"\' and pw=''

이렇게 되면 id는 저번 문제(succubus)와 같이 백슬래시로 인해 뒤에 오는 싱글쿼터가 문자로 변하여 id는 노란색 부분이 된다. 

 

 

 

방법2)

 

Null(%00)문자를 입력하면 id의 싱글쿼터가 백슬래시로 인해  pw=' 까지 문자로 인식된다.

 

 

* 싱글쿼터를 입력하게 되면 역으로 바꾸는 strrev함수 때문에 쿼리결과가 id=''\'가 되면서 id의 싱글쿼터를 탈출할 수 없게 된다.

* 백슬래시를 입력하게 되면 \\가 두개가 생기므로 이것 역시 우회할 수 없게 된다.

 

 

 

pw에는 or 구문으로 true값을 만들어주면 된다.

 

 

pw='or 1=1#

strrev로 인해 문자가 거꾸로 바뀌므로 pw=%231=1||로 입력하면 된다.

 

반응형