[SWPUCTF 2021 新生賽]gift_F12
1.打開環境后,這里說要900多天會有flag,這是不可能的
2.f12查看源碼,然后在html中查找flag (在最上方的欄目中,或者按ctrl+f)
[SWPUCTF 2021 新生賽]jicao
1.打開環境是一段php代碼
2.上面的代碼說包含了一個flag.php文件,設定了一個POST請求id和GET請求json,語句會對GET請求的數據進行json解碼(post不會),如果id和json變量的值都等于設定字符串,輸出flag
json字符串,形如:json={"aa":"bb"},其中aa是鍵,bb是值,那題目的意思就是json={"x":"wllm"}
[SWPUCTF 2021 新生賽]easy_md5?
1.打開環境,一段php代碼,解題之道就在其中
2.意思是包含有一個flag.php的文件,然后 get傳參name,post傳參password,當name和password的值不等,但是他們的md5值相等時,就會輸出flag,否則輸出wrong
要找兩個相同的md5,但值不同的數據很費時間,我們可以繞過,有兩個方法
(1)md5繞過(數組繞過),md5不能加密數組,在加密數組的時候會返回NULL,如果設置沒有判斷變量類型或內容,就行得通
?
(2)0e繞過(科學記數法)以0e+數字類型的md5值在php進行科學計數法時會將其轉化成0,也就是兩個數的md5加密后的值以0e開頭就可以繞過。
?eg:
240610708:0e462097431906509019562988736854
QLTHNDT:0e405967825401955372549139051580
QNKCDZO:0e830400451993494058024219903391
PJNPDWY:0e291529052894702774557631701704
NWWKITQ:0e763082070976038347657360817689
NOOPCJF:0e818888003657176127862245791911
MMHUWUV:0e701732711630150438129209816536
MAUXXQC:0e478478466848439040434801845361
?
?[SWPUCTF 2021 新生賽]include
1.打開環境說叫我們傳一個file試試,那就試試,說flag在flag.php中。
2.這樣的話就是php偽協議了,寫個payload,filter可以讀取flag.php中的信息
url ?file=php://filter/read=convert.base64-encode/resource=flag.php
3.得到一串編碼,拿去解碼,得到flag
?[SWPUCTF 2021 新生賽]PseudoProtocols
1. 看到有提示說叫我們找到hint.php,同時在url處有一個參數。
2.利用php偽協議中的filter獲取 hint.php文件的內容,得到一個base64編碼
3.解碼,有兩個結果。有一個好像是地址,訪問一下
4.得到一個新的頁面,有php代碼,上面說最大執行時間180s,包含有一個flag.php文件,使用get傳參,當參數a的值等于I want? flag? 時輸出success和flag
5.再次使用偽協議,這里有兩種方法
(1)php://input協議,url:?? ?a=php://input, post傳參: I? want? flag
注意:此方法需要條件,即開啟allow_url_include=On
(2)data??? url:??? ?a=data://text/plain,i want flag
?[SWPUCTF 2022 新生賽]ez_ez_php
1.有段php代碼,禁用了php的錯誤報告,get傳參包括file,并檢查文件頭是不是php,file
?參數的前三個字符是 "php",代碼將包含該參數指定的文件,還有一個注釋說存在flag.php的文件
2.使用php偽協議,構造payload,得到一個base64編碼http://node5.anna.nssctf.cn:25603/?file=php://filter/read=convert.base64-encode/resource=flag.php
3.解碼得,上面說flag不在這里,試試偽協議,真正的flag在flag里。
4.修改upload,又得到一個編碼
5.解碼得到flag
[鵬城杯 2022]簡單包含
1.打開環境,上面說通過post請求flag,注釋還說了flag的具體路徑。
2.先用php偽協議看看,上面提示說有waf
?3.訪問index.php頁面,返回一串base64
4.解碼得到新的
5.得到的新內容說: POST 請求體小于 800 個字符(waf),并且?$path
?包含 "flag",則輸出 "nssctf waf!",用正則校驗路徑是否含有flag
這里繞過的方法就是讓字符超過800,接上偽協議,就可以得到flag