zoukankan      html  css  js  c++  java
  • Pikachu-XSS的herf输出、js输出

    一、xss之href输出                  

    源码:我们可以看到:

    输出在a标签的href属性里面,可以使用javascript协议来执行js
    防御:只允许http,https,其次在进行htmlspecialchars处理         提示十分明显,我们来试一下

    payload:    javascript:alert(666) 看成功了!

    注意:数字可以不用做任何处理,但是输入字母、汉字就要用单引号或者双引号闭合,也可以用/  /闭合,但是输出结果会有/  /,总之更多的是自己去试。

    那么在<a>标签里的 href作输出 的时候,有哪些防范措施:

    1、href一般是用来写超链接的,所以 我们可以在输入的时候仅仅  只允许http,https开头的协议,否则不允许输入;

    2、在进行htmlspecialchars处理。

    二、xss之js输出                    

    看一下界面:

     

    看一下后台源码:

    这里讲输入动态的生成到了js中,形成xss
    javascript里面是不会对tag和字符实体进行解释的,所以需要进行js转义

    构造闭合,把原本的<script>闭合掉,再插入我们自己的<script>

    输入:lili'</script><script>alert("xss")</script>

    通过这个实验,我们知道输出点在js中的xss问题,应该怎么进行修复:
    这里如果进行html的实体编码,虽然可以解决XSS的问题,但是实体编码后的内容,在JS里面不会进行翻译,这样会导致前端的功能无法使用。
    所以在JS的输出点应该使用对特殊字符进行转义

  • 相关阅读:
    List remove注意点
    枚举类比较的陷阱
    【好书推荐】《剑指Offer》之硬技能(编程题7~11)
    【好书推荐】《剑指Offer》之硬技能(编程题1~6)
    【好书推荐】《剑指Offer》之软技能
    在互联网中关系型数据库是否不再那么重要
    常用开发环境搭建配置教程(OneStall)
    让Mongo在Spring中跑起来
    MongoDB初了解——用户权限
    毕业这两年
  • 原文地址:https://www.cnblogs.com/li2019/p/12652334.html
Copyright © 2011-2022 走看看