Try   HackMD

SQL 注入原理:

假設一個傳到後端資料庫的語句的參數是沒有過濾的,可以透過burpsuite 修改http請求封包,透過單引號閉合,或是註解,或是條件語句來測試注入類型。

1.回顯型

通常比較簡單,搭配 union 的注入方式,或是報錯注入,判斷語句欄位數量,在慢慢注入出所有資料。

2.bool 型回顯,能判斷的方式,只有兩種情況,true 跟 false,

雖說可以手動注入,但很花費時間,通常會交給自動化工具 sqlmap ,通常我會使用 -r 參數, 先用 burpsuite 抓包存成txt 檔,最後交給sqlmap。

3.bool 型不回顯,

這種比較麻煩,可以透過延時注入,來判斷網頁加載時間,通常也是靠sqlmap 來完成,但延時耗費了更多時間。

4.若是mysql某個環境條件允許,又是windows系統。

利用 UNC路徑的特性,OOB帶外注入,可以減少注入時間,但需要自己架一個dnslog 或使用第三方線上工具 ceye.io,也可以使用 burpsuite pro 版的一個類似dnslog 功能。 如果在私有網路,可以使用 php 自帶log php -S 0.0.0.0:80

XXE 漏洞原理

後端php解析XML,XXE 通常會使用DTD的方式來完成。XXE最簡單的應用就是請求某個文件

1.定義想要帶外的目標文件假設 /etc/passwd

可以搭配一些PHP 偽協議轉base64,因為通常很多文件中都有特殊符號,所以最好先轉碼,才不會引起其他錯誤

2.外網放一個惡意OOB 的 DTD ,

目的很簡單,也是請求到黑客的dnslog,但會帶上目標文件的base64。

例如:

base64.hacker.com 或是 hacker.com/base64 兩種都可以

3.DTD成功順利解析,

log 也抓到後,可以decode base64。

4.其他利用思路

若是請求server 上的.php檔,可能會造成源碼洩漏,另外 .confg 之類的很容易獲取sql 密碼,或是其他敏感資訊,如果對方是使用CMS的話,那基本上就很好定位敏感檔案路徑。