最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

[HNCTF 2022 WEEK2]easy_include+[NCTF 2018]全球最大交友網(wǎng)站

2023-04-03 18:34 作者:很菜的wl  | 我要投稿

https://www.ctfer.vip/problem/2948

大家好,這里是wl,很抱歉托更那么久,當(dāng)然雖然有很多理由,但是自己也懶過(guò)一段時(shí)間,前段時(shí)間盲于甲流恢復(fù)和考研準(zhǔn)備,這段時(shí)間正在補(bǔ)請(qǐng)假的課程和作業(yè),很抱歉自己荒廢了那么久,這是對(duì)自己的不負(fù)責(zé)也是對(duì)大家的不負(fù)責(zé),再次抱歉。當(dāng)然最近實(shí)驗(yàn)很多,自己在周更之外可能寫wp的頻率比較低,更多的是復(fù)習(xí)考研知識(shí),然后學(xué)c(因?yàn)閺?fù)試只考c),當(dāng)然自己也不會(huì)落下學(xué)習(xí)ctf知識(shí),在遇到比較有意思或者以前沒提到過(guò)的知識(shí)時(shí)自己也會(huì)順手寫一下wp的。


言歸正傳,發(fā)現(xiàn)太久沒上,nss平臺(tái)多了很多新功能,感慨自己閑了太久了。

[HNCTF 2022 WEEK2]easy_include

hint:WEB 文件包含

這可能是新生賽?直接搜索的話確實(shí)能搜到payload,但是這里我們還是老實(shí)自己做一次看看有沒有思路,那么看似比較簡(jiǎn)單的文件包含,過(guò)濾了諸多偽協(xié)議后其實(shí)并未剩下很多東西,這里涉及到一個(gè)以前沒提過(guò),或者提過(guò)我自己忘了的知識(shí):

日志包含:

https://www.cnblogs.com/GTL-JU/p/16831597.html


日志包含漏洞屬于是本地文件包含,同樣服務(wù)器沒有很好的過(guò)濾,或者是服務(wù)器配置不當(dāng)導(dǎo)致用戶進(jìn)入了內(nèi)網(wǎng),本來(lái)常規(guī)用戶是訪問不了這些文件的,但由于發(fā)起訪問請(qǐng)求的人是服務(wù)器本身,也就導(dǎo)致用戶任意文件讀取

apache服務(wù)器日志存放文件位置:/var/log/apache/access.log

nginx服務(wù)器日志存放位置:/var/log/nginx/access.log和/var/log/nginx/error.log

兩者的回顯并不相同,apache會(huì)存放我們的url參數(shù)在訪問時(shí)回顯,這使得我們可以在url后接一句話木馬并執(zhí)行。

而這道題是nginx服務(wù)器,可以看到回顯的是ua報(bào)文頭,同理,我們?cè)趗a頭構(gòu)造一句話木馬

當(dāng)然,這里執(zhí)行的前提都是包含了對(duì)應(yīng)的日志文件,且服務(wù)器有對(duì)應(yīng)的漏洞。

大家也可以自己用phpstudy自行測(cè)試一下,直接構(gòu)造命令執(zhí)行也應(yīng)該能起作用。

那么這里你抓包或者用hackbar工具這些也應(yīng)該能行,這里也學(xué)到了小技巧,ctrl U進(jìn)入源代碼查看可以看的更明顯,當(dāng)然這里ls后直接看到了flag名字,直接抓就行了

"GET /?file=/var/log/nginx/access.log&wl=system(%27cat/ffflllaaaggg%27); HTTP/1.1" 200 510 "http://43.143.7.127:28304/" "flag=NSSCTF{5c942e8b-2e1d-49a0-98c3-65d39822929e}

這里再試驗(yàn)一下直接在ua頭進(jìn)行命令執(zhí)行,這里命令太多于是重開一下環(huán)境:


看到一樣執(zhí)行成功,只不過(guò)在exec后要進(jìn)行ctrl U然后刷新一下,或者在原網(wǎng)站刷新一下也行。


這道題還是比較簡(jiǎn)單,主要是提一下沒講過(guò)的日志文件包含。


