----------------------------發現乙個寫了 但是丟著沒發的wp-------------------------
binwalk 能發現乙個7z
搜尋7z發現乙個檔案頭 還提示密碼是bluetooth pin txt
左上角檔案→匯出分組位元組流 然後搜尋pin可以找到pincode是141854
解壓獲得flag
直接給原始碼
<?php
show_source
("index.php");
function
write
($data
)function
read
($data
)classa}
classb}
classc}
$a=newa
($_get
['a'],
$_get
['b'])
;//省略了儲存序列化資料的過程,下面是取出來並反序列化的操作$b=
unserialize
(read
(write
(serialize($a
))))
;
在我的專案中有曾經的 「flag.php」 正好可以驗證包含的成功與否
可以看到 當new的c物件賦值給b物件的變數的時候,成功包含了 「flag.php」
現在的問題就是如何通過傳引數讓a類與b類產生關係,這就涉及到了上面提及的「joomla rce漏洞」了,即利用「read」和「write」函式。
不難看到 當傳入 「\0\0\0」 經過序列化並write和read後 原本序列化出來的表示長度的6並沒用改變 但是字串的的長度由原本的6個變成了3個,所以反序列化時或將到下乙個『s』為止的字串都當成『username』的內容
所以我們可以在後面的引數傳入時構造**並讓前面引數最終多「吃掉」字元並閉合,這樣就可以在反序列化的時候包含「flag.php」了
所以我們可以傳入多個"\0\0\0"以吃掉後面的到password後的引號為止,這樣就可以自動閉合前面username的引號
要讀到自己構造的password 至少需要8個「\0\0\0」,因為雖然7個剛好可以讀到引號,但是沒能構造出分號 所以需要再讀「\0\0\0」,在後面構造處補分號並補齊前面username到引號 我這裡構造如下圖
我構造的password 前面補上 a"; 引號和分號不能變,a是任意字元
可以看到成功包含
安恆杯12月月賽
這次的月賽可以說非常適合我這種菜雞做了請求包中發現乙個user base64 解碼得到user,構造admin 然後base64提交 發現跳轉到後台admin.php 試了乙個ls發現有回顯,應該是個命令執行漏洞 構造 cmd ls ifs 成功回顯 然後讀取flag cmd cat ifs ffl...
安恆2023年12月月賽wp web部分
試試訪問admin.php,之後頁面顯示 you are not admin 因為題目並沒有登入功能,猜測可能要對cookie做點文章來偽裝成admin。用burp抓包看請求頭如下 發現user欄位,把值解base64得user 3d是 的url編碼,解碼的時候記得把 3d換成 根據這個思路,就把a...
2018安恆杯12月月賽復現
萌新因為種種原因沒有做安恆12月的月賽題,正巧這幾天發現復現,又學到了新知識!題目index.php給出原始碼 error reporting 1 include flag.php class baby if file get contents filename if isset get data ...