4.26檔案上傳學習

路Sang發表於2024-04-27

一、檔案上傳

概念:(不贅述轉web安全檔案上傳)[[9.6-9.7基礎和過濾方式]]
前置知識:(除解析漏洞)後門程式碼需要以特定格式字尾解析,不能以圖片字尾解析;

知識點

1、檔案上傳-前端驗證

直接修改前端js程式碼,檔案上傳格式;

2、黑白名單

3、user.ini用處(檔案包含

  • 上傳.uer.ini檔案,apache中同理配置檔案.htaccess
    修改檔案為

    auto_prepend_file = 1.jpg 或
    auto_append_file = 1.jpg (區別是一個檔案前一個檔案後)

  • 1.png檔案(?php phpinfo();?)

  • 此時訪問預設首頁index.php檔案(呼叫.user.ini)即可解析到1.png後門檔案;

4、PHP語言特性

詳細點

1、檢測層面:前端、後端
2、檢測內容:檔案頭、完整性、二次渲染

過濾上傳檔案特定內容組合;

<?echo '123';?> (前提開啟配置檔案short_open_tags=on,短標籤)
<?=表示式;?>   如<?=eval($_POST=[x]);?>(不需要開啟引數設定)
<% echo '123';%> (前提開啟asp_tags=on)
<script language="php">echo '1';</script> (不需要修改開關)推薦2,4

內容繞過遮蔽[],轉換成{}即可;

<?=eval($_POST=[x]);?> 改為<?=eval($_POST={x});?>

內容過濾括號(),反引號名執行;

<?=`cat ../fl*`?>

內容過濾反引號,包含日誌檔案,日誌檔案頭UA寫後門程式碼,尋找對應中介軟體的日誌檔案路徑;
之後構造任意請求包含後門,後門將再日誌檔案中觸發;

檔案頭過濾,常用檔案頭;

JPG : FF D8 FF E0 00 10 4A 46 49 46
GIF : 47 49 46 38 39 61 (GIF89a)
PNG: 89 50 4E 47

3、檢測字尾:黑名單、白名單、MIME檢測等

MIME解析:多用網際網路郵件擴充套件型別,指某擴充名檔案用一種程式開啟,如聲音audio,圖片image

後端程式碼限制,抓包修改Content-Type驗證格式;
其他非php的網站同理,上傳其能解析的字尾後門;

大小寫:修改字尾大小寫如phP;

4、繞過技巧:多字尾解析、截斷、中介軟體特性(解析)、條件競爭等

多字尾解析: 檔案字尾修改如php5、phtml、phtm、php2、php3、phps(php別名)

相關文章