找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1466

积分

0

好友

247

主题
发表于 昨天 11:47 | 查看: 7| 回复: 0

本文将对一个仿真电商平台漏洞靶场进行实战演示,展示其中内置的五类常见高危安全漏洞。这套靶场是此前《仿真电商平台漏洞靶场实战开发课程》的成果,非常适合用于安全研究、CTF练习或企业内部的安全/渗透/逆向技能培训。下面,我们将直接进入实战环节。

漏洞1: 身份认证拒绝服务攻击

用户登录失败账户锁定界面

在该平台的用户登录场景中,如果连续密码错误5次,账户将被锁定5分钟。

这个漏洞的根源在于安全控制措施自身设计存在缺陷。攻击者可以编写自动化脚本,遍历常见的用户名(例如,以手机号作为账号名的平台,攻击者可以批量尝试13、15、18开头的11位号码),对平台真实用户发起无差别攻击,导致大量合法用户在一段时间内无法登录。

漏洞危害等级:严重

漏洞2: HOST头注入-账号接管

通过邮箱发送密码重置链接是一种非常普遍的密码找回方式。假设我的账户是 hackerzhou@qq.com

密码找回界面

首先,在找回密码页面填写注册邮箱,并点击“发送邮件”。

密码重置邮件发送成功提示

访问仿真收件箱,可以看到系统发来的密码重置邮件,其URL中包含一个关键的重置令牌(token)。

包含重置令牌的邮件内容

本例中,业务地址是 http://192.168.101.204:8000。正常流程下,用户复制此URL即可重置自己的密码。

访问该链接,进入密码重置页面,输入新密码即可完成操作。

密码重置成功界面

然而,如果系统在生成重置链接时,错误地使用了客户端可控的 Host 请求头来构建URL,就会导致HOST头注入漏洞。在某些复杂的部署架构下(如存在反向代理、CDN),结合安全/渗透/逆向中常见的Web缓存投毒或HTTP请求走私技术,可能造成大规模账号接管。这里我们直接演示通过修改Host头来窃取重置令牌。

BurpSuite修改Host头请求包

使用BurpSuite截获发送重置邮件的请求,将Host头从真实的192.168.101.204:8000改为攻击者控制的域名evil.com,然后发送请求。

生成指向恶意域名的重置链接

此时,系统生成的密码重置链接将变为:
http://evil.com/auth/user/reset-password/93bf10d3-3418-4fa9-b8a7-33f6af8fde27

攻击者在其控制的evil.com服务器上即可获取到这个重置令牌93bf10d3-3418-4fa9-b8a7-33f6af8fde27。随后,攻击者只需使用这个令牌,访问正常的业务重置链接:
http://192.168.101.204:8000/auth/user/reset-password/93bf10d3-3418-4fa9-b8a7-33f6af8fde27

使用窃取的令牌重置密码

这样,攻击者就能成功修改hackerzhou@qq.com的密码,从而接管该账号。

漏洞危害等级:严重

漏洞3: 管理后台登录接口密码加密密钥泄漏

许多业务系统设计会在前端对用户密码进行加密,后端再进行解密,加密方式可能包括哈希、HMAC、AES或RSA等。这个漏洞模拟了某些实际场景中,前端加密密钥硬编码导致的问题。

管理后台登录界面

该漏洞存在的一个前提是,登录接口未实施任何防暴力破解措施

输入admin/admin尝试登录,通过BurpSuite查看提交的数据包。

登录请求中的加密密码

可以发现password参数是经过加密的,无法直接进行密码爆破。但通过查看前端页面源代码,我们在JavaScript中找到了硬编码的AES密钥和初始化向量(IV)。

前端JS中硬编码的AES密钥

利用这些信息,编写暴力破解脚本就非常简单了。脚本会读取密码字典,用相同的AES算法加密每个密码,然后发送登录请求进行验证。

暴力破解脚本代码示例

脚本运行结果如下,成功破解出管理员密码为admin123

暴力破解成功找到密码

漏洞危害等级:严重

漏洞4: SSRF-内网文件读取

该功能为商品批量导入,通过对话框表单实现,流程分为两步:

  1. 文件上传成功后,返回文件URL。
  2. 系统请求该URL读取文件内容并批量写入数据库。

问题出在第二步的URL参数可被外部控制,从而形成SSRF(服务端请求伪造)漏洞。

登录管理员后台,进入商品批量导入页面。

商品批量导入对话框

这里不关心上传的文件内容或格式是否正确,只要上传“成功”,其URL就会被自动填入下方表单。点击“确认导入”。

在BurpSuite中查看此时的请求数据包。

商品导入请求数据包

将数据包中的url参数值修改为file:///etc/passwd,重新发送请求。从响应中可以看到,系统成功通过SSRF漏洞读取到了服务器上的/etc/passwd文件内容。

SSRF读取/etc/passwd文件内容

漏洞危害等级:严重

漏洞5: 条件竞争-单充值码多次兑换

首先,在管理后台生成一张面值50元的充值券。

管理后台生成储值券

然后,在前端用户个人中心使用该券进行余额充值。充值前,用户余额为0。

用户资产页面初始状态

使用上面的券码进行第一次兑换,余额变为50元。

首次兑换储值券成功

再次尝试兑换同一张券,系统会提示“兑换码已使用或不可用”。

重复兑换同一券码被拒绝

现在,我们换一张新的50元券码。通过开源实战中常用的BurpSuite Intruder工具,对兑换接口发起高并发请求(例如设置10个并发线程)。

BurpSuite Intruder配置并发攻击

从攻击结果可以看到,同一个兑换请求在并发条件下成功执行了4次(返回状态码200或特定成功码)。

并发攻击结果,部分请求成功

刷新用户资产页面,可以更直观地看到效果:余额从原来的100元变成了300元,恰好对应一个50元的兑换码被额外成功兑换了4次。

竞争攻击后余额异常增加

这表明兑换逻辑在处理“检查券码状态”和“更新余额并标记券码已使用”两个操作之间存在时间窗口,未做好原子性控制,导致了条件竞争漏洞。

漏洞危害等级:严重


以上便是这个仿真电商漏洞靶场中五个高危漏洞的实战演示。这类靶场对于深入理解Web安全漏洞原理、熟悉安全/渗透/逆向测试工具(如BurpSuite)的使用非常有帮助。如果你想获取更多类似的安全研究资源或进行技术交流,欢迎访问云栈社区的相关板块。

HackShop电商平台首页




上一篇:OpenWMS 技术指南:基于微服务与 Spring Boot 的开源仓库管理系统
下一篇:提升代码可读性与架构美感:Java Lambda、Stream与设计模式实践
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-18 18:12 , Processed in 0.279404 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表