[3] GOBLIN 풀이

2022. 1. 23. 17:58Web hacking/LOS

 

▲ GOBLIN 문제에 사용된 코드

전에 있던 문제들과는 약간 다른 모습을 보여주는 문제가 나왔다.

pw가 아닌 no라는 변수만을 입력받고 있으며 no에는 따옴표를 넣지 못 하도록 preg_match 함수를

써서 필터링을 하고 있는 모습이다.

 

그런데 id값을 입력받지 않는다기에 나는 처음에는 당황했다. 그럼 어떻게 공격을 하는가....

그러다가 찾아보니 쿼리문의 특징 중에 한 변수가 한 쿼리에서 중복으로 입력이 이루어진다면

마지막에 입력된 값이 저장된다는 것이었다.

 

일단 이것을 인지한 상태로 no 변수에 값을 입력해 보았다.

 

▲ no 변수에 값을 입력한 모습

no에 1을 입력 했을 때의 모습이다. no 변수에서 1이라는 값은 guest라는 계정의 값과 일치하는

것으로 보여진다. 그 외에 값을 입력해 보았을 때에는 별다른 문구가 뜨지 않았다.

공격을 할 때에는 1외에 다른 값을 넣은 채로 진행해 보기로 했다.

 

▲ no 변수에 아무 값이나 대입한 후 or 연산자로 공격을 실행한 모습

따옴표 등의 쿼터 문자들이 필터링이 되어 있어 혹시나 하는 마음에 admin만 넣어보았지만

문자열로 인식되지 않아서 공격이 성공하지 않은 것으로 생각된다.

그래서 어떤 방법이 있을까 생각해 보다가 아스키코드를 이용하여 치환 시키게끔 하여 공격해보는 방법이 생각났다.

 

▲ char 함수를 이용한 공격이 성공한 모습

 

성공했다!

 

 

※ 참고

( 아스키 코드표 - https://ko.wikipedia.org/wiki/ASCII )

 

'Web hacking > LOS' 카테고리의 다른 글

[5] WOLFMAN 풀이  (0) 2022.01.29
[4] ORC 풀이  (0) 2022.01.29
[2] COBOLT 풀이  (0) 2022.01.23
[1] GREMLIN 풀이  (0) 2022.01.22