이 문제는 no 파라미터에만 문자를 넣을 수 있다.

preg_match를 보면 no에 대해서 싱글쿼터와 더블쿼더가 필터로 추가되었다.


따라서 쿼터는 사용이 불가능하다.

no에 1을 넣고 리퀘스트를 보내면 Hello guest라는 리스폰스가 온다.

따라서 no=2 or id='admin'을 보내면 참이 되어 문제가 풀릴것이다.

하지만 쿼터가 막혀있으므로 id=admin을 다른방식으로 보내야한다.

mysql에선 문자를 hex로 변환해 보내도 hex를 디코딩한 문자열로 인식해서 값을 보여준다.

따라서 admin을 hex로 인코딩하여 보내면 문제가 풀리다.



'Wargame > lord of sqlinjection' 카테고리의 다른 글

Lord of SQLinjection Darkelf  (0) 2017.07.25
Lord of SQLinejction wolfman  (0) 2017.07.25
Lord of SQLinjection orc  (0) 2017.07.25
Lord of SQLinjection cobolt  (0) 2017.07.25
Lord of SQLinjection Gremlin  (0) 2017.07.25

첫번째 문제와 다른점은 pw부분에 값을 넣으면 md5로 인젝션을 해준다.

먼저 생각해볼 수 있는것은 md5부분을 무시하는것이다. 첫번째 문제처럼 id부분에서 주석을 넣으면 풀릴것이다.



'Wargame > lord of sqlinjection' 카테고리의 다른 글

Lord of SQLinjection Darkelf  (0) 2017.07.25
Lord of SQLinejction wolfman  (0) 2017.07.25
Lord of SQLinjection orc  (0) 2017.07.25
Lord of SQLinjection goblin  (0) 2017.07.25
Lord of SQLinjection Gremlin  (0) 2017.07.25

문제는 id와 pw에 적절한 값을 넣어 인젝션을 하는것이다.

preg_match로 GET으로 넘어온 파라미터 인자문자열을 검사한다.

prob, _, ., ()만 검사하므로 주석은 먹힐것이다.

따라서 주석을 preg_match로 검사하지 않기 때문에 주석(%23)을 사용하면 인젝션이 된다.



'Wargame > lord of sqlinjection' 카테고리의 다른 글

Lord of SQLinjection Darkelf  (0) 2017.07.25
Lord of SQLinejction wolfman  (0) 2017.07.25
Lord of SQLinjection orc  (0) 2017.07.25
Lord of SQLinjection goblin  (0) 2017.07.25
Lord of SQLinjection cobolt  (0) 2017.07.25

+ Recent posts