代碼審計之突破路徑限制刪除文件

0x01 前言:
最近比較流行審計代碼
0x02 開頭:
在刪除某套系統的時候,發現可控參數進入了unlink函數,給我的第一感覺就是任意文件刪除

[p=40, null, left][color=rgb(0, 0, 0)][font=微軟雅黑, tahoma, arial]public function delupload(){
[Math Processing Error]_GET[‘action’]) ? [Math Processing Error]filename=isset([Math Processing Error]_GET[‘filename’] : null;
[Math Processing Error]filename);
[Math Processing Error]filename,’.’);
[Math Processing Error]filename,’/’);
if([Math Processing Error]filename)){
[Math Processing Error]filename;
[Math Processing Error]filename);
[Math Processing Error]size[‘mime’]);
if([Math Processing Error]filename);
exit;
}[/font][/color][/p][p=40, null, left][color=rgb(0, 0, 0)][font=微軟雅黑, tahoma, arial]

複製代碼

0x03 分析:
調用了unlink函數來刪除文件
unlink([Math Processing Error]filename
[Math Processing Error]_GET[‘filename’]) ? $_GET[‘filename’] : null;
則是從GET進入的,可控

不過他這裏進行了過濾,防止刪除其他目錄的文件
把../過濾掉了,防止跳轉目錄
清空了兩邊的 . 和 /
[Math Processing Error]filename);
[Math Processing Error]filename,’.’);
[Math Processing Error]filename,’/’);
0x04 突破:

發佈了46 篇原創文章 · 獲贊 15 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章