DVWA下的XSS

来源:互联网 发布:java 数字字符串排序 编辑:程序博客网 时间:2024/05/21 14:46
 DVWA下的XSS
XSS,跨站脚本攻击 (Cross Site Scripting),恶意攻击者往Web页面里插入恶意代码,当用户浏览该页之时,嵌入其中的恶意代码会被执行,从而达到恶意攻击用户的目的。XSS分为:反射型(Reflected)跨站脚本和存储型(Stored)跨站脚本
(1)反射型XSS:非持久化,需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。
(2)存储型XSS:存储型XSS,持久化,代码是存储在服务器中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。这种XSS比较危险,容易造成蠕虫,盗窃cookie(虽然还有种DOM型XSS,但是也还是包括在存储型XSS内)。
一XSS (Reflected)
1 Low级别




low级别没有进行任何过滤检查,存在漏洞。可以输入:<script>alert(‘haha’)</script>测试一下




2 Medium级别


str_replace:str_replace函数将输入中的<script>删除,这种防护机制是可以被轻松绕过的,有一下两种方法:
(1) 可以双写绕过:<sc<script>ript>alert(‘haha’) </script>




(2)可以大小写混合绕过:<ScRiPt>alert(‘haha’)</script>




或者<a href="http://www.baidu.com">点我一下</a>


3 High级别


High级别使用了黑名单过滤输入,preg_replace() 用于执行一个正则表达式的搜索和替换,这使得双写、大小写都不再有效(正则表达式中i表示不区分大小写)。这就使得无法使用<script>标签注入XSS代码,但是可以通过img、body等标签或者iframe等标签注入恶意代码。
<img src=x onerror=alert(‘haha’)>




<iframe onload=alert(‘haha’)>:




4 Impossible


htmlspecialchars() 函数把预定义的字符转换为HTML实体。
二 XSS(Stored)
1 Low级别


trim(string,charlist)函数移除字符串两侧的空白字符或其他预定义字符,mysql_real_escape_string(string,connection)
函数会对字符串中的特殊符号(\x00,\n,\r,\,‘,“,\x1a)进行转义。stripslashes(string)函数删除字符串中的反斜杠。name是有长度限制的。
在message处输入:<script>alert(/666/)</script>,在Burpsuite中抓包,更改txtName后面的值为<script>alert(/666/)</script>。






2 Medium级别


同反射型XSS,只是在抓出的包里修改txtname的值


3 High级别


抓包改参数为<img src=1 onerror=alert(/uuu/)>
4 Impossible级别

原创粉丝点击