2024isctf ezrce
禁用了一些關鍵字符,查詢函數,系統執行函數,執行函數都有,空格也和斜桿也禁用了,但是其他一些很大一部分字符都沒有禁用,屬于關鍵詞禁用的類型,正常的步驟是去查一下列表,想著正常去構造一下查詢語句,但是沒有回顯
我能想到的原因是目錄層級不對,由于/被禁用了我們不能直接查根目錄的列表,那我們換個思路,可以用轉義繞過,或者取反,異或,這邊使用簡單一點的取反,先查列表寫一個簡單的php取反編碼代碼取反,明確要執行的代碼system ls /,兩個分開轉義
得到列表
接著執行system cat /flag即可,同樣的方式編碼
2024isctf25時曉山瑞希生日會
打開環境,提示要修改客戶端請求,我們抓包修改一下
又提示只能從本地來,那就是改一下XFF改成本地網址,這邊沒有就給他補上去
又提示時間不對,結合題目應該是25時,加個date上去
提示格式錯了,搜一下這種格式的時間
按照他的格式,結合題目
忘記是幾月份了,使用它這個格式之后還是提示格式錯誤,去搜索了,有一板比較詳細的
反正最好還是不知道具體時間,這里就去看了一下wp
最后的時間是這個,題目給的9.15貌似沒什么作用啊
2024isctf UP!UPloader
打開是一個文件上傳的界面,我們隨便傳一個木馬上去,提示文件路徑不好找,又提示了一個php文件
我們訪問一下這個文件
我們可以通過這個文件包含一個文件,試著包含一下我們剛剛傳參的文件
沒有任何回顯,也沒有進一步的提示,找不到路徑,但是有文件包含,我們就能想到php偽協議,嘗試看一下我們剛剛上傳的文件
還是什么都沒有,那就查看看upload.php這個文件
解碼看一下
可以看到它將我們上傳的文件名進行了MD5加密,這也是為什么完成剛才查不到的原因,這也提到了上傳的目錄是當前目錄的uploads目錄,我們將我們上傳的文件名進行MD5加密看看我們上傳的文件,先包含一下我們上傳的文件,記住文件名是MD5加密之后的,發現沒有回顯
直接用蟻劍連看看,連接成功了,但是沒找到flag
到這里就沒思路了,看了wp發現是再使用post傳參去利用一句話木馬執行evn命令,在Linux系統中,env命令用于顯示當前環境變量,它會列出一系列包含系統配置信息、用戶設置等內容的變量,其實就是和PHP info差不多
那我們試試看用phpinfo可不可以,同樣能找到
2024isctf 小藍鯊的秘密
打開環境像是官網,在源碼中搜索一下關鍵字符,或者在js中找一下有沒有信息都沒找到什么
產生抓包看看,也沒找到什么,題目也沒有什么提示,但是如果細心一點就能發現url地址不是題目環境的地址,而就是官網的地址,說明是打開環境之后,自動跳到了這個地址來了,之前也沒遇到過類似的情況,直接攔截抓包打開環境,重放可以得到flag
后面去了解了一下,發現這是網頁重定向的問題,有301永久重定向、302臨時重定向、307臨時重定向、303 See Other、308永久重定向,具體可以看一看這篇博客
詳解重定向(HTTP狀態碼301/302/303/307/408)附例子 - 汕大小吳 - 博客園
這題屬于302臨時重定向
2024isctf小藍鯊的冒險
大致看一下代碼,聲明了變量a的值,通過get傳參給變量b賦值,使用parse_str
函數將變量b轉換為參數值,這里主要是用來覆蓋掉變量a的值,檢查變量a的第一個字符不等于那串字符串,將變量a的第一個字符進行md5加密之后與那串字符串md5加密對比,這里就是利用哈希碰撞原理QNKCDZO 240610708,到這里是第一層驗證;通過post傳參num這個參數給變量num,如果參數num的值是2024的話,輸出QAQ,歷遍變量num如果有大小寫字母的話,就輸出nonono,到這里是第二層驗證;用intval函數將變量num轉換成整數,使用基數0,intval函數會自動識別數字的進制,到這里是第三層驗證;檢查get傳參的參數中是否含有which,若有則賦值給變量which,對比which變量中的值如果是1或者2就會包含變量which的內容作為文件名加上后綴php并輸出其中定義的變量flag
其中關鍵的是我們要了解intval函數的用法,還有最后一層檢驗中要怎么讓which變量同時是1和flag,既然intval加了基數0會自動識別進制,那么我們 可以將2024轉換成十六進制繞過一下,get傳參用一下連接符即可
結果是這樣的,但是不知道為什么沒有反應,可能是which參數有點問題
去看了一下wp,他們用的是八進制來繞過num,其他和我的差不多,但是我試了一下八進制還是沒什么反應
basectf2024 HTTP是什么啊
按照他的要求修改,抓包修改
base64解碼即可
basectf2024你聽不到我的聲音
很簡單的代碼,但是php代碼后面沒有閉合,按理來說shell_exec這個函數執行完指令之后是會返回一個字符串作為輸出的,在php環境中shell_exec
是一個函數,它的作用是執行一個外部的 shell 命令,并將命令執行后的輸出結果以字符串形式返回,但是我們傳參一個cmd參數之后它沒有任何回顯,但是函數應該是執行了,我們可以用重定向符將執行結果給送到應該文件中再訪問文件即可得到結果