靠,我發(fā)現(xiàn)有些題開題要金幣了,我第一天簽到只有25,還開不了

[NCTF 2018]全球最大交友網(wǎng)站

hint: WEB? git泄漏


點(diǎn)開下面三個(gè)文件夾都沒看到啥東西,下載a.zip看到了.git,那應(yīng)該就是這個(gè)文件了。

這里再講一下以前沒講的git泄露:

https://blog.csdn.net/wulanlin/article/details/122409259


首先了解一下git泄露原理:

???? Git是一個(gè)開源的分布式版本控制系統(tǒng) ,我們簡(jiǎn)單的理解為Git 是一個(gè)內(nèi)容尋址文件系統(tǒng),也就是說(shuō)Git 的核心部分是鍵值對(duì)數(shù)據(jù)庫(kù)。 當(dāng)我們向 Git 倉(cāng)庫(kù)中插入任意類型的內(nèi)容(開發(fā)者們?cè)谄渲凶龅陌姹拘畔⑿薷闹惖牟僮?,它會(huì)返回一個(gè)唯一的鍵,通過(guò)該鍵可以在任意時(shí)刻再次取回該內(nèi)容

??? 攻擊者利用該漏洞下載.git文件夾中的所有內(nèi)容。如果文件夾中存在敏感信息(數(shù)據(jù)庫(kù)賬號(hào)密碼、源碼等),通過(guò)白盒的審計(jì)等方式就可能直接獲得控制服務(wù)器的權(quán)限和機(jī)會(huì)!

當(dāng)然要利用git泄露首先還是得了解一下git結(jié)構(gòu)和一些命令:

GIT結(jié)構(gòu):

.git目錄:使用git init初始化git倉(cāng)庫(kù)的時(shí)候,生成的隱藏目錄,git會(huì)將所有的文件,目錄,提交等轉(zhuǎn)化為git對(duì)象,壓縮存儲(chǔ)在這個(gè)文件夾當(dāng)中。

COMMIT_EDITMSG:保存最新的commit message,Git系統(tǒng)不會(huì)用到這個(gè)文件,用戶一個(gè)參考文件

config:Git倉(cāng)庫(kù)的配置文件

description:倉(cāng)庫(kù)的描述信息,主要給gitweb等git托管系統(tǒng)使用

HEAD:這個(gè)文件包含了一個(gè)檔期分支(branch)的引用,通過(guò)這個(gè)文件Git可以得到下一次commit的parent

hooks:這個(gè)目錄存放一些shell腳本,可以設(shè)置特定的git命令后觸發(fā)相應(yīng)的腳本;在搭建gitweb系統(tǒng)或其他

git托管系統(tǒng)會(huì)經(jīng)常用到hook script(鉤子腳本)

index:這個(gè)文件就是我們前面提到的暫存區(qū)(stage),是一個(gè)二進(jìn)制文件

info:包含倉(cāng)庫(kù)的一些信息

logs:保存所有更新的引用記錄

objects:所有的Git對(duì)象都會(huì)存放在這個(gè)目錄中,對(duì)象的SHA1哈希值的前兩位是文件夾名稱,后38位作為對(duì)象文件名

refs:這個(gè)目錄一般包括三個(gè)子文件夾,heads、remotes和tags,heads中的文件標(biāo)識(shí)了項(xiàng)目中的各個(gè)分支指向的當(dāng)前commit

ORIG_HEAD:HEAD指針的前一個(gè)狀態(tài)

git命令:

git init 初始化一個(gè)git倉(cāng)庫(kù)

git add && git commit //git 添加文件和提交文件

git status 查看當(dāng)前倉(cāng)庫(kù)狀態(tài)和內(nèi)存狀態(tài)

git ls-files -u 顯示沖突的文件,-s是顯示標(biāo)記為沖突已解決的文件

git diff 對(duì)比工作區(qū)和stage文件的差異

git diff -cached 對(duì)比stage和branch之間的差異

git ls-files -stage 檢查保存在stage的文件

git log 顯示到HEAD所指向的commit為止的所有commit記錄

