Burpsuite Sqlmap Nmap入門總結


burpsuite sqlmap nmap 簡介

sqlmap基礎

五種獨特sql注入技術:

  • 基於布爾類型的盲注
  • 基於時間的盲注
  • 基於報錯注入
  • 聯合查詢注入
  • 堆查詢注入

sqlmap入門

  • 1.判斷是否存在注入 sqlmap -u "http://.....?id=1" #在后面的參數大於兩個時,需要加單引號,一個參數也可以加。
  • 2.判斷文本中的請求是否存在注入 該文本的內容通常為web數據包 sqlmap -r xxx.txt #-r參數一般存在cookie注入時使用。
  • 3.查詢當前用戶下所有的數據庫 sqlmap -u "http://...?id=1" --dbs
  • 4.獲取數據庫的表名 sqlmap -u "http://....?id=1" -D dkeye --tables
  • 5.獲取表中的字段名 sqlmap -u "http://...?id=1" -D dkeye -T user_info --columns
  • 6.獲取字段內容 sqlmap -u "http://...?id=1" -D dkeye -T user_info -C username,password --dump
  • 7.獲取數據庫的所有用戶 在當前用戶有權限讀取包含所有用戶的表的權限時,使用該命令可以列出所有的管理用戶 sqlmap -u "http://....?id=1" --users
  • 8.獲取數據庫用戶的密碼 如果當前用戶有讀取包含用戶密碼的權限,sqlmap會先列舉出用戶,然后列出hash,並嘗試破解。 sqlmap -u "http://...?id=1" --passwords
  • 9.獲取當前網站數據庫名稱 sqlmap -u "http://...?id=1" --current-db
  • 10.獲取當前網站的用戶名稱 sqlmap -u "http://...?id=1" --current-user

