渗透测试-XSS

本文详细介绍了XSS(跨站脚本攻击)的基本原理、三种类型(反射型、存储型和DOM型)以及常见的攻击手法。讨论了如何通过Http-Only标志和CORS特性来防范XSS攻击,并列举了一些XSS测试工具,如蓝莲花XSS平台和BEEF-XSS。此外,还探讨了XSS攻击中如何利用HTML5的CORS特性绕过防护措施。
摘要由CSDN通过智能技术生成

XSS

image-20210927203351344

原理

XSS 即跨站脚本攻击(Cross Site Script),通过构造代码(JS)注入网页中,并由浏览器解释运行这段JS代码,以达到恶意攻击的效果。当用户访问被XSS脚本注入的网页,XSS脚本就会被提取出来。用户浏览器就会解析这段浏览器代码,也就是用户被攻击了

微博、留言板、聊天室、订单等等收集用户输入的地方,都有可能被注入XSS 代码,都存在遭受XSS 攻击的风险,只要没有对用户的输入进行严格的过滤,就会被XSS 攻击

危害

  • 盗取各种用户账户
  • 盗取用户Cookie资料,冒充用户身份进入网站
  • 劫持用户会话,执行任意操作
  • 刷流量、执行弹窗广告传播蠕虫病毒
  • 网站挂马
  • 跳转钓鱼网站

类型

反射型

反射型XSS 是非持久性、参数型的跨站脚本。反射型XSS 的JS代码在Web 应用的参数中,如搜索框的反射型XSS。

如,在搜索框中,提交<script>alert(/XSS/)</script>,触发反射型XSS

image-20210927205534271image-20210927205549872

存储型

将代码通过评论等方式存入网站数据库中,当其他用户查看时,代码从数据库中取出,脚本代码被浏览器解析执行。并且,每次查询该数据都会执行一次代码
发包脚本代码 → test.php → 数据库 → test.php → 浏览器解析 → 代码被执行

image-20210927205638958image-20210927205652427

DOM型

通过提交的数据修改HTML文档的DOM数据,实现静态页面修改

image-20210927205139167

手法

构造XSS

<script>标签

<script>alert(/XSS/)</script>

伪协议

使用JavaScript:(伪协议)构造xss

如,<a href="javascript:alert(/XSS/)">click me!</a>

事件

利用发生的事件触发xss,特别是会自动发生的事件

如,<img src='./test.jpg' οnmοuseοver='alert(/XSS/)'>

<input type="text" onekeydown="alert(/XSS/)">

<input type="text" onekeyup="alert(/XSS/)">

<input type="button" οnclick="alert(/XSS/)">

<img scr='./test.jpg' οnmοuseοver='alert(/XSS/)'>

<img scr='#' οnerrοr='alert(/XSS/)'>

HTML标签

<svg οnlοad="alert(/XSS/)">

<input οnfοcus=alert(/XSS/) autofocus>

平台/工具

绕过

Http-Only

大部分XSS攻击的目的都是获取cookie,但如果HTTP响应头中包含HttpOnly标志,只要浏览器支持HttpOnly标志,客户端脚本就无法访问cookie。因此,即使存在跨站点脚本(XSS)缺陷,且用户意外访问利用此漏洞的链接,浏览器也不会向第三方透露cookie。如果浏览器不支持HttpOnly并且网站尝试设置HttpOnly cookie,浏览器会忽略HttpOnly标志,从而创建一个传统的,脚本可访问的cookie

获取浏览器记住的明文密码

当浏览器判断页面加载后,发现表单中有密码项,就自动填充最近一次记录的用户名与密码,就像(或者说就 是)一次DOM操作,动态填充。因为是DOM操作,所以可以通过JS进行一次DOM操作,创建一个包含一模一样的用户名与密码表单项的表单,等浏览器自动填充后,将用户名、密码的value值读出

假设存在一个表单,域名http://example.com/xss_pwd

<form method="post" action=".">
	<label 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值