タイプインジェクションとコミットインジェクションのSQLインジェクションチュートリアル
パラメータの種類
ここで説明するパラメータは、ソースコードにインジェクションが存在する場所です。
パラメータの種類には、数値、文字、search、jsonなどがあります。
SQL文の干渉記号のうち、以下のものがあります。', ", %, ), }, などです。フィルタリングでは、まずこれらの記号を閉じることを検討してからインジェクションテストを実行します。
例えば、phpのコード。
$name = $_GET['x']
$sql = "select * from user where name='$name'";
ご要望に応じて
http://www.xxx.com/x.php?id=xxx and 1=1
Return sql statement.
select * from user where name='xxx and 1=1'
Filter by.
http://www.xxx.com/x.php?id='xxx and '1'='1
多くのサイトには検索機能があり、その検索ボックスには、% を注入する際に閉じる必要がある注入口がある場合があります。
sqlで検索します。
select *from user where name like '%parameters%';
明示的なリクエスト方法
リクエストメソッドとは GET、POST、COOKIE、REQUEST、HTTPヘッダなどです。
GETリクエスト: urlを使った直接のリクエスト
POSTリクエスト:リクエストの本文を介したリクエスト
COOKIE:クッキーはリクエストヘッダの一部であり、サイトによってはクッキーを通じてリクエストされたデータを注入することができる
REQUEST:GETリクエスト、POSTリクエストのいずれか
HTTPヘッダ。HTTPリクエストヘッダーフィールドのパラメータ値の中には、サーバー上のデータベースの一部の情報にアクセスできるものがあり、インジェクションされる可能性があります
1. GET リクエスト
sqlilabs レベル 5.
パラメータに何かあることを示す、submitへの応答がない、ソースコードを確認する
一重引用符で囲まれたパラメータが見つかりましたので、閉じる必要があります。
コミットに対する応答がなく、無応答のインジェクションであることを示すので、とりあえずそれをカバーし、無応答のインジェクションメソッドをフォローアップします。
sqlilabs レベル6
レベル6はまだ見返りがない
ソースコードを見る
二重引用符で囲まれたパラメータが見つかり、二重引用符でフィルタリングする場合
2. POSTリクエスト
sqlilabs レベル11
パケットを手にして、試してみてください。
がポストリクエストメソッドである場合は、 インジェクション用のポストリクエストメソッドを直接作成します。
3. COOKIEインジェクション
sqlilabs レベル20
逃走、Cookieインジェクションの試み。
テストはうまくいく。
4. httpヘッダーインジェクション
sqlilab レベル18
ipとUser Agentの表示、ソースコードを解析すると、unameとpasswdのパラメータはここで処理されますが、制御するグローバル変数として、ipとuser-agentが新たに用意されています。
User-Agent の内容を xxx,send package に変更します。
User-Agentの修正によるエラー報告インジェクション。
概要
この記事は、SQLインジェクションチュートリアルの種類と提出注入を紹介し、より関連するSQLインジェクションの種類と提出内容は、スクリプトハウスの前の記事を検索するか、次の関連記事を閲覧し続けることを願って、あなたは将来的にもっとスクリプトハウスをサポートしています!.
関連
-
Navicat 15アクティベーションチュートリアル
-
ツリー構造データベースのテーブルのスキーマ設計のための2つのオプション
-
DeepinV20 Mariadbのクイックインストールを詳しくご紹介します。
-
SQL実行エンジンを自作する方法
-
Navicat sqlファイルのインポートとエクスポートを素早く行う方法
-
Navicat for Mac システムチュートリアルのインストールと使用方法
-
Navicat Premium 15データベース接続フラッシュバックの問題を解決する
-
外部キーの関連付けを行う SQL 文の完全な例
-
Navicat Premiumを使用して、データベースのテーブル構造情報をExcelにエクスポートする方法
-
SQLインジェクションについて詳しく話すいくつかの散在する知識のポイント
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
JetBrains DataGripのインストールと使用に関する詳細なチュートリアル
-
Navicat for SQLite インストールチュートリアル(インストールキット付き
-
Hbaseカラムナーストレージ入門チュートリアル
-
5分でわかる!データベースのデッドロックのシナリオと解決策
-
データベースキャッシュの最終的な整合性に関する4つのオプション
-
NavicatでMySqlデータベースへの接続が遅い問題
-
CentOS 8.2上のCouchDB 3.3データベースを展開する方法
-
navicat トランザクションの自動コミット問題について
-
データベースクエリタイムアウト最適化問題の実践記録
-
SQLにおけるwhereとhavingの違いについて解説します