DVWA-xss

XSS概念:

  由于web应用程序对用户的输入过滤不严,通过html注入篡改网页,插入恶意脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击。

XSS类型:

反射型XSS:

  只是简单地把用户输入的数据反射给浏览器,简单来说,黑客往往需要去诱使用户点击一个恶意链接,才能攻击成功。  

存储型XSS:

  将用户输入的数据存储在服务器端,每次用户访问都会被执行js脚本。

DOM型XSS:

  文本对象模式xss,通过修改页面的DOM节点形成的XSS,可存储型,可反射型,只取决于输出地点。

XSS的应用场景:

  1.利用xss获得cookie.
  2.重定向.
  3.钓鱼网站.
  4.DDOS

反射型:

简单版:

  1.查看源代码:

可以看出没有任何过滤,直接将用户提交的GET参数name输出到页面,我们可以输入payload。

  先利用alert测试是否存在XSS,如果有弹窗弹出,说明有XSS漏洞:
http://127.0.0.1/DVWA-master/vulnerabilities/xss_r/?name=<script>alert(1)</script>

中等版:

  1.查看源代码:

DVWA-xss
2.双写绕过:

http://127.0.0.1/DVWA-master/vulnerabilities/xss_r/?name=<sc<script>ript>alert(1)</script>

DVWA-xss
3.大小写混合绕过

http://127.0.0.1/DVWA-master/vulnerabilities/xss_r/?name=<ScriPT>alert(1)</script>

高等版:

  1.查看源代码:

DVWA-xss

虽然无法使用s标签注入XSS代码,但是可以通过img、body等标签的事件或者iframe等标签的src注入恶意的js代码。

Img标签:

http://127.0.0.1/DVWA-master/vulnerabilities/xss_r/?name=<img src=1 one rror=alert(1)>

DVWA-xss

不可能:

  Impossible级别的代码使用htmlspecialchars函数把预定义的字符&、”、 ’、<、>转换为 HTML 实体,防止浏览器将其作为HTML元素。

存储型:

简化版:

  存储型xss与反射型xss的区别在于存储型会将用户输入的数据存入服务器,在用户下一次点击时便会触发,由于其隐蔽性较高,所以危害也普遍大于反射型xss。
  1.查看源代码:

DVWA-xss
DVWA-xss

相关函数介绍:

  trim(string,charlist)
        函数移除字符串两侧的空白字符或其他预定义字符,预定义字符包括、\t、\n、\x0B、\r以及空格,可选参数charlist支持添加额外需要删除的字符。
  mysql_real_escape_string(string,connection)
        函数会对字符串中的特殊符号(\x00,\n,\r,\,‘,“,\x1a)进行转义。
  stripslashes(string)
        函数删除字符串中的反斜杠。

没有进行xss方面的过滤直接储存在数据库中

  在Message一栏中输入 <script>alert(1)</script>   Name随意

DVWA-xss
DVWA-xss

在name一栏中输入,message随意

  发现:
        name设置了最大字符数,因此用burp抓包,修改数据。
  注意:
        我们得把数据都清空,点击Clear Guestbook 。这是一个存储型XSS,不清空的话我们无法判断执行的是原来是数据还是新的语句。
    在Name和Message里面都输入任意内容,这时在Message里面我们也不能输入<script>标签,然后设置代理,开始抓包。

DVWA-xss

方便查看,发送至reapter

DVWA-xss

此时,说明文本框也有漏洞;

中等版:

  1.查看源代码:

DVWA-xss

strip_tags() 函数:

  剥去字符串中的HTML、XML以及PHP的标签,但允许使用<b>标签。

addslashes() 函数:

  返回在预定义字符(单引号、双引号、反斜杠、NULL)之前添加反斜杠的字符串。

massage使用了htmlspecialchr函数编码无法注入xss代码,但name框可以;

  仍是利用bq抓包,进行双写绕过

DVWA-xss
DVWA-xss

高等版:

  1.查看源代码:

DVWA-xss

name只是简单过滤掉了s标签可以用其他标签(img)尝试,继续抓包;

img标签:

<img src=1 one rror=alert(1)>

DVWA-xss
DVWA-xss

Dom型:

简单型:

  1.查看源代码:

DVWA-xss
2.利用bp直接修改

中等版:

  1.查看源代码

DVWA-xss
过滤掉了s标签

字符#绕过

  该字符后的数据不会发送到服务器端,从而绕过服务端过滤

DVWA-xss

高等版:

  1.查看源代码:

DVWA-xss
限制了输入内容

仍可以用#绕过

上一篇:DVWA-XSS(Reflected-反射型)


下一篇:dvwa-sql注入(blind)