这里我直接采用Windows下的wamp集成环境,直接将靶场源码下载到本地,解压到网站根目录即可。
网站源码下载地址:https://github.com/Acmesec/DoraBox
数据库的配置,修改conn.php的数据库连接账号及密码,在本地数据库创建一个pentest数据库,将pentest.sql文件导入到数据库中,在创建的库中执行source D:/wamp/www/DoraBox-master/pentest.sql即可,到这里靶场就搭建完毕。
作者也在github上有制作了docker版的靶场,作者给的docker地址有点问题,用这个地址可以下载到docker镜像
docker pull redteamwing/dorabox:v1.0
直接通过and 1=1、and 1=2逻辑判断存在注入点,order by查询出字段数为3,用union联合查询查看回显点为2,3.
用1’ or ‘1’='1和1’ or ‘1’='2判断出存在注入
同样用order by判断出字段数为3,带入查询语句可直接查询出数据
接下来的步骤和数字型的一样带去SQL语句查询即可
搜索型需要多闭合一个%,其他都与前面类似。
首先还是判断注入点 1%’ or 1=1# 、 1%’ or 1=2# ,下面的步骤就和前面的时一样的,带入查询语句即可
同样插入JavaScript代码就可以弹窗,只不过这个是存储在服务器端,每次访问就会触发代码
触发DOM型XSS靠的是浏览器端的DOM解析,主要是将用户可控的JavaScript数据输出到HTML页面中而产生的漏洞
Json劫持就是要把打印的数据,远程调用JSON文件来实现数据传递,以下为构造的页面源码
JSONP劫持测试
在当前路径构造html页面进行劫持,以下为构造的源码
Ajax
Ajax 发送 get 请求
这里我是直接在C盘根目录下创建了一个tetx.txt文件,成功包含了text.txt中的phpinfo,因为我这里环境用的是Windows,如果是linux的环境可以对/etc/passwd进行包含
这里如果用绝对路径就不能直接访问。只能用相对路径来包含目标文件,…/…/…/…/…/test.txt可以看到成功包含目标文件,如果是Linux可以直接对…/…/…/…/…/…/…/etc/passwd进行包含。
没有任何限制,可以直接上传木马,这里我上传了一个phpinfo,可以看到上传成功并可以直接访问
先把php木马的后缀改为允许上传的格式,在通过burpsuite抓包把文件后缀修改为php,从而绕过前端js校验
这里服务端是对文件的MIME做了校验,可以直接上传php脚本,然后通过burpsuite抓包,将文件的Content-Type修改为image/jpeg就可以成功上传php脚本
这里试了很多绕过方式,大小写绕过、00截断(这里我一开始用phpstudy搭建的环境,变化大小写文件上传成功但是服务端没有对文件进行解析,后来用了wampmanager文件就被解析了,还是有点没搞懂是哪里的问题),后来用了.php.后缀名上传成功并可以成功getshell,这是因为Windows不允许以点为结束的文件后缀名,上传之后Windows会自动去除点,从而绕过
先制作一个图片马,然后把后缀修改回php绕过内容检测,或者直接在文件头添加gif文件头-gif89a即可
看了源码发现输入框用的是assert(),是常见的危险函数,如果输入的字符串则会被当成PHP代码执行
这里直接输入phpinfo(),被当作代码执行
这边也是通过分析了源代码发现用的是exec()函数,这个函数的作用是不输出结果,返回执行结果的最后一行
这里我使用了ipconfig命令,可以看到返回了执行结果的最后一行
虽然只能返回一行,但是如果执行一些写入文件的命令造成的危害就不可估量了
看了源码发现使用file_get_contents来获取值的,这个函数可以读取内网的文件,同时也可以打开url,还有就是对内网的端口进行探测等
读取本地hosts文件
大致的思路是用脚本自动化提交页面,虽然程序是通过判断余额是否大于0,但是运用多线程脚本快速的完成交易时,可能上一单没有核算完成,所以就可能会产生当前余额已经为0或者是负数,但是上一单的交易还没结束,从而也可能支付成功。
这里看了一下作者给的poc,尝试着运行了一下,但是并没有看到效果,还是没有搞懂作者的意图。
这边作者并没有给出上传的位置,所以只能通过作者给的poc进行测试
将作者编写的poc和要上传的文件放在一个目录下
这里是通过上传一个创建文件的php脚本,因为服务器端会删除白名单之外的文件,这里竞争的地方,就是赶在程序删除文件之前先执行了上传的脚本,从而生成一句话木马
这里通过插入xml代码块到request包中,最后重新范围界面就可以此漏洞读取到服务器的本地文件
]>
&xxe; admin