0x01:环境搭建
靶机下载地址:XXE LAB:1
选择箭头指示的下载链接:
下载的是一个zip压缩文件,同学们解压到自己想要放置的文件夹,这里建议大家创建一个labs文件夹,把所有的靶机ISO文件,或者是ZIP压缩包,全都放在一起,方便统一管理操作。
解压下来以后,将xxe.ocf文件拖拽到VM中的虚拟机栏位
然后填写名称与虚拟机存放位置就好了
0x02:信息收集
三板斧
一、ip扫描
老规矩,先找找看靶机的ip地址是什么,不然连入口都进不去,还打个锤子。
很明显,这个192.168.183.137就是了
首页:
二、端口扫描
如图,80/tcp 5355/tcp开放
三、目录扫描
居然只有个robots?去瞅瞅
原来如此,那么为什么dirsearch没有扫出来呢?
问得好,因为他默认的字典里没有xxe这个字段
是个登录界面
随便先写个用户名,密码看看情况
好好好,不让进是吧,burpsuite启动!!!
0x03:漏洞利用
三用XXE
a、第一次
咱们抓他的POST包,看看具体是个什么情况。
如上图,看到xml了,是不是可以尝试写一些恶意代码,来试试有没有xxe漏洞了呢?
我们试着构建一段小烧代码:
<!DOCTYPE foo [<!ENTITY afk SYSTEM "file:///etc/hosts">]>
<b>&afk;</b>
首先,把抓到的这个包,发到repeater模块,然后把小烧代码插到如图所示框选位置,点击send:
可以看到右边回显出了passwd,说明这里不仅存在xxe漏洞,而且还是可回显的。
root肯定是管理员,但是这个r00t是个什么玩意???
不懂,再去刚刚找到的admin.php瞅瞅。(注:这里要去的路径是/xxe/admin.php)
哟,是后台登录界面。再随便写一个看看呢
老规矩,再随便填一个,然后抓包
b、第二次
嘶~源代码也没有什么可疑内容,php代码块被过滤了。
再去利用刚刚的xxe漏洞,看看admin.php源码。
再构建一个小烧代码:
<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY afk SYSTEM "php://filter/read=convert.base64-encode/resource=admin.php">
]>
还是将小烧代码,插到刚才的位置。
可以看到右边是一堆经过base64编码后的代码。去解码看一看
可以看到,用户名是administhebest,密码是md5加密过的,解密后是:admin@123
回去登录
点进来后显示404
之前查到的说是/xxe/*,这里意思就是根目录,和/xxe/admin同理,要去/xxe/flagmeout.php才可以
得到神秘代码:JQZFMMCZPE4HKWTNPBUFU6JVO5QUQQJ5
这个是base32加密的,去解一下看看
继续base64解
找到了flag的藏身之处/etc/.flag.php
哟,还是找不到
再去抓包
c、第三次
再再去xxe漏洞哪里找!
继续base64解码
得到了一坨神秘代码,查询后得知是PHP 中的 eval() 函数的典型用法。
在本地搭建apache+php服务(开启小皮面板,打开apache就可以了),把这坨神秘代码放入flag.php文件中,然后把该文件放到localhost下(路径一般是X:\PhpStudy\phpstudy_pro\WWW),然后浏览器打开localhost,尝试访问falg.php看看。
以上就是本次靶机实战的全部内容,希望能对您有一点点的帮助。