一、檔案上傳
概念:(不贅述轉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別名)