5주차 과제 마지막 문제이다!
https://webhacking.kr/challenge/bonus-3/
Challenge 23
Your mission is to inject <script>alert(1);</script>
webhacking.kr
스크립트를 실행시키는 공격을 하라고 해서 일단 input 란에 저렇게 넣어봤다. no hack이 뜨는 것을 보니 단순 스크립트 코드에 대한 보안이 깔려 있는 것 같다.
소스코드를 분석해보니 submit 했을 때 index.php가 실행되고, 이 php문 안의 input name = "code"이다.
index.php를 봐야 get에 뭘 넣어야할지 알 것같은데 index.php 코드가 주어져있지 않다. 어떻게 해야하지...?
form태그를 이렇게 바꿔서 제출을 누르니 alert(1)이 실행되긴 하였다. 그러나 해결은 되지 않은 것을 보니 <script>alert(1);</script>이 코드를 실행시키라는 출제의도 같았다.
제출 버튼에 숫자를 넣어보니
code가 1221로 get되어서 그대로 출력되고 문자열만 입력하면 no hack 이 뜬다. <script>alert(1);</script>문자열을 인코딩하여 문자로 인식하지 않게끔 하는 방법을 찾아보자.
xss (Cross Site Scripting)
XSS는 웹 브라우저에서 동작하는 악의적인 스크립트이다. 일반적으로 사용자의 개인정보, 쿠키탈취등을 한다. 대부분 XSS취약점을 진단하고자 할 때 와 같은 형태로 공격구문을 넣는다. 이를 우회하는 방법에는..
4rgos.tistory.com
참고.
%3cscript%3ealert(1)%3b%3c%2fscript%3e //url 인코더로 돌린 문자열
이렇게 문자 하나를 넣으면 정상적으로 출력되지만 두개이상 연속된 문자를 넣으면 출력되지 않는다.
따라서 s사이에 null 값을 넣어 입력값을 문자열로 인식하지 못하도록 한다.
null은 %00으로 인코딩 된다.
<s%00c%00r%00i%00p%00t>%00a%00l%00e%00r%00t(1);</s%00c%00r%00i%00p%00t>
다음 코드를 url에 넣어주면
해결!
'Other > Web Hacking' 카테고리의 다른 글
IGRUS 웹해킹 5주차 과제 XSS game write-up (0) | 2021.01.28 |
---|---|
IGRUS 웹해킹 5주차 과제 #xss #드림핵 (0) | 2021.01.28 |
IGRUS 웹해킹 4주차 과제 #PHP #워게임 (0) | 2021.01.28 |
IGRUS 웹해킹 3주차 과제 #워게임 (0) | 2021.01.28 |
IGRUS 웹해킹 2주차 과제 #워게임 (0) | 2021.01.27 |