ホームページ バックエンド開発 PHPチュートリアル PHP ログイン インジェクションの小さなサンプル ソリューション

PHP ログイン インジェクションの小さなサンプル ソリューション

Jun 13, 2016 pm 01:31 PM
mysql php quot user

PHP ログイン インジェクションの小さな例
PHP を学習する過程で SQL インジェクションについて聞いたことがあるでしょう。簡単に言うと、バックグラウンドで SQL コードの脆弱性を利用して不正な操作を実行することです。たとえば、ログインするバックエンド コードの脆弱性を悪用すると、ユーザーは実際のユーザー名とパスワードを知らなくても、フォームからデータを送信してバックエンドに正常にログインできます。ユーザー検証の例を見てみましょう。まず、次のようにデータベースとデータ テーブルを作成し、レコードを挿入します。
CREATE TABLE `user` (
`userid` int(11) NOT NULL auto_increment,` ユーザー名` varchar(20) NOT NULL デフォルト '',
`パスワード` varchar(20) NOT NULL デフォルト '',
PRIMARY KEY (`userid`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;
#
# テーブル `user`
#
INSERT INTO `user` VALUES (1, 'angel', 'mypass');
検証するコードユーザーファイルは次のとおりです:
PHP コード:
$servername = "localhost";
$dbusername = "root";
$dbpassword = "";
$dbname = "injection ";
mysql_connect($servername,$dbusername,$dbpassword) または die ("データベース接続に失敗しました");
$sql = "SELECT * FROM user WHERE username='$username ' AND パスワード='$パスワード '";
$result = mysql_db_query($dbname, $sql);
$userinfo = mysql_fetch_array($result);
if (empty($userinfo)){
echo "ログイン失敗" ;
} else {
echo "ログイン成功";
}
echo "

SQL クエリ:$sql

";
? >

この時点で次のように送信します:
http://127.0.0.1/injection/user.php?username=angel'or 1=1
次が返されます:
警告: mysql_fetch_array(): 指定された引数は、F:wwwinjectionuser.php の 13 行目で有効な MySQL 結果リソースではありません
ログインに失敗しました
SQL クエリ:SELECT * FROM user WHERE username='angel' or 1=1' ANDパスワード='
PHP 警告 : mysql_fetch_array(): 指定された引数は、F:wwwinjectionuser.php の 13 行目で有効な MySQL 結果リソースではありません
わかりますか?一重引用符が閉じられた後、次の一重引用符はコメントアウトされず、一重引用符が正しくペアにならないことになります。したがって、作成したステートメントでは Mysql を正しく実行できず、再構築する必要があることがわかります。 🎜>http://127.0.0.1/injection/user.php?username=angel'or '1=1
このとき、「Login Successful」と表示され、成功したことがわかります。または、次のように送信します:
http://127.0.0.1/injection/user.php?username=angel'/*
http://127.0.0.1/injection/user.php?username=angel'%23
これにより、次のステートメントがコメントアウトされます。これら 2 つの投稿の違いについて説明します。言うまでもなく、最初に投稿した文は論理演算を使用しています。 2 番目と 3 番目の文は、mysql の特性に基づいています。Mysql は、/* と # の 2 つのコメント形式をサポートしているため、送信するときに次のコードをコメントアウトします。エンコードの問題により、# を送信することに注意してください。 IE のアドレス バーは空になるため、アドレス バーで送信する場合は、# になる前に %23 を送信する必要があります。これは、PHP の論理演算よりもはるかに簡単であることがわかります。 ASP よりもはるかに強力で柔軟です。

詳細な元のアドレス: http://www.phpnewer.com/index.php/Dmaq/detail/id/202


-----解決策-- - -----------------
ふふふふふふふ
------解決策---------
共有してくれてありがとう
------解決策---------
記事は古すぎて時代遅れです。
------解決策---------
昨日公開されたばかりの記事は古いですか? ? ?


ディスカッション

記事は古すぎて時代遅れです。


------解決策------------------
これは確かに古い方法であり、次のことが可能です。これらのコメント文字と、エラーが発生したときに出力される情報を簡単にブロックします ただし、厳密に検査されていない Web サイトに対しては、この機能を試すことができます。

------解決策-----
一重引用符でフィルターで除外 他に何ができるでしょうか?
------解決策---------
これは前にも見たことがあります。 これは 1 つの GET 送信メソッドにすぎません。 POST投稿方法もあります


------解決策----------------------
この広告マンは広告を出し続けています。
------解決策----------------------
現在ブロックされている方が多いようです(笑)
------解決策------------------
幸いなことに、私は参加する決意をしています
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

MySQLおよびPHPMYADMIN:コア機能と関数 MySQLおよびPHPMYADMIN:コア機能と関数 Apr 22, 2025 am 12:12 AM

MySQLとPHPMyAdminは、強力なデータベース管理ツールです。 1)MySQLは、データベースとテーブルを作成し、DMLおよびSQLクエリを実行するために使用されます。 2)PHPMyAdminは、データベース管理、テーブル構造管理、データ操作、ユーザー許可管理のための直感的なインターフェイスを提供します。

PHPの継続的な使用:その持久力の理由 PHPの継続的な使用:その持久力の理由 Apr 19, 2025 am 12:23 AM

まだ人気があるのは、使いやすさ、柔軟性、強力なエコシステムです。 1)使いやすさとシンプルな構文により、初心者にとって最初の選択肢になります。 2)Web開発、HTTP要求とデータベースとの優れた相互作用と密接に統合されています。 3)巨大なエコシステムは、豊富なツールとライブラリを提供します。 4)アクティブなコミュニティとオープンソースの性質は、それらを新しいニーズとテクノロジーの傾向に適応させます。

MySQL対その他のプログラミング言語:比較 MySQL対その他のプログラミング言語:比較 Apr 19, 2025 am 12:22 AM

他のプログラミング言語と比較して、MySQLは主にデータの保存と管理に使用されますが、Python、Java、Cなどの他の言語は論理処理とアプリケーション開発に使用されます。 MySQLは、データ管理のニーズに適した高性能、スケーラビリティ、およびクロスプラットフォームサポートで知られていますが、他の言語は、データ分析、エンタープライズアプリケーション、システムプログラミングなどのそれぞれの分野で利点があります。

Laravel Frameworkインストール方法 Laravel Frameworkインストール方法 Apr 18, 2025 pm 12:54 PM

記事の概要:この記事では、Laravelフレームワークを簡単にインストールする方法について読者をガイドするための詳細なステップバイステップの指示を提供します。 Laravelは、Webアプリケーションの開発プロセスを高速化する強力なPHPフレームワークです。このチュートリアルは、システム要件からデータベースの構成とルーティングの設定までのインストールプロセスをカバーしています。これらの手順に従うことにより、読者はLaravelプロジェクトのための強固な基盤を迅速かつ効率的に築くことができます。

IISとPHPの互換性:ディープダイビング IISとPHPの互換性:ディープダイビング Apr 22, 2025 am 12:01 AM

IISとPHPは互換性があり、FastCGIを通じて実装されています。 1..phpファイル要求を構成ファイルを介してFastCGIモジュールに転送します。 2. FASTCGIモジュールは、PHPプロセスを開始して、パフォーマンスと安定性を改善するための要求を処理します。 3。実際のアプリケーションでは、構成の詳細、エラーデバッグ、パフォーマンスの最適化に注意する必要があります。

MySQLの外国キーの目的を説明してください。 MySQLの外国キーの目的を説明してください。 Apr 25, 2025 am 12:17 AM

MySQLでは、外部キーの機能は、テーブル間の関係を確立し、データの一貫性と整合性を確保することです。外部キーは、参照整合性チェックとカスケード操作を通じてデータの有効性を維持します。パフォーマンスの最適化に注意し、それらを使用するときに一般的なエラーを避けてください。

関数と正規表現を含むJavaScriptオブジェクトをデータベースに安全に保存して復元するにはどうすればよいですか? 関数と正規表現を含むJavaScriptオブジェクトをデータベースに安全に保存して復元するにはどうすればよいですか? Apr 19, 2025 pm 11:09 PM

フロントエンド開発においてJSONで機能と正規表現を安全に処理することができますが、JavaScriptが必要です...

mysqlとmariadbを比較対照します。 mysqlとmariadbを比較対照します。 Apr 26, 2025 am 12:08 AM

MySQLとMariaDBの主な違いは、パフォーマンス、機能、ライセンスです。1。MySQLはOracleによって開発され、Mariadbはフォークです。 2. Mariadbは、高負荷環境でパフォーマンスを向上させる可能性があります。 3.MariaDBは、より多くのストレージエンジンと機能を提供します。 4.MySQLは二重ライセンスを採用し、MariaDBは完全にオープンソースです。既存のインフラストラクチャ、パフォーマンス要件、機能要件、およびライセンスコストを選択する際に考慮する必要があります。

See all articles