level 1과 같이 <script>alert(1);</script> 코드를 주입해보면  위 코드가 필터링 된다.

저 문자열에 있는 여러 문자열을 포함하여 시도해보니 '<알파벳' 을 필터링 하는 것 같다.

script 태그를 사용할 수 없기에 image태그를 이용하여 우회할 수 있다.

<img src=1 onerror="alert(1);">태그를 이용하면 지정한 이미지를 로드할 수 없을 때 alert 코드를 실행시킨다.

위 태그를 주입하면 클리어가 가능하다.

'Security & Hacking > Wargame' 카테고리의 다른 글

[ XSS game] Level 4  (0) 2019.08.07
[XSS game] Level 3  (0) 2019.08.06
[XSS game] Level 1  (0) 2019.08.06
[webhacking.kr] Challenge 18  (0) 2019.06.21
[webhacking.kr] Challenge 17  (0) 2019.06.13

첫번째 문제다.

위에 있는 문제 설명을 읽어보면 alert(경고창)을 띄우라고 한다.

평범한 js코드를 주입하면 문제 클리어가 가능하다

<script>alert(1);</script>

 

'Security & Hacking > Wargame' 카테고리의 다른 글

[XSS game] Level 3  (0) 2019.08.06
[XSS game] Level 2  (0) 2019.08.06
[webhacking.kr] Challenge 18  (0) 2019.06.21
[webhacking.kr] Challenge 17  (0) 2019.06.13
[webhacking.kr] Challenge 16  (0) 2019.06.08

문제를 보면 sql 인젝션 문제인 것 같다. 

 

페이지 소스를 보면 hi admin을 출력해야 하는 것 같다. get방식으로 no의 값을 받는다. 

erigi 함수를 보면 sql 인젝션을 방어하기 위해 필터링하는 문자들이 보이는데 공백문자도 필터링하고있다.

이는 %0a 로 우회할 수 있다.

또한 mysql_query 함수를 보면 id는 guest로 지정하고 있고 no값만 get방식으로 받고 있다.

우선 입력창에 1을 입력하면 결과값으로 hi guest가 출력된다. guest의 no 값은 1이다.

admin의 no 값은 1보다 큰 값일 것이라고 추측할 수 있다.

 

url에 get 방식으로 "no=12 or no>1" 을 우회하여 "?no=12%0aor%0ano>1" 을 전달하면 문제가 해결된다.

guest의 no 값은 1 이기 때문에 12는 거짓이므로 뒤에 no>1을 참으로 하여 admin으로 인식되어 문제가 해결된다.

'Security & Hacking > Wargame' 카테고리의 다른 글

[XSS game] Level 2  (0) 2019.08.06
[XSS game] Level 1  (0) 2019.08.06
[webhacking.kr] Challenge 17  (0) 2019.06.13
[webhacking.kr] Challenge 16  (0) 2019.06.08
[webhacking.kr] Challenge 14  (0) 2019.06.06

+ Recent posts