sqlmap進階:參數詳解

  • 1.--level 5: 探測等級 可不加level,默認是1,其中5級包含的payload最多,會自動破解出cookie、XFF等頭部注入。當然,level 5的運行速度也比較慢。
  • 2.--is-dba: 當前用戶是否為管理員權限 sqlmap -u "http://...?id=1" --is-dba #返回true or false
  • 3.--roles:列出數據庫管理員角色
  • 4.--referer:http referer頭 sqlmap可以在請求中偽造http中的referer,當--referer http://www.baidu.com
  • 5.--sql-shell :運行自定義sql語句 類似手工注入,啟動一個交互式窗口,可以在其中運行自定義的sql語句。如:>select * from users limit 0.1
  • 6.--os-cmd, -os-shell: 運行任意操作系統命令 這個參數不是很懂嘞! 用處:--os-shell參數可以模擬一個真實的shell,輸入想要執行的命令。當不能執行多語句時(比如php或asp的后端數據庫為mysql),仍然可以使用INTO OUTFILE寫進可寫目錄,創建一個web后門。--os-shell支持asp、asp.net、jsp、php四種語言(要想執行改參數,需要管理員權限,也就時--is-dba的值要為true。
  • 7.--file-read:從數據庫服務器中讀取文件 例子:sqlmap -u "http://...?name=luther" --file-read "C:/example.exe" -v 1 #-v 1不知道是什么意思呢。
  • 8.--file-write --file-dest :上傳文件到數據庫服務器中 例子:sqlmap -u "http://.../?id=1" --file-write "/software/nec.exe.packed" --file-dest "C:/WINDOWS/Temp/nc.exe" -v 1

sqlmap自帶繞過腳本tamper講解

sqlmap在默認的情況下除了使用CHAR()函數防止出現單引號,沒有對注入的數據進行修改,讀者可以使用--tamper參數對數據做修改來繞過waf等設備,其中大部分腳本主要用正則模塊替換攻擊載荷字符編碼的方式嘗試繞過waf的檢測規則。
命令格式如下:sqlmap xxx --tamper 模塊名
目前官方提供53個繞過腳本,靈活的運用這些模塊是繞過企業waf的關鍵。
還需學習繞過腳本的編寫與修改。
  • --identify-waf #對一些網站是否有安全防護(waf/ids/ips)進行試探。
下面介紹一些常用的tamper腳本:
  • apostrophemask.py #將引號替換為utf8,用於過濾單引號
  • base64encode.py #替換為base64編碼
  • multiplespaces.py #圍繞sql關鍵字添加多個空格
  • space2plus.py #用+號替換空格
  • nonrecursivereplacement.py #作為雙重查詢語句,用雙重語句替代預定義的sql關鍵字(適用於非常弱的自定義過濾器,例如將select替換為空
  • space2randomblank.py #將空格替換為其他字符
  • unionalltounion.py #將union all select 替換為union select
  • securesphere.py #追加特制的字符串
  • space2hash.py #將空格替換為#好,並添加一個隨機字符串和換行符。
  • space2mssqlblank.py (mssql) #將空格替換為其他空符號
  • space2mssqlhash.py #將空格替換為#號,並添加一個換行符
  • between.py #用NOT BETWEEN 0 AND替換大於號(>),用BETWEEN AND替換等號(=)
  • percentage.py #asp允許在每個字符前面添加一個%號
  • sp_password.py #從DBMS日志的自動模糊處理的有效載荷中追加sp_password
  • charencode.py #對給定的payload全部字符使用url編碼(不處理已經編碼的字符)
  • randomcase.py #隨機大小寫
  • charunicodeencode.py #字符串unicode編碼
  • space2comment.py #將空格替換為/**/
  • equaltolike.py #將等號替換為like
  • greatest.py #繞過對">"的過濾,用GREATEST替換大於號
  • ifnull2ifisnull.py #繞過對IFNULL的過濾,替換類似IFNULL(A,B)為IF(ISNULL(A),B,A).
  • modsecurityversioned.py #過濾空格,使用mssql內聯注釋的方式進行注入
  • space2mysqlblank.py #將空格替換為其他空白符號。
  • modsecurityzeroversioned.py #使用mysql內聯注釋的方式(/!00000/)進行注入
  • space2mysqldash.py #將空格替換為--,並添加一個換行符。
  • bluecoat.py #在sql語句之后用有效的隨機空白字符替換空格符,隨后用LIKE替換等於號。
  • wersiondkeywords.py #注釋繞過
  • halfverisonedmorekeywords.py #當數據庫為mysql時繞過防火牆,在每個關鍵字之前添加mysql版本注釋
  • space2morehash.py #將空格替換為#號,並添加一個隨機字符串和換行符
  • apostrophenullencode.py #用非法雙字節unicode字符替換單引號
  • appendnullbyte.py #在有效負荷的結束位置加載零字節字符編碼
  • chardoubleencode.py #對給定的payload全部字符使用雙重url編碼(不處理已經編碼的字符)
  • unmagicquotes.py #用一個多字節組合(%bf%27)和末尾通用注釋一起替換空格。
  • randomcomments.py #用/**/分割sql關鍵字 掌握tamper的編寫規則,這樣能在各種實戰中更加運用自如

burpsuite 詳解

專業版和免費版主要區別有以下三點:

burp scanner
工作空間的保存和恢復
擴展工具:如target analyzer、content discovery 和task scheduler

burpsuite是java語言編寫的,需要運行在jre中

  • 配置java環境變量 在系統變量處: 新建:JAVA_HOME 變量值為:jdk的安裝的路徑 在path變量的最前面,加上%JAVA_HOME%\bin; 新建CLASSPATH變量:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

burpsuite入門

1.proxy

  • raw #主要顯示web請求的raw格式,以純文本的形式顯示數據包。可以通過手動修改這些信息,對服務器進行滲透測試
  • params #主要顯示客戶端請求的參數信息,包括get或者post請求的參數、cookie參數。可以通過修改這些請求完成對服務器的滲透測試
  • Headers #顯示的時數據包中的頭信息,以名稱、值的形式顯示數據包。
  • Hex #對應的時raw中的信息的二進制內容,可以通過hex編輯器對請求的內容進行修改,在進行00截斷時非常好用。

2.spider

spider的蜘蛛爬行功能可以幫助我們了解系統的結構,其中spider爬取的內容將在target中展示。

3.Decoder

Decoder的功能比較簡單,它時burp中自帶的編碼解碼及散列轉換的工具,能對原始數據進行各種編碼格式和散列的轉換。 對編碼解碼選項而言,目前支持url、html、base64、ascii、十六進制、八進制、二進制和GZIP共八種格式轉換。hash散列支持sha、sha-224、sha-256、sha-384、sha-512、md2、md5格式的轉換。更重要的是,可以對同一數據在decoder進行多次編碼、解碼的轉換。

burpsuite進階

1.scanner

burp scanner主要是用於自動檢測web系統的各種漏洞。 在掃描結果中選中需要進行分析的部分,將其發送到repeater模塊中進行模擬提交分析和驗證。 當scanner掃描完成后,可以右擊burp target站點地圖選項下的鏈接,依次選擇issues —> report issues 選項,然后導出漏洞報告。 burp scanner主要有主動掃描和被動掃描兩種掃描方式。

burpsuite會向應用發送新的請求並通過payload驗證漏洞。這種模式下的操作會產生大量的請求和應答數據,直接影響服務端性能,通常用於非生產環境。主動掃描適用於以下兩類漏洞。
* 客戶端漏洞:xss、http頭注入、操作重定向...
* 服務端漏洞:sql注入、命令行注入、文件遍歷...

被動掃描:
當使用被動掃描模式是,burp不會重新發送新的請求,只是對已經存在的請求和應答進行分析,對服務端的檢測來說,這比較安全,通常用於生產環境的檢測。
一般來說,下列漏洞在被動模式中容易被檢測出來。
* 提交的密碼為未加密的明文
* 不安全的cookie的屬性,例如缺少httponly和安全標志
* cookie的范圍缺失
* 跨域腳本包含和站點引用泄漏。表單值自動填充,尤其是密碼。
* ssl保護的內容緩存。
* 目錄列表
* 提交密碼后應答延遲
* session令牌的不安全傳輸
* 敏感信息泄漏,例如內部ip地址、電子郵件地址、堆棧跟蹤等信息泄漏。
I不安全的viewstate的配置。
* 錯誤或不規范的content-type指令。
  • 優點:使用被動掃描模式驗證是否存在漏洞,以減少測試的風險。

2.Intruder

Intruter是一個定制的高度可配置的工具,可以對web應用程序進行自動化攻擊。如通過標識符枚舉用戶名、id和賬戶密碼、模糊測試、sql注入、跨站、目錄遍歷等。 burpsuite Intruder通常被用於以下場景:

  • 標識符枚舉。web應用程序通常使用標識符引用用戶、賬戶、資產等數據信息。例如,用戶名、文件id和賬戶號碼。
  • 提取有用的數據。在某些場景下,不是簡單地識別有效標識符,而是通過簡單標識符提取其他數據。例如,通過用戶的個人空間id獲取所有用戶在其個人空間的名字和年齡。
  • 模糊測試。很多輸入型的漏洞(如sql注入、跨站點腳本和文件路徑遍歷)可以通過請求參數提交各種測試字符串,並分析錯誤消息和其它異常情況,來對應用程序進行檢測。受限於應用程序大小和復雜性,手動執行這個測試是一個耗時且繁瑣的的過程,因此可以設置一個payload,通過burpsuite intruder自動化對web應用程序來進行模糊測試。
  • payload有四種模式:
* sniper模式使用單一的payload組。它會針對每個位置設置payload。這種攻擊設用於對常見漏洞中的請求參數單獨進行fuzzing測試的情景。攻擊中的請求總數應該是position數量和payload數量的乘積。
* Battering ram模式使用單一的payload組。它會重復payload並一次性把所有相同的payload放入指定的位置中。這種攻擊適用於需要在請求中把相同的輸入放到多個位置的情景。請求的總數是payload組中payload的總數。
* Pitchfork模式使用多個payload組。攻擊會同步迭代所有的payload組,把payload放入每個定義的位置中。這種攻擊類型非常適合在不同位置中需要插入不同但相似輸入的情況。請求的數量應該是最小的payload組中的payload數量。
* Cluster bomb模式會使用多個payload組,每個定義的位置中有不同的payload組。攻擊會迭代每個payload組,每種payload組合都會測試一遍。這種攻擊適用於在位置中需要不同且不想關或者未知輸入攻擊的情景。攻擊請求的總數是各payload組中payload數量的乘積。

對Status或Length的返回值進行排序,查看是否有不同之處。如果有,查看返回包是否顯示為登錄成功。

3.Repeater

burp repeater是一個手動修改、補發個別http請求,並分析它們的響應的工具。它最大的用途就是能和burpsuite工具結合起來使用。可以將目標站點地圖、burp proxy瀏覽記錄,burp Intruder的攻擊結果,發送到repeater上,並手動調整這個請求。來對漏洞的探測或攻擊進行微調。

  • Repeater分析選項有4種:raw params headers hex
raw:顯示純文本格式的消息。
params:對於包含參數(url查詢字符串、cookie頭或者消息體)的請求。params選項會把這些參數顯示為名字/值的格式,這樣就可以簡單的對它們進行查看和修改。
headers:將名字/值的格式顯示http的消息頭,並且以原始格式顯示消息體。
hex:允許直接編輯由原始二進制數據組成的消息。

4.Comparer

burp Comparer在burpsuite中主要提供一個可視化的差異比對功能,來比對分析兩次數據之間的區別。(在結果處,右擊可導至該Comparer模塊)

  • 使用到的場合:
枚舉用戶名的過程中,對比分析登陸成功失敗時,服務端反饋結果的區別。
使用Intruder進行攻擊時,對於不同的服務的響應,可以很快分析處兩次響應的區別在哪。
進行sql注入的盲注測試時,比較兩次響應消息的差異,判斷響應結果於注入條件的關聯關系。
  • Comparer數據加載的常用方式如下所示: 從其他burp工具通過上下文菜單轉發過來。 直接粘貼。 從文件中加載。

5.Sequencer

burp Sequencer是一種用於分析數據樣本隨機性質量的工具。

  • 可以用它測試應用程序的會話令牌(session token)、密碼重置令牌是否可預測等場景,通過Sequencer是數據樣本分析,能很好地降低這些關鍵數據被偽造的風險。
  • burp Sequencer主要由信息截取(live capture)、手動加載(Manual Load)和選項分析(Analysis Options)三個模塊組成。 在截取信息后,單擊Load按鈕加載信息,然后單擊"Analyze now"按鈕進行分析。

nmap 詳解

nmap(network mapper,網絡映射器)是一款開放源代碼的網絡探測和安全審核工具。它被設計用來快速掃描大型網絡,包括主機探測與發現、開放的端口情況、操作系統與應用服務指紋識別、waf識別及常見安全漏洞。它的圖形化界面是Zenmap,分布式框架為DNmap。

nmap 入門

1.掃描參數

  • nmap --help #查看幫助
  • -iL:從文件中導入目標主機或目標網段
  • -iR: 隨機選擇目標主機 ... 掃描參數太多了,暫時用不到這么多。

2.常用方法

  • 掃描多個目標地址:nmap 192.168.x.102 192.168.x.105
  • 掃描一個范圍內的目標地址:nmap 192.168.0.100-110
  • 掃描目標地址所在的某個網段:nmap 192.168.0.100/24
  • 掃描主機列表targets。txt中所有目標地址 nmap -iL C:\users\Aerfa...\targets.txt
  • 掃描除某一目標地址之外的所有目標地址:nmap 192.168.0.100/24 --exclude 192.168.0.105
  • -excludefile #掃描除某一文件中的目標地址之外的目標地址
  • -p 21,22,80 #使用-p參數指定端口號,將大大提升掃描速度。
  • 對目標地址進行路由跟蹤:nmap --traceroute 192.168.0.105
  • 掃描目標地址所在c段的在線狀況:nmap -sP 192.168.0.100/24
  • -O #對目標地址的操作系統指紋識別。
  • 探測目標地址開放端口對應的服務版本:nmap -sV 192.168.0.105
  • 探測防火牆狀態:nmap -sF -T4 192.168.0.105

nmap進階

nmap的腳本默存在/xx/nmap/scripts 文件夾中
nmap腳本主要分以下幾類:
auth #負責處理鑒權證書(繞過鑒權)的腳本。
Broadcast #在局域網內探測更多服務的開啟情況,如DHCP/DNS/SQLSERVER等
Brute #針對常見的應用提供暴力破解方式,如http/SMTP等。
Default #針對常見-sC或-A選項掃描時默認腳本,提供基本的腳本掃描
Discovery #對網絡進行更多信息的搜集,如SMB枚舉、SNMP查詢等。
Dos #用於拒絕服務攻擊
Exploit #利用已知的漏洞入侵系統
External #利用第三方的數據庫或資源。例如,進行whois解析
Fuzzer #模糊測試腳本,發送異常的包到目標機,探測潛在漏洞。
Intrusive #入侵性腳本,此類腳本可能引發對方IDS/IPS的記錄或屏蔽
Malware #探測目標機是否感染了並對、開啟后門等信息。
Safe #此類與Intrusive腳本相反,屬於安全性腳本。
version #負責增強服務於版本掃描功能的腳本
vuln #負責檢查目標機是否有常見漏洞,如MS08-067

常用腳本

  • 用法;可以根據--script=類別進行掃描,常用參數如下所示:
-sC/--script=default #使用默認腳本進行掃描
--script=<Lua scripts> #使用某個腳本進行掃描
--script-updatedb #更新腳本
--script-trace #如果設置該參數,則顯示腳本執行過程中發送於接受的數據。
-script-args-file=filename #使用文件為腳本提供參數
--script-args=key1=value1,key2=value2.... #該參數用於傳遞腳本里的參數,key1是參數名,該參數對應value1這個值。如果有更多參數,使用逗號連接。
例子:
鑒權掃描:nmap --script=auth 192.168.0.105
暴力破解:nmap --script-brute 192.168.0.105
掃描常見的漏洞:nmap --script=vuln 192.168.0.105
應用服務掃描:nmap --script=realvnc-auth-bypass 192.168.0.105 #nmap具備很多常見應用掃描腳本,例如vnc服務、mysql服務、telnet服務、rsync服務
探測局域網內更多服務開啟情況:nmap -n -p 445 --script=broadcast 192.168.0.105
whois解析:nmap --script external baidu.com

更多掃描腳本的使用方法參見:https://nmap.org/nsedoc/categories.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM