DVWA --- xss存储型攻略详解(适合新手)

Low

我们直接查看源码

对Low型源码中部分函数解释

trim()移除字符串两侧的空白字符或其他预定义字符\t,\n,\x0b,\r,空格
tripslashes(string)函数去除反斜杠 \ mysqli_real_escape_string(connection,escapestring)转义在SQL语句中使用的字符串中的特殊字符。
$GLOBALS:引用全局作用域中可用的全部变量。

我们可以从上文中看出,低级的xss存储型,是没有对<script>进行过滤的

接下来我们直接进行弹窗测试。

输入   <script>alert('xss')</script>

 点sign guestbook提交之后完成弹窗,如下图所示

Medium

查看源码

   str_replace( '<script>', '', $name );过滤小写的<script>

    htmlspecialchars() 函数,把预定义的字符 "<" (小于)和 ">" (大于)转换为 HTML 实体:

 我们使用Burp Suite抓包改包实现弹窗

 抓包准备

  设置浏览器代理

 Burp Suite设置

 接下来我门清除一下DVWA设置

因为源码里面有htmlspecialchars() 函数,我们采用抓包改包绕过。

我们随便输入一些字符,因为我们要去抓包来修改,所以这里输入什么都不影响。

 这个时候不要点提交,返回Busp Suite,依次点击,直到开启拦截请求

 截取成功

在数据传输过程中会进行URL编码的转换,我们在Burp Suite里进行编码转换。

注意:我们需要转换的编码是   <SCRIPT>alert('1')</SCRIPT>  ,因为源码里有$name = str_replace( '<script>', '', $name );---把小写的<script>替换为空字符串。我们采用大写=绕过

把下图标识为1的部分替换,替换完成后点击放包

完成弹窗

 完成弹窗之后,记得把Burp Suite的拦截禁用关掉。方便后续操作。

High

我们查看源码,可以发现,相比前面的medium,只是加上了对<script>关键字的限制

$name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $name );  ---  将$name变量(我们输入的Name文本框部分)中包含有script(i:不限制大小写)进行替换为空字符。

我们同样采用抓包改包绕过。---既然限制了script关键字的输入,我们可以采用别的弹窗方式  <img src=x onerror=alert('123')>  

记得在提交之前,开启拦截请求。

 

 

 拦截成功

 

 将1122替换为<img src=x onerror=alert('123')>

 

 完成弹窗

 

posted @ 2020-10-17 16:42  xs123456789  阅读(774)  评论(1编辑  收藏  举报