靶机描述

渗透测试过程

端口扫描

  • 使用nmap扫描发现开放80,5355端口。

XXE靶机渗透

访问web服务

  • 1.首先访问80端口,页面是Ubuntu的默认页面。

XXE靶机渗透

  • 2.使用御剑扫描web目录,发现存在robots.txt目录。

XXE靶机渗透

  • 3.访问robots.txt目录,发现存在/xxe和/admin.php目录。

XXE靶机渗透

  • 4.访问/xxe目录是一个登录窗口,尝试弱口令进不去。

XXE靶机渗透

  • 5.访问/admin.php,这里直接报Not Found,试试其他思路,将admin.php放在/xxe目录后面,也发现一个登录页面。

XXE靶机渗透

  • 6.这里突然想到,本题是练习xxe漏洞,所以尝试使用xxe漏洞的思路,这里我们在/xxe目录下,登录使用burpsuite抓包,查看发现此处果然是通过XXE外部实体进行请求的。

XXE靶机渗透

  • 7.利用XXE漏洞,尝试获取/etc/passwd文件内容,构造payload如下,将其插入到xml文档之间,同时修改&admin;。

`<!DOCTYPE GVI [

<!ENTITY admin SYSTEM "file:///etc/passwd" >

]>`。

获取成功:
XXE靶机渗透

  • 8.尝试获取admin.php文件内容,因为这里没有admin.php文件的绝对路径,所以使用php伪协议获取:

`<!DOCTYPE GVI [

<!ENTITY admin SYSTEM "php://filter/read=convert.base64-encode/resource=admin.php" >

]>`

XXE靶机渗透

  • 9.使用base64进行解码,查看admin.php的源码,找到一对用户名和密码administhebest/[email protected]

XXE靶机渗透

密码是经过md5加密的,使用在线的SOMD5解密后得到密码为:[email protected]

XXE靶机渗透

  • 10.使用密码进行登录,发现/xxe目录是登录不了的,/xxe/admin.php目录登录成功,发现Flag字样。

XXE靶机渗透

  • 11.点击【Flag】,发现找不到该页面:flagmeout.php。

XXE靶机渗透

  • 12.将flagmeout.php放在/xxe目录下,继续查看源码,发现这里提示Flag在这段编码中。

XXE靶机渗透

  • 13.可以看出,这是一个base32的编码,使用工具解密,解码后为base64加密。

XXE靶机渗透

  • 14.继续解码,解码出的明文是/etc/.flag.php

XXE靶机渗透

  • 15.继续使用xxe获取该文件内容,得到了一堆类似编码的东西,好像是JavaScript 代码的webshell。

XXE靶机渗透

  • 16.使用源代码审计工具执行该段代码,最终获得flag:SAFCSP{xxe_is_so_easy} .

XXE靶机渗透

相关文章: