专注网络安全领域,包括安全岗位招聘,红蓝队建设,实战攻防,内网渗透,社工,CTF
,安全技术分享等。
1.1 啥是XSS?
XSS,全称Cross Site Scripting,翻译过来就是跨站脚本攻击。这玩意儿属于客户端攻击,最终倒霉的是用户。但你可别小瞧了它,网站管理员也是用户啊!这意味着XSS也能搞“服务端”攻击,毕竟管理员权限大,能管理网站文件、数据啥的。攻击者常常拿管理员当“跳板”,实施更高级的攻击。XSS的终极目标就是在网页里塞恶意脚本代码,最常见的是JavaScript,但其他脚本语言也可能被利用。
1.2 XSS漏洞咋来的?
还不是因为开发人员太粗心!对用户输入和输出的内容管得不严,导致攻击者能把“精心构造”的脚本输进去。这些脚本到了前端,被浏览器当成正常代码执行,然后就…你懂的。
1.3 XSS有啥危害?
- 劫持你的Cookie
:就像小偷偷了你的钥匙,可以为所欲为。 - 框架钓鱼
:给你搭个假网站,骗你输入账号密码。 - 挂马
:在网页里偷偷放个木马,等你中招。 - 键盘记录
:记录你敲下的每一个字,包括密码!
2. XSS家族大起底
- 反射型XSS
:数据一般不存数据库,就是简单地把你输入的东西“反射”给浏览器,一次性的,你看到啥就是啥。 - 储存型XSS
:数据会存在数据库里,永久保存,非常“稳定”。 - DOM型XSS
:不跟后台服务器打交道,通过前端的DOM节点搞事情。
3. XSS可能藏在哪儿?
HTML context:网页正文里 Attribute Context:HTML标签的属性里,比如 <img src="xxx">
URL Context:网址里 Style Context:CSS样式里 Script Context:JavaScript代码里
4. 咋测试XSS?
- 工具
:APPscan、AWVS、Burpsuite 等,这些都是“神器”。 - 半自动化工具
:Burpsuite、Firefox(hackbar)、XSSER、XSSF等,省时省力。 - 手工
:最重要的是想想哪儿能输入,输入的数据在哪儿输出。
5. 同源策略:浏览器的“安全卫士”
5.1 啥是跨域?
当协议、主机(主域名、子域名)、端口,这仨有一个不一样,就叫不同域。在不同域之间请求数据,就是跨域操作。
5.2 同源策略
为了安全,所有浏览器都遵守“同源策略”。这玩意儿禁止页面加载或执行来自不同域的任何脚本,也就是说,不同域之间不能用JS搞事情。比如,x.com域名下的JS不能操作y.com域名下的对象。
为啥要有同源策略?想想,如果一个恶意网站的页面通过JS嵌入了银行的登录页面(它俩不同源),如果没有同源限制,恶意网页上的JS脚本就能在你登录银行时偷走你的用户名和密码!
5.3 不受同源策略管的
<script src="...">
//加载本地JS执行 <img src="...">
//图片 <link href="...">
//CSS <iframe src="...">
//任意资源
5.4 修改同源策略
在后台设置 Access-Control-Allow-Origin
,设成 *
,就是允许所有人访问。
6. XSS绕过:你有“墙”,我有“梯”
- 前端限制绕过
:有时候前端会做一些限制,但我们可以通过修改浏览器设置或使用工具绕过。 - 大小写混合/双写
:把 <script>
写成<sCrIpT>
或<scr<script>ipt>
,有时候能骗过过滤器。 - 拼凑绕过
:把 <script>
拆开,比如<scr
+ipt>
,绕过简单的过滤规则。 - 编码绕过
:把 <script>
进行HTML编码、URL编码等,让它“改头换面”。 - 注释干扰
:在代码里加一些注释,干扰后台的过滤。 - 换HTML标签
:不用 <script>
,换成<img>
、<iframe>
等其他标签。 - htmlspecialchars()函数绕过
: htmlspecialchars()函数的作用是把一些特殊字符转换成HTML实体:
&
(和号) 变成 &
"
(双引号) 变成 "
'
(单引号) 变成 '
<
(小于) 变成 <
>
(大于) 变成 >
- ENT_COMPAT
- 默认,只编码双引号(可绕过)。 - ENT_QUOTES
- 编码双引号和单引号(a标签可绕过)。 - ENT_NOQUOTES
- 不编码任何引号。
2'</script><script>alert(1111)</script>
7. XSS和SSRF:不是“亲兄弟”
SSRF是服务端攻击,不需要输出就能搞事情,利用DNSLog来实现攻击,结果在DNSLog日志里看。XSS是客户端攻击,必须有输入和输出,不需要登录就能实现脚本攻击。
8. XSS流量特征:蛛丝马迹
payload里有 <script></script>
标签。标签里有一些事件,比如 onclick
、ondbclick
、onload
。标签有超链接属性,比如 href
、src
。
9. XSS常规防范:筑起“防火墙”
对输入进行过滤,对输出进行HTML实体编码。
黑客/
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...