git reset -hard HEAD放棄工作區(qū)和index的改動(dòng),HEAD指針仍然指向當(dāng)前的commit

這里還是比較建議自己整個(gè)git自己搞來(lái)熟悉一下,當(dāng)然你要用本題的git來(lái)試驗(yàn)也不是不行。

git泄露的幾種題型:

普通git泄露:沒有別的花里胡哨的操作,全是運(yùn)用工具或腳本獲取網(wǎng)站源碼或者flag。

回滾git泄露:因?yàn)間it版本更新啥的以前的flag文件可能就無(wú)了,而我們可以利用git reset命令查看git版本變化時(shí)每次提交的commit修改值查看修改的文件然后來(lái)回溯到對(duì)應(yīng)版本

其他泄露:在.git/config文件夾中可能含有access_token信息,從而可以訪問這個(gè)用戶的其他倉(cāng)庫(kù)。

git分支:在每次提交時(shí),git都會(huì)自動(dòng)把它們串成一條時(shí)間線,這條時(shí)間線就是一個(gè)分支。而git允許使用多個(gè)分支,從而讓用戶可以把工作從開發(fā)主線上分離出來(lái),以免影響開發(fā)主線。如果沒有新建分支,那么只有一條時(shí)間線,即只有一個(gè)分支,git中默認(rèn)為master分支。因此,我們要找的flag或敏感文件可能不會(huì)藏在當(dāng)前分支中,這時(shí)使用“git log”命令只能找到在當(dāng)前分支上的修改,并不能看到我們想要的信息,因此需要切換分支來(lái)找到想要的文件。

那么這里的類型是回滾git泄露

這里我發(fā)現(xiàn)我windows么安git,于是在kali上跑。

首先git log 查看版本,發(fā)現(xiàn)只有三個(gè),還好,還有tag:1.0 難道意思是在第一個(gè)?

這里發(fā)現(xiàn)剛才看的博客有些問題,這里感謝:

https://www.ctfer.vip/note/set/604

git reset –-soft:回退到某個(gè)版本,只回退了commit的信息,不會(huì)恢復(fù)到index file一級(jí)。如果還要提交,直接commit即可;
git reset -–hard:徹底回退到某個(gè)版本,本地的源碼也會(huì)變?yōu)樯弦粋€(gè)版本的內(nèi)容,撤銷的commit中所包含的更改被沖掉;

這里HEAD可能是因?yàn)榭吹搅薶int,讀取一下提示

提示在tag1.0里,于是回溯:

? 這里直接看到了flag,當(dāng)然為什么第一個(gè)可以直接用HEAD第二個(gè)卻需要加commit值,這里還需要自己去了解一下,也把這個(gè)問題留給大家。

靠,這里flag不對(duì),真flag在最后一個(gè)沒看的版本,也就是時(shí)期在最早的版本,原來(lái)1.0是這個(gè)意思?我說(shuō)為什么good中間那么多0

? 這段時(shí)間我看到了很多留言,有些留言是提示我的錯(cuò)誤,有的則是沒有仔細(xì)看我的wp,有的提出的疑惑由于時(shí)間已久我也有些不解但又覺得提的問題沒什么必要再回去深究,因此留言并未一一回復(fù),在這里感謝留言的朋友。

那么,感謝你的觀看,希望你能學(xué)到一點(diǎn)東西。

我們下一題再見!


[HNCTF 2022 WEEK2]easy_include+[NCTF 2018]全球最大交友網(wǎng)站的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
楚雄市| 依安县| 双江| 勐海县| 惠水县| 洛宁县| 登封市| 阿拉尔市| 石河子市| 得荣县| 榕江县| 玉田县| 高台县| 高安市| 永靖县| 浙江省| 郧西县| 萝北县| 张掖市| 页游| 广平县| 日照市| 开江县| 德安县| 邵阳市| 兴山县| 宁河县| 八宿县| 利津县| 囊谦县| 乃东县| 兴和县| 海安县| 准格尔旗| 合作市| 阳山县| 深圳市| 龙口市| 蓬安县| 台州市| 五峰|