Network/LOS

[LOS_3]goblin

dcho 2019. 8. 16. 13:33
SMALL

이번 문제는 기본적으로 id에 guest가 들어있고 no를 get으로 받아 쿼리를 날리는 문제이다. 조건문에는 아이디가 admin으로 들어와야 풀리는 문제 goblin이다.

no에 아무거나 입력하니 이와같이 뜬다. 난 어드민이고 싶은데!


if(preg_match('/\'|\"|\`/i'$_GET[no])) exit("No Quotes ~_~"); 

게스트를 빠져나가서 아이디를 어드민으로 넣어주고 싶었지만... 보호기법이 작용한다.



음 다시 돌이켜보니 guest에 해당하는 no는 1이다. 그렇다면 admin에 해당하는건 다른 숫자이지 않을까?

하지만 다른 방법이 떠오르지 않는다. 

https://los.eagle-jump.org/goblin_5559aacf2617d21ebb6efe907b7dded8.php?no=1 and id=admin

그래서 이와 같은 방법으로 id에 admin을 넣을수 있게 하고 싶었지만 그게 쉽지가 않다. 문자열처리도 해봤고 싱글쿼터를 URL인코딩해주어 %27으로 넣어줬지만    No Quotes ~_~ !!


그러면 문자열을 우회 하는 방법을 찾아보자
이 글을 참고하니 

0x(hex)를 이용하면 된다고 나와있다. admin을 hex 형식으로 바꾸면 61646D696E 이것이다.

그렇다면 0x61646D696E를 넣어보았다.


no에 1을 넣고 id에 우회해서 넣었는데 guest라고 뜬다. 아마 and연산자의 우선순위 때문인것 같다. 

AND연산자를 틀리게 해보았다. 결과는 정답! 올바르게 admin을 인식하였다.









'Network > LOS' 카테고리의 다른 글

[LOS_6]darkelf  (0) 2019.08.16
[LOS_5]wolfman  (0) 2019.08.16
[LOS_4]orc  (0) 2019.08.16
[LOS_2]cobolt  (0) 2019.08.16
[LOS_1]gremlin  (0) 2019.08.16