반응형
16.zombie_assassin 풀이.
if(preg_match('/\\\|prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~");
if(preg_match('/\\\|prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~");
음....[']를 우회만 하면 되서 차라리 익숙한 ereg 함수의 취약점을 이용한다.
ereg의 가장 큰 취약점은 NULL 문자 전까지만 체크한다라는 것이다.
참고로 예전 문제에서도 봤다싶이 encoding 값은 %00.
또 '%00을 하면 ereg 범위 안, %00'을 하면 ereg 범위 바깥.
즉 id로 로그인만 되면 되는 문제.
일단 우회가 되는지부터 확인.
?id=%00%27 입력.
우회가 된다. 우회가 된다는 것은 [']을 사용할 수 있다는 뜻이기도 하니까 || 을 써도 되고, True를 이용해도 된다.
둘 다 사용해 본다.
일단 || 사용했을 시
딱히 별 거는 없고 ||1만 사용하면 된다.
?id=%00%27||1%23 입력.
True를 이용했을 시.
||1 부분을 True로 한다.
?id=%00%27%20or%20true%23 입력.
위의 풀이는 or을 신경써야 되고, True까지 신경써야 되서 ||을 이용한 풀이가 더 나을 것.
파이썬 역시 쉽게 풀이 가능하다.
반응형
'# Related site issues > LOS' 카테고리의 다른 글
18.Nightmare. (0) | 2018.05.08 |
---|---|
17.Succubus. (0) | 2018.05.08 |
15.Assassin. (0) | 2018.05.08 |
14.Giant. (0) | 2018.05.08 |
13.Bugbear. (0) | 2018.05.08 |