Pikachu之XSS几种绕过

XSS几种绕过

1.xss之htmlspecialchars

1.查看靶场

在这里插入图片描述

查看提示

在这里插入图片描述

2.htmlspecialchars()函数

  • 语法:htmlspecialchars(string,flags,character-set,double_encode)

    • string:必须。规定要转换的字符串

    • flags:可选。规定 规定如何处理引号、无效的编码以及使用哪种文档类型。 注意:默认是仅编码双引号

      在这里插入图片描述

    • character-set,double_encode: 可选。一个规定了要使用的字符集的字符串。

    • docble_encode: 可选。布尔值,规定了是否编码已存在的 HTML 实体。

    • 更详细的文档在:https://www.w3school.com.cn/php/func_string_htmlspecialchars.asp

  • 被转换的预定义的字符有

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4cyEfBqW-1654924722673)(C:\Users\yang\Desktop\靶场练习\Pikachu\XSS\1654873331247.png)]

  • 实例

    • 实例1

      把一些预定义的字符转换为 HTML 实体:

      <?php
      $str = "Bill & 'Steve'";
      echo htmlspecialchars($str, ENT_COMPAT); // 只转换双引号
      echo "<br>";
      echo htmlspecialchars($str, ENT_QUOTES);// 转换双引号和单引号
      echo "<br>";
      echo htmlspecialchars($str, ENT_NOQUOTES); // 不转换任何引号
      ?>
      

      以上代码的 HTML 输出如下(查看源代码):

      <!DOCTYPE html>
      <html>
      <body>
      Bill &amp; 'Steve'<br>
      Bill &amp; &#039;Steve&#039;<br>
      Bill &amp; 'Steve'
      </body>
      </html>
      

      而在浏览器显示时:

      Bill & 'Steve'
      Bill & 'Steve'
      Bill & 'Steve'
      

      这也就是为什么我们输入的XSS语句显示出来的结果没改变的原因,其实在输入的时候就已经被判断,被改写了,查看网页源代码。

      在这里插入图片描述

    • 实例2:

      把双引号转换为 HTML 实体:

      <?php
      $str = 'I love "PHP".';
      echo htmlspecialchars($str, ENT_QUOTES); // 转换双引号和单引号
      ?>
      

      以上代码的 HTML 输出如下(查看源代码):

      <!DOCTYPE html>
      <html>
      <body>
      I love &quot;PHP&quot;.
      </body>
      </html>
      

      以上代码的浏览器输出:

      I love "PHP".
      

3.查看后端代码

在这里插入图片描述

4.绕过

思念变成海' onclick='alert(111)'

在这里插入图片描述

此时发现单引号没有被过滤,所以XSS被执行

在这里插入图片描述

5.我们加一个ENT_QUOTES试试,需要重启一下

在这里插入图片描述

此时点击发现被过滤了,查看

在这里插入图片描述

单引号已经被过滤了,只不过显示出来不明显而已。如何解决,进行接下来的靶场

2.xss之href绕过

1.查看靶场

在这里插入图片描述

在这里插入图片描述

没啥头绪。

2,查看靶场代码

使用了ENT_QUOTES,过滤了单引号,但是提示了我们,输出在a标签的href属性里面,从而可以利用此处漏洞执行JS,file,tel等伪协议

在这里插入图片描述

3.绕过

输入:

javascript:alert("思念变成海")

在这里插入图片描述

3.xss之js输出

1.查看靶场

在这里插入图片描述

输入“思念变成海”检查网页代码,输入被动态的生成到了前端代码中,构造闭合就可以执行了。

在这里插入图片描述

构造闭合

思念变成海'</script><script>alert("思念变成海")</script>

在这里插入图片描述

查看提示,输入tmac,图片显示,35秒13分是否也会闪现在你脑海前,时光一闪而逝啊!!!

在这里插入图片描述

2.查看源码

在这里插入图片描述

从源码不难看出,输入后判断是否是tmac,是的话就是加载那张图片。

4.无论如何都不要放弃心中所爱

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值