Burpsuite Sqlmap Nmap入門總結

burpsuite sqlmap nmap 簡介

sqlmap基礎

五種獨特sql注入技術:

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

    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-userhtml

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)進行試探。java

    下面介紹一些經常使用的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的編寫規則,這樣能在各類實戰中更加運用自如mysql

burpsuite 詳解

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

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

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

  • 配置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截斷時很是好用。shell

    2.spider

    spider的蜘蛛爬行功能能夠幫助咱們瞭解系統的結構,其中spider爬取的內容將在target中展現。數據庫

    3.Decoder

    Decoder的功能比較簡單,它時burp中自帶的編碼解碼及散列轉換的工具,能對原始數據進行各類編碼格式和散列的轉換。
    對編碼解碼選項而言,目前支持url、html、base6四、ascii、十六進制、八進制、二進制和GZIP共八種格式轉換。hash散列支持sha、sha-22四、sha-25六、sha-38四、sha-5十二、md二、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.

相關文章
相關標籤/搜索