[LOS] 회원가입 + 1번 Goblin 풀이

2019. 7. 29. 14:13문제풀이/los.rubiya.kr

링크는 https://los.rubiya.kr/ 여기.

회원가입할 때 주의점은 아이디/이메일/비번 모두에 . 이랑 _ 들어가면 안되는거 ㅠㅠㅠㅠ

내 이메일에 _ 들어가는데 못써서 당황...

회원가입 후 첫 문제는 gremlin이다. 눌러주면 문제는 다음과 같다

preg_match는 해당 문자열이 존재하는지 확인하는 함수이다. 문제에서는

prob _ . () 가 있으면 No Hack

_

이라는 문구를 출력하며 exit된다.

preg_match 함수 안에 있는 /i는 대소문자 상관없이 확인한다는 말!

즉 /prob도 안되고 /pRob /PROB 모두 안된다는 말이다.

이 문제를 solve하려면 $result['id']가 존재해야 한다.

즉, 쿼리가 존재하기만 하면 된다. (db 내 모든 데이터에 id가 존재한다는 가정 하에)

그래서 그냥 id 에 'or1=1--(공백) 을 넣어주면 query는

select id from prob_gremlin where id=''or 1=1-- ' and pw=''

가 된다.

mysql에서 --(공백)은 한줄주석이므로 뒤에 있는 내용은 유효하지 않게 되고

(그래서 뒤의 pw에 아무 값도 넣지 않아도 됨)

 

id=''or 1=1이 0or1이 되므로 참이 되어 모든 데이터를 출력하라는 쿼리가 된다.

주의할 점은 or 뒤에 반드시 띄어쓰기 해줘야 한다는 것!

 

입력은 url의 맨 뒤에 ?id=[정답] 이렇게 넣으면 된다. 아래처럼!

[https://los.rubiya.kr/chall/gremlin_280c5552de8b681110e9287421b834fd.php?id=%27or%201=1--+]

만약 pw도 입력하고 싶다면 ?id=[정답1]&pw=[정답2] 이렇게 적으면 된다.

참고로 %27은 url encoding 방식으로 '를, %20은 띄어쓰기를 나타낸다.

이렇게 입력할 수 있는 이유는, id와 pw를 GET방식으로 불러오라고 적혀있기 때문이다.

GET방식의 경우 url 파라미터로 입력받고, POST방식으로 입력해야 할 경우 burp suite같은 툴을 이용하면 된다.

'문제풀이 > los.rubiya.kr' 카테고리의 다른 글

[LOS] 6번 darkelf 풀이  (0) 2019.07.29
[LOS] 5번 wolfman 풀이  (0) 2019.07.29
[LOS] 4번 orc 풀이  (0) 2019.07.29
[LOS] 3번 goblin 풀이  (0) 2019.07.29
[LOS] 2번 cobolt 풀이  (0) 2019.07.29