主に深遠な物事ので、次のlevixxxx書き込みを見るために、そして私がすることを決めたので、その後、容易ではない理解するために、低を感じ、独自のポイントを見てください。。。
まず第一に、CRUDを理解します
図書館の表では、それを説明する必要はありません。
ライブラリテーブル(列1、行2 ...)の値(値1、値2)に1.insert
insert into 1.news values(3,’test’,’test’,’3’)
- 文字列は単一引用符を使用することを覚えて、値ではありません
。2.select行1、データベーステーブル(カラム1、カラム2 ...)からカラム2 - ("*"は、すべての列を表します)
- リミット- 構文:リミット(添字を開始、資料番号)は、一般的に文の終わりを次の
- データベーステーブルから選択* - クエリのすべて
- -ライブラリーのテーブルからID、タイトルを選択クエリ「ID」と「タイトル」欄
- ID = 3のライブラリテーブルから3.delete 「ID = 3」という列を削除
4.updateライブラリ。表1カラム=組の値、列値条件2 =
TYPE = '2' ID = 2 - 2 "タイプ"で"= 2のID"
最も基本的なクエリ
select * from 1.news where username='admin' and password='test'
select * from 1.news where username=' ' or ' '=' ' and password='test'
select * from 1.news where username= ' ' or 1=1#' and password='test'
- 「 - と#がコメント文字、バックの中身アウトコメントです。」
- 長い閉じ括弧にロジックを通る線、注意を払うなどとして、単一引用符は現在、有料の注意を閉じた - ソースコードが提供さ - に閉じています
- マスターパスワードのA 'または' '=' A
- それ以外のデータは、データに結合させることができるれませんでした接着剤バックデータ:労働組合の役割は、(後述する、比較的揮発性の巧妙な使用)
- (さらに後述)によって順:決定するのに使用されるカラム
SQLインジェクションの主
SQLインジェクションとは何ですか。
利用者から提出されたパラメータは、このようにあなたには、いくつかを取得したいデータの意味を変え、SQLデータベースクエリと攻撃にいくつかの文字が含まれています
- などリファラ、クッキー、ボディ、URL、などどこにでも可能なSQLインジェクション、
[外国チェーンの絵が失敗したダンプ、発信局は、直接(IMG-qqDWDcKd-1585889714798)をアップロードダウン画像を保存することが推奨され、セキュリティチェーン機構を有していてもよい( / コモン射出ツール.PNG)]
どのようなタイプのSQLインジェクション(注入方式は、データへのアクセスが分類と同じではありません):
1.ブラインド:真と偽の論理に応じて決定します
- 原理:中国語変換を16進数に:ASCIIコードで、中国語をサポートしていないが、中国の六角機能(MySQLの)を使用して、ASCIIコードデータに変換し、次いで、SUBSTR関数を取った文字のサイズを比較してASCIIコードに変換する二分法のサイズを決定しますその後、変換
2.union注入:直接ページを表示するには、ユニオンクエリによって、例えば:
union select username from admin
3.エラー表示インジェクション:データベース・エラー・メッセージの使用のようなエラーメッセージやエラーメッセージを観察、注入した、プラス「「」エラーメッセージが表示される - (、とにかく、非常に高いレベルを注入する必要がある私が...することはできません)
4.ディレイ注入:応答時間は、スリープ機能・ページによって決定されます
SQLインジェクションは行うことができます。
1.取得し(CRUD)データベースファイルには、
2.ファイルを読み書きします
オペレーティング・システムのコマンドを実行3.
アクセスがあるかどうかを確認する方法:
デジタル、キャラクター、検索タイプ
非常に重要な表には、あなたが心に留めておく必要があります。INFORMATION_SCHEMA.TABLESを
機能存在は、テーブルが存在するかどうか決定されます。
exists(select 1 form information_schema.tables)
1.数値:
-
真と偽、偽真であるか偽のは本当です
sql=“select * from news where id=1 and 1=1” sql=”select * from news where id=1 order by 1“
-
裁判官によるため、その後どのように多くの列(少数で上記の使用量を決定するために、ディスプレイが存在する場合、それはこの列が存在しないことを示していない、いくつかの列の最初のものである)と労働組合では、いくつかのプログラマは、それ自体で順序を記述しますxxxxは状況によって順序によって順序をXXXXXXなり、それが構文エラーを表示するというように、その実際の被写体まで、あらゆるます。
-
最初のデータいくつかのテーブルのクエリが示すので、フロントべきネガ:? IDなど= 1,1 = 2
-
以下の労働組合の一部の使用
2.文字:
sql=“select * from news where type=‘ xxx ’ “
sql=”select * from news where type=‘1’ and ‘1’=‘1’ ”
文法を構築する必要性の前と後に加えて、他のデジタルタイプと同じです。(過剰#で」コメントすることができる)は、
メソッドの数又は文字によって決定される:第一のタイプは、デジタルに従って構成されています
擬似静的注入:
500 404が、与えられていない、エラーメッセージのSQL
1.html 1後噴射位置方法、同じトークンは、数値や文字、スーパーSQLインジェクションツールマーキング噴射を決定します
2.例えば、方法はasd111.htmlであることが判明し、この時間はあなたがなど、ID = 111?ID = 111またはasd.asp?asd.phpを構築しようとすることができます
通常の.htmlかどうかを確認する方法を削除する3。
3.検索の種類:
- あなたはそれ以外の場合は関係なく、結果は構造が表示されませんどのように、キーワードのデータを選択する必要がありません
select * from news where title like ‘ %xxxx% ’
- この文字の真ん中に登場見出し、あいまいクエリ
select * from news where title like ‘ xxxx% ’
- 任意の文字で終わる、XXXで始まります
select * from news where title like ‘ %xxxx ’
- XXXを終了する任意の文字、の冒頭に
真ん中がそうすべて表示され、空の%%文字であるため、構文自体、近くに。
それは郵送で提出されているので、あなたが直接#コメントできるようにし、取得する場合は、URLがエンコードされるように、%23#に変換します。
ユニバーサルパスワード:
select * from 1.news where username='admin'or 1=1# and password=''
この非常にシンプルで見ることを学ぶ前に、その上に構築された状況でのルックスは、通常、既知の管理者パスワードを知りません。
-
管理者または '' = 'A
-
管理者または1 = 1#(mysqlの)
-
管理者または1 = 1- - (のSQLServer)
-
管理者「または= 1; - - (SQLServerの) 『;』 文はマルチ表し
前面または状態が続く状態を、それはアカウントのパスワードを知らないかもしれません。 -
キャプチャを用いた通常のスーパーSQLインジェクションのツール、変更要求パケット、。
or 1=1#(mysql)
admin' or 1=1--(sqlserver)
admin' or 1=1;--(sqlserver) # " ; "表示多语句
それは、アカウントのパスワードを知ることができない、状態が続き、前面または状態です。
- キャプチャを用いた通常のスーパーSQLインジェクションのツール、変更要求パケット、。