zombie assassin 입장!
이번 단계는 id와 pw 모두 query에 포함된다.
특별히 달라진 점은 addslashes()를 적용시킨 후에 strrev() 함수가 추가된 것이다.
strrev함수는 인자를 거꾸로 반대로 반환하는 함수이므로 입력한 payload가 반대로 적용된다.
zombie assassin을 clear하려면 result['id']가 존재해야 하므로 query를 참으로 만들기만 하면 된다.
이전 단계처럼 \문자를 사용해서 id의 '를 일반 문자로 변환하고 pw의 '까지 id의 값으로 인식시키는 방법을 사용해봤다.
그러기 위해서 \를 id에 넣으려고 했지만 addslashes() 때문에 \가 \\로 escape되면서 id값의 인식 범위를 변경하지 못했다.
addslashes()를 활용하여 \를 포함하기 위해 id에 NULL(%00)문자를 포함시켰다.
(adslashes함수는 문자열에 포함된 싱글쿼터( ' ), 더블쿼터( " ), 널바이트( NULL ), 백슬래시( \ ) 앞에 \를 추가한다)
?id=%00 → id='0\'
id에 \를 포함시킨 후에는 pw에 or 1=1#를 넣어서 query를 참으로 만들어야 한다.
이때 strrev() 때문에 문자열이 반대로 나열되므로 이를 참고하여 payload를 반대로 입력해야 한다.
?id=%00&pw=%231=1%20ro
zombie assassin 해결!
'Study > Web Hacking' 카테고리의 다른 글
[LOS] nightmare (0) | 2021.08.24 |
---|---|
[natas] Level 25 -> Level 26 (0) | 2021.08.22 |
[natas] Level 24 -> Level 25 (0) | 2021.08.09 |
[LOS] succubus (0) | 2021.08.09 |
[LOS] assassin (0) | 2021.08.02 |