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


    Low

    我们直接查看源码

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

    trim()移除字符串两侧的空白字符或其他预定义字符 , ,x0b, ,空格
    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')>

     完成弹窗

  • 相关阅读:
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    flutter webview_flutter 设置cookies
    flutter richText富文本
    flutter 安卓再次点击返回退出应用
  • 原文地址:https://www.cnblogs.com/Xshun-z/p/13831704.html
Copyright © 2020-2023  润新知