ゼロベースの戦闘SQLインジェクション

注:それはゼロベースである場合、それはポイントを学習のポイントトップダウンでなければならない、あるいは確かに障害物の多くを持って、実際のドロップの最終表面を起動したかったそうです。

SQLインジェクションは、私は別のブログで見ることができます知っているだけでは不十分です。
https://blog.csdn.net/weixin_45254208/article/details/105033276

ビルドSQLインジェクションのプラットフォームにも私の他のブログの記事を見ることができません。https://blog.csdn.net/weixin_45254208/article/details/104698495

基本を習得するために、実際の必要性の前に:

上記の二つのブログの内容は、単に人々がこれらの2つの点が一人で戦闘確かに十分ではありませんが低下したかった、シンプルなSQLインジェクションと構築された環境を理解させるために、あなたはまた、次の根拠が必要になります。

1. MYSQLベースの学習
あなたが学ぶことができるということは、非常に深いではありませんが、我々は理解しなければならない基本的なMYSQL文の意味(CRUD、および頻繁に使用制限)。インターネットはどこでもMYSQL文を学ぶことができ、多くの人がB駅での教育ビデオは、私は長い間インターネットなど、あなたはMYSQLの基礎を築くことができ、私が思うに、あなたを思いませんがある、ブログを書いた
 
3つの表名を覚えておいてください。2.(キー)
このコマンドは、データベース内の「INFORMATION_SCHEMA」データベースのために保存INFORMATION_SCHEMA、MYSQLのデフォルトが含まれていますデータベースのすべてを表示することができ、あなたは覚えておく必要がある。あなたはMYSQLの基礎を持っている場合は、必ずショーのデータベースの知っていますライブラリ内の3テーブル名は、あるSCHEMATA、テーブルとカラム

SCHEMATAテーブル:
すべてのユーザーが作成したデータベース名が格納されている、という名前のデータベースレコードのフィールドの名前SCHEMA_NAME

、ブログの前でのphpMyAdmin、ビルドSQLインジェクションのプラットフォームのオープンは行くためにどのように最初に書かれている
ここに画像を挿入説明
左に入った後に、すべてのデータベースである
ここに画像を挿入説明
SCHEMATAテーブルを見つけ、INFORMATION_SCHEMAデータベースにクリックすると、テーブルを参照することができますSCHEMA_NAMEのフィールドを次のデータベースのすべてです
ここに画像を挿入説明

TABLES表:
ユーザーが作成したライブラリ名を格納したデータベーステーブルのすべての名前、示すように、テーブルのレコードリポジトリ名とフィールド名がありTABLE_SCHEMAおよびTABLE_NAME(直接、すべてのデータベース名とそれに対応するテーブル名を参照してください、あなたはページをめくることができませんShow All(すべてを表示)をクリックしてください)
ここに画像を挿入説明

COLUMNSテーブル:
ユーザが作成したテーブル名やフィールド名、示すように、記録店舗名、フィールド名とテーブルのフィールド名を格納し、すべてのデータベースがあるライブラリの名前TABLE_SCHEMA、TABLE_NAMEとCOLUMN_NAME
ここに画像を挿入説明

SQL戦闘:

