ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルでインジェクションを決定する 10 の方法の紹介
1. インジェクションがあるかどうかを判断し、1=1; と 1=2
2. バージョンと ord(mid(version(),1,1))>51 /* 通常に戻して指示します。バージョン 4.0 以降である場合は、union を使用してクエリを実行できます
3. order by を使用してフィールドを分割し、URL の後に order by 10 /* を追加します。戻り値が正常であれば、フィールドは 10 より大きいです。 4. 次に、union を使用して正確なフィールドをクエリします。たとえば、1=2 Union select 1,2,3,..../* が正常に返され、フィールドの正確な数が推測されたことを示します。スペースがフィルタリングされる場合は、代わりに /**/ を使用できます。
5. データベース接続アカウントに書き込み権限があるかどうかを確認し、(select count(*) from mysql.user)>0 /*結果がエラーを返した場合は、管理者アカウントとパスワードを推測することしかできません。
6. 正常に返された場合は、1,2,3,4,5,6,load_file(char(カンマ区切りのファイルパスのASCII値)),8,9,10 /*を選択できます。 :load_file
(char (カンマで区切られたファイル パスの ASCII 値)) を 16 進数で使用することもできます。この方法で、設定ファイルを読み取ったり、データベース接続を検索したりすることができます。
7. まず、次のようにユーザー テーブルを推測します。 and 1=2 Union select 1,2,3,4,5,6.... from user /* 戻り値が正常であれば、このテーブルが存在することを意味します。
8. テーブルを理解した上でフィールドを推測し、1=2 Union select 1,username,3,4,5,6.... from user/*2 フィールドにフィールドの内容が表示されている場合、いくつかのフィールド。
9. 同様に、パスワードフィールドを再度推測します。推測が成功した場合は、バックエンドにログインします。
10. バックエンドにログインし、シェルをアップロードします
http://www.bkjia.com/PHPjc/486055.html