xss攻击

一.XSS攻击

1.原理

服务器对用户输入不做过滤,导致把用户输入的js代码,返回客户端执行,造成攻击

2.危害

窃取用户Cookie、篡改网页代码、xss钓鱼,网页重定向,获取键盘记录,获取用户信息等

3.分类

(1)反射型跨站攻击

反射型XSS,又称非持久型XSS,攻击相对于受害者而言是一次性的,具体表现在受害者点击了含有的恶意JavaScript脚本的url,恶意代码并没有保存在目标网站,而Web应用程序只是不加处理的把该恶意脚本“反射”回受害者的浏览器而使受害者的浏览器执行相应的脚本。

(2)储存型跨站攻击

存储型XSS是指应用程序通过Web请求获取不可信赖的数据,在未检验数据是否存在XSS代码的情况下,便将其存入数据库。当下一次从数据库中获取该数据时程序也未对其进行过滤,页面再次执行XSS代码持续攻击用户。

(3)DOM型跨站攻击

DOM,全称Document Object Model,是一个平台和语言都中立的接口,可以使程序和脚本能够动态访问和更新文档的内容、结构以及样式,DOM-XSS简单理解就是不与后台服务器产生数据交互,是一种通过DOM操作前端代码输出的时候产生的问题。

4.常见的xss注入语句

(1)基础(利用<script></script>标签)

        <script>alert(1)</script>  //弹窗

(2)进阶(利用为协议)

        <a href = "javascript : alert(1)"> touch me ! </a> //鼠标触摸弹窗

        <img src ="javascript : alert(1)" > //

        <img src = 1 onerror = alert(1) > //

(3)高阶(触发型注入语句,已下为几个例子,感兴趣的可以自己查找一下)

        1、onmouseenter:当鼠标进入选区执行代码

                <div style="background-color:red" οnmοuseenter="alert(bem)">123456</div>

        2、onmouseleave:当鼠标离开选区执行代码

                <DIV οnmοuseleave="alert(‘bem‘)" style="BACKGROUND-COLOR: red">123456</DIV>

         3、onfocusin:当获得焦点时执行代码

                <div contentEditable="true" style="background-color:red" οnfοcusin="alert(‘bem‘)" >asdf</div>

5.常见的xss注入的绕过方式

双写绕过,大小写转换绕过,引号的使用,tab制表符,对标签进行转码,拆分跨站

6.dvwa靶场练习

(1)  Low
Reflected 

查看源代码没有对<script>标签进行过滤,直接用基础标签构造就可以<script>alert(1)</script>
Stored
和Reflected 一样源代码没有对<script>标签进行过滤,直接用基础标签构造就可以<script>alert(1)</script>
DOM

提交一个数据会发现在URL上有传参,所以我们试一试把参数改为js代码就可以了

(2)Medium
Reflected 

先试试常规的<script>标签构造js代码注入,发现返回了一个

看源代码发现把<script>标签过滤了

所以我们可以用大写绕过,因为他只过滤了小写的

<Script>alert(1)</Script>

Stored

可以看到,由于对message参数使用了htmlspecialchars函数进行编码,因此无法再通过message参数 注入XSS代码,但是对于name参数,只是简单过滤了<script>字符串,仍然存在存储型的XSS。所以我们使用bp进行抓包

BP抓完之后更改name就成功了
DOM

查看网页源代码需要闭合option 和select 

</optin></select><img src = 1 onerror = alert(1)>
 

(3)High
Reflected 

查看源代码发现,对script有一个正则的替换,但是script的写入用图片事件

<img src = 1 onerror = alert(1)>

Stored

比Medium多了一个name的Script的正则转换,所以用<img src = 1 onerror = alert(1)>

DOM

查看源代码,发现是白名单 注释掉就可以#<script>alert(/xss/)</script>

7.xss的防御

(1)对输入的URL参数进行过滤(白名单,黑名单)
(2)对一些特殊字符进行HTML实体编码转换
(3)对输出的内容进行编码

8.xss注入的自动化工具beef(推荐直接在kali里运行,与推荐在本机安装)

  • 18
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Smile灬凉城666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值