オープンphpstudy2018、私はSQLI-ラボマスターしたSQLインジェクションプラットフォームフォルダ名、以下phpstudyを覚えて、サービスを開始します。
ここに画像を挿入説明
アクセスSQLインジェクションのプラットフォームは、入力する最初の質問
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
黄色のフォントはヒントの対象である:数値でパラメータとしてIDを入力してください。その後?ID = 1(?URLで実際のURLとパラメータを区切るために使用される)を通過し
ここに画像を挿入説明
ないエラー、および情報を返し
ここに画像を挿入説明
、その後?ID = 1バックプラス(実際には通常、最初の単一引用符の試行錯誤、二重に引用符は、バックスラッシュは、そのためデジタル試行錯誤)は、エラーチェックのエラーメッセージ「」1「」LIMIT 0,1 'の結果ことができる
ここに画像を挿入説明
ここに画像を挿入説明
情報は、2つの単一引用符を与えられているので、2つの端部は、それほど除去端部に実際の見積書を見ることができますアップロードされ、その後、問題を取り除く
ここに画像を挿入説明
-指定した列に基づいて結果セットをソートする文でMYSQLのために、コメント記号は2である-スペースではなく、URLでスペースと、URL内のスペースは、パラメータが渡されたかどうかを示すために、プラス記号+であり?id=1' order by 3 --+、その後、実際にこれは、以下で
ここに画像を挿入説明
入力し、URLにアクセスし、正常に戻り、説明は、第3のフィールドに応じて分類することができます今3つのフィールド持つことが知られている
ここに画像を挿入説明
ここに画像を挿入説明
3によって順序は、フィールドが4それによって、3に従って、その後、順番を並べ替えることがあることを示し?そのテーブルには3つだけのフィールドというエラーに置き換え3 4、
ここに画像を挿入説明
ここに画像を挿入説明
入ってくる1ので、?id=0' union select 1,2,3--+エコーを見てみましょう、
:良いブログすることができます疑問があり、理解していないここにselect1,2,3 HTTPS://ブログ.csdn.net / weixin_44840696 /物品/詳細/
ここに画像を挿入説明
89166154は、 図2に見ることができる通路3との間の通路が注入され、データベースフロントエンド
ここに画像を挿入説明
任意のデータベースを照会しないデジタルに2,3、単にエコー、それが)(2,3-バージョン()とユーザによって置換される
ここに画像を挿入説明
結果は、ユーザ名とバージョンのデータベースエコー
ここに画像を挿入説明
電流を表示する、ユーザー()変更データベース()データベース
ここに画像を挿入説明
現在のデータベースのセキュリティがあると
ここに画像を挿入説明
データベースの名前は、テーブル名は遠くの後ろにも、知っていますか?私はすぐに越えるので、次は、すべて小文字で文字のスペルテーブルを確認するには、この時間は、とにかく、大文字と小文字を区別しないが、覚えやすい小文字、テーブルの3の内側に前述のデータベースINFORMATION_SCHEMAを使用される
ここに画像を挿入説明
クエリにデータベースのセキュリティをデータテーブル

?id=0' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() --+

ここに画像を挿入説明
ここに画像を挿入説明
それを確認し、これらのテーブルがあり、実際
ここに画像を挿入説明
のデータ・テーブル・ノウハウの名前、フィールド名は遠くの後ろになりますか?例えば、データテーブルのリファラーを取ります

?id=0' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='referers' --+

ここに画像を挿入説明
ここに画像を挿入説明
OK、確認してください
ここに画像を挿入説明
フィールドは、フィールドの値ははるかに遅れる場合、名前を知っていますか?ユーザーの場合、表は、主キーIDに加えて、ユーザ名(ユーザ名)とパスワード(パスワード)を2つのフィールドがあります
ここに画像を挿入説明
(ユーザーが引用符を必要としない場合)直接フィールドの値をチェックします

?id=0' union select 1,group_concat(username,password),3 from users --+

ここに画像を挿入説明
クエリの成功は
ここに画像を挿入説明
確かに他のジェスチャ、SQLインジェクションの脆弱性を最初に使用するが、それはMozhizhemoweiは、ああ、本当に学習を維持することですので、少し驚きでしたので、多くの情報データベースを見ることができることをここで見ることができますそこに注入され、多くがあり、私は書いていません。三つは何もありませんブログ1つのレコード独自の学習プロセスのSQLインジェクション、そして第二に、3に白のチュートリアルとして、より多くの私のように共有する...、それは江紫です。

公開された25元の記事 ウォンの賞賛3 ビュー591

おすすめ

転載: blog.csdn.net/weixin_45254208/article/details/105046357