本周主要介绍一个开源的漏洞演示平台 -- bWAPP。这个小巧玲珑的平台包含了超过100个常见的Web漏洞,如XSS、CSRF、SQL注入以及敏感数据暴露等等均可演示。本文主要介绍该平台的安装及使用,并以最近微信支付的XXE漏洞作为实践进行演示讲解。
安装
访问官网下载bWAPP
http://www.itsecgames.com/
下载后是压缩包,是一个PHP项目,安装过程类似普通的建站工具。先将其部署到Apache等服务器(需加载PHP模块支持,如果是Apache服务器,则在配置文件中解开如下注释)
LoadModule php_module... 这一行
需要安装MySQL数据库(不推荐安装8.0的新版本,因为会连接出错,安装5.7的即可。PHP推荐安装7以下的版本,因为是漏洞演示,有些工具在PHP7已经被修复。浏览器则推荐是IE和火狐,同理,Chrome和Safari浏览器的安全都做得挺好。)
打开admin/settings.php文件,在这里填写MySQL的配置信息。
浏览器打开如下地址
http://localhost/bWAPP/install
点击安装即可
默认登陆账户名:bee,密码:bug
bWAPP支持的漏洞演示列表如下图所示
XXE漏洞:一个XML外部实体攻击是一种针对XML解析输入的应用程序的攻击。当包含对外部实体的引用的XML输入由弱配置的XML解析器处理时,会发生此攻击。此攻击可能导致机密数据泄露,拒绝服务,服务器端请求伪造,从解析器所在机器的角度进行端口扫描,以及其他系统影响。
XML实体分为参数实体和一般实体,参数实体声明时,前面带有%,而一般实体声明则不用。
参数实体引用时如下
%实体名;
一般实体引用如下:
&实体名;
XXE演示
接下来借用bWAPP平台演示一下XXE漏洞的执行情况。在漏洞下拉菜单里选中该项(A7类目)
XML External Entity Attacks(XXE)
点击右侧的Hack按钮,可看到演示界面,非常空空荡荡,只有一个标题为"Any bugs"的按钮。这个演示过程是点击该按钮的时候,js发起了一次ajax请求,因此,按F12打开浏览器控制台窗口即可查看请求详情。
查看本次请求,我们可以发现,该请求的内容是如下一段XML数据
bee
Any bugs?
而请求的返回消息是
bee's secret has been reset!
这时候我们使用一款知名的Web渗透测试工具Burp Suite(社区版本免费)来抓取并修改这次请求,我们在这段XML上面添加一个声明头,通过声明头来实现XXE攻击。如下
&attack;
Any bugs?
根据如上解说,这里是使用一般实体引用的方式,来诱导后台获取系统的/etc/passwd文件。执行结果如下所示。
这边读取的文件是微信支付SDK用于处理XXE漏洞的Java代码文件,除了关闭外部实体引用开关,还需要禁用XML的外部实体声明。
回复"bWAPP讲解PPT"可获取PPT文件
— The End —
领取专属 10元无门槛券
私享最新 技术干货