Layer7

웹해킹 3차시 과제

juyeon2110 2022. 5. 8. 07:15

XSS(Cross Site Script) 취약점이란 웹 애플리케이션에서 사용자 입력 값에 대한 필터링이 제대로 이루어지지 않을 경우, 공격자가 입력이 가능한 폼에 스크립트 삽입이 가능하여 악의적인 스크립트가 희생자 측에서 동작하도록 하는 취약점을 말한다. 공격자는 취약점을 이용하여 사용자의 개인정보 및 쿠키 정보 탈취, 악성코드 감염, 웹 페이지 변조 등의 공격을 수행한다.
출처: https://mokpo.tistory.com/59 [MSS]

 

XSS-game level 1

 

alert()를 넣어서 알림 창을 띄우는 것이 미션이다.

그래서 검색창에 <script> alert();</script>를 입력해 주었고,

알림 창이 떴으므로 공격에 성공했다.

 

XSS-game level 2

level 1과 똑같이 알림 창을 띄우는 문제인데 <script>가 필터링되어있어서 우회해야 한다.

힌트를 보고 <img> 태그와 onerror를 이용해서 <img src=a onerror=alert(1)>로 우회해 주었다.

<img> 태그는 필터링이 안 돼있어서 실행이 되기 때문에 알림 창이 떴다.

 

 

XSS-game level 3

이번에는 따로 입력할 곳이 없어서 URL 주소를 수정해야 한다. 사진이 3개밖에 없기 때문에 사진 4를 입력하면 오류가 나고 오류가 나면 onerror=alert("xss")를 실행하도록 https://xss-game.appspot.com/level3/frame#'4' onerror=alert("xss")>로 수정해 주었다.

수정 후 알림 창이 떴고 미션을 성공했다.

 

XSS Challenge Level 1

xss 이외의 공격과 스캐닝 도구 사용이 금지되어있다.

<script> alert(document.domain)</script>를 넣어서 domain주소를 안내 창에 띄우게 했다.

그 결과 안내 창에 domain 주소가 뜨고 

문제를 푸는 데 성공했다.

 

Dreamhack.io xss-1

접속 정보에 링크를 클릭하면 3개의 페이지(vuln(xss) page, memo, flag)가 있는 사이트가 나온다.

vuln(xss) page에서는 필터링이 없어서 vuln? param=<script> alert(1)</script>이 그대로 적용된다.

memo페이지에서는 필터링이 있어서 입력한 값이 그대로 출력된다.

flag페이지에서 <script> location.href="/memo? memo="+document.cookie; </script>를 삽입해서

memo페이지에서 flag를 출력하게 해 주었다.

memo페이지로 다시 가면 flag가 출력된다.

 

Dreamhack.io xss-2

xss-1번과 비슷해 보이지만 <script> 태그가 작동이 되지 않아서 우회해야 한다.

그래서

<script> location.href="/memo? memo="+document.cookie; </script>를

<img src="/error" onerror="location.href='/memo? memo='+document.cookie">로 바꿔주었다.

img src를 오류 나게 해서 오류가 났을 때 location.href='/memo? memo='+document.cookie가 실행된다.

그러면 memo페이지에 flag가 출력된다.

 

webhacking.kr old 23번 문제

<script> alert(1);</script>를 그대로 입력했더니 실패했다.

문자열 2개를 입력하면 필터링이 되어서 문자 사이에  %00(Null)를 넣어줘서 띄어 주었다.

<s% 00c% 00r% 00i% 00p%00t> a%00l% 00e% 00r%00t(1);</s% 00c% 00r% 00i% 00p%00t>를

입력한 후 1이 적혀있는 안내 창이 떴고 성공했다고 떴다.