XSS(Cross Site Scripting) 跨站脚本攻击,通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。
一、XSS原理
当你输入的东西可以在网页中被显示出来或者存储到数据库中,并且未被做严格的安全过滤时,就可以通过插入JavaScript相关代码让网页执行你插入的代码。
通用核心危害:
-
Cookie窃取与会话劫持:恶意脚本可以读取当前域下的Cookie(特别是未设置
HttpOnly属性的会话Cookie)。攻击者利用窃取的Cookie即可直接冒充用户登录账户,进行任何用户可执行的操作。这是最常见、最直接的危害。 -
敏感信息窃取:脚本可以读取并外传页面上的任何内容,包括用户的个人资料、邮箱、地址、电话号码、信用卡信息等。可以伪造登录框(钓鱼),诱骗用户在当前页面上输入用户名和密码并发送给攻击者。可以进行键盘记录,捕获用户的输入。
-
网站前端内容篡改:脚本可以动态修改DOM,插入虚假信息、诽谤内容、恶意链接或完全重写页面(如“网页 defacement”)。可以显示伪造的系统消息或勒索提示(如“您的文件已被加密,请支付比特币”)。
-
重定向用户:将用户浏览器重定向到攻击者控制的钓鱼网站,进一步骗取凭证,或重定向到恶意软件下载页面。
二、XSS类型
1.反射型XSS
恶意脚本作为请求的一部分发送给服务器,服务器将其反射回响应中,浏览器执行。通常存在于URL或请求头中。
危害特点:高度针对性。攻击通常通过钓鱼邮件、社交工程精准投递给特定目标(如某公司员工)。危害在用户点击链接的瞬间发生,服务器不留存恶意代码,难以追踪。
原因:服务器对攻击者构建恶意脚本的URL或请求体没有严格的检测和转义,导致浏览器解析响应时直接拼接在页面之中。
典型场景:搜索结果页、URL参数展示页面
2.存储型XSS
恶意脚本被提交并永久存储在服务器上(如数据库、评论区、用户资料等),所有访问该存储内容的用户都会触发脚本执行,影响范围广。
危害特点: 危害范围最广、持续时间最长。一旦恶意代码被存入服务器,它会对所有访问受影响页面的用户自动生效,无需再次欺骗。就像一个“污染源”,持续造成伤害。
原因:用户提交的恶意内容未经过滤直接存储到数据库中,服务器后续读取这些数据时未经转义直接渲染到页面中,浏览器加载页面时,误将恶意脚本当作合法代码并执行。
典型场景:论坛评论区、博客留言、用户个人资料等
3.DOM型XSS
整个攻击过程完全在客户端完成,不涉及服务器。恶意脚本通过操作DOM树注入。
危害特点:隐蔽性极强。因为攻击不经过服务器,传统的服务器端日志监控和Web应用防火墙(WAF)很难发现和防御。其危害与反射型类似,但更难检测和修复。
原因:前端JS直接使用URL参数、Cookie、localStorage等不可信数据,将这些不可信数据通过innerHTML、document.write、eval()等危险API直接插入页面DOM
典型场景:单页面应用(SPA)中用URL参数渲染页面内容、前端直接处理用户输入并插入页面等
三、实战操作
1.XSS检测
XSS漏洞多出现于搜索结果页面,可通过搜索search.php/html等相关页面进行检测。
首先在fofa.info上搜索search.php/search.html,利用工具xsser——是可以在kali上使用的一款XSS检测工具
git clone https://github.com/epsylon/xsser
将fofa上的搜索结果一一使用xsser进行检测(如果有fofa会员可以将结果一键导出,进行批量检测)

xsser基础用法
检测GET接口XSS
xsser -u "http://example.com/search.php?q=XSS"
这里xsser将会对参数q进行XSS检测
加cookie(登陆后检测)
xsser -u "http://example.com/search.php?q=XSS" --cookie="SESSIONID=xxxx"
这里的cookie直接使用发送请求时请求头中的cookie值
POST请求
xsser -u "http://example.com/login.php" --data="username=XSS&password=XSS"
设置自定义请求头
xsser -u "http://example.com/search.php?XSS=1" -H "User-Agent: XSS-Babe" --referer "http://ref.com"
使用编码绕过/启发式检测
xsser -u "http://example.com/search.php?p=XSS" --auto
开启爬虫功能(自动发现接口)
xsser -u "http://example.com/" --Crawling
常见参数速查表
| 参数 | 说明 |
| -u | 目标URL |
| --data | POST请求参数 |
| --cookie | 设置Cookie |
| -H | 设置自定义Header |
| --referer | 设置Referer头 |
| --auto | 启发式检测 |
| --Crawling | 启用爬虫自动检测接口 |
详细参数见Xsser-CSDN博客
2万+

被折叠的 条评论
为什么被折叠?



