VulnBank 实战攻略 - 从小白到渗透高手的必经之路

a year ago

这个项目到底是干嘛的?

VulnBank 是一个故意做得很脆弱的银行应用,里面塞满了各种常见的安全漏洞。你可以把它想象成一个"练功场",专门用来练习:

  • Web应用渗透测试 - 各种注入攻击、权限绕过
  • API安全测试 - REST API的各种安全问题
  • 代码审计 - 学习如何发现代码中的安全缺陷
  • DevSecOps实践 - 把安全测试集成到开发流程中

功能方面,它就像个真的网银系统:

  • 用户注册登录
  • 账户余额管理
  • 转账功能
  • 申请贷款
  • 上传头像
  • 交易记录
  • 密码重置
  • 虚拟卡管理
  • 缴费系统

但每个功能都藏着坑,等你去挖掘。

https://appstore.lazycat.cloud/#/shop/detail/cloud.lazycat.app.vulnbank

上手指南

应用安装后,打开首页

image.png

登录系统,默认用户:admin/admin123

image.png

进入主页面,左侧是各个功能。

Profile (个人信息) 普通用法: 上传你的头像,看看你的账户信息。

黑客视角:

文件上传漏洞:上传头像的地方最容易出问题。你可以试试上传一个非图片文件,比如一个 .php 的文件,看看服务器会不会报错或者直接让你上传成功。如果成功了,恭喜你,这可能是一个文件上传漏洞!

权限绕过:看看是否能通过某些方式(比如修改 URL 中的用户 ID)来查看或修改其他用户的个人信息。

image.png

Money Transfer (转账) 普通用法: 输入对方的账号和金额,然后转账。

黑客视角:

输入验证漏洞:在“金额”这个输入框里,不要只输入正常的数字,试试输入负数,或者超大的数字,甚至是字母,看看会发生什么。

SQL 注入:在“收款人账号”或“金额”的输入框里,试试输入一些特殊的 SQL 注入代码,比如 ' or 1=1 --,看是否能绕过验证或触发错误。

并发漏洞 (Race Condition):如果你能快速连续地提交两次转账请求,比如在同一毫秒内,看看会不会出现只扣一次钱,但转账两次的情况。这需要用到一些工具,比如 Burp Suite 的 Intruder 功能。

image.png

这个“创建虚拟卡”的功能 image.png

额度(Card Limit)这个输入框 这个地方看起来只能输入数字,但越是这样,越要“不按常理出牌”。

输入负数:你试试在额度里输入一个负数,比如 -1。如果系统没有做严格的校验,可能会导致你的账户余额增加,或者程序出现意想不到的错误。

输入超大数:输入一个天文数字,比如 9999999999999999。如果系统没有限制最大值,这可能会导致整数溢出,让你的卡拥有一个莫名其妙的余额,甚至导致系统崩溃。

写在最后

VulnBank 这个项目最大的价值就是让你能在一个安全的环境里随便折腾,不用担心搞坏什么东西。

它涵盖了银行应用中最常见的安全问题,基本上你能在真实环境中遇到的漏洞,这里都能找到对应的练习场景。


相关资源

作者
天天