渗透测试-XSS

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 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
XSS(Cross-Site Scripting)是一种常见的网站安全漏洞,攻击者通过在网页中注入恶意脚本来攻击用户。以下是关于 XSS 的基础知识: 1. XSS 的原理:XSS 攻击利用了网站对用户输入的信任,攻击者将恶意脚本注入到网页中,当用户浏览该网页时,恶意脚本会在用户的浏览器中执行,从而达到攻击的目的。 2. XSS 的分类:XSS 可以分为三种主要类型:存储型(Stored XSS)、反射型(Reflected XSS)和 DOM 型(DOM-based XSS)。存储型 XSS 注入的恶意脚本被存储在目标网站的数据库中,当其他用户访问该页面时,恶意脚本会被执行。反射型 XSS 注入的恶意脚本通过 URL 参数传递给目标网站,目标网站在返回的页面中直接输出了这些恶意脚本,用户点击链接时脚本被执行。DOM 型 XSS 则是利用了网页的 DOM 结构,通过修改 DOM 中的内容来触发漏洞。 3. XSS 的危害:XSS 攻击可以导致许多危害,包括盗取用户的敏感信息(如用户名、密码、cookie)、篡改网页内容、进行钓鱼攻击、传播恶意软件等。 4. 防御 XSS 的措施:为了防止 XSS 攻击,可以采取以下措施: - 输入验证和过滤:对用户输入的数据进行验证和过滤,过滤掉不可信的字符和脚本。 - 输出转义:将用户输入的数据进行转义,确保输出到网页时不会被浏览器解析为可执行的脚本。 - 使用 HTTP 头部中的 Content Security Policy(CSP)来限制网页的资源加载和执行。 - 设置 HttpOnly 属性来限制 JavaScript 对 cookie 的访问。 - 定期更新和修复网站的漏洞,以防止攻击者利用已知的 XSS 漏洞。 以上是关于 XSS 的基础知识,深入了解 XSS 攻击的原理和防御措施对于网站安全至关重要。在进行渗透测试时,理解 XSS 的工作原理和常见漏洞场景可以帮助你更好地发现和利用 XSS 漏洞。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值