赞
踩
此文章只用于学习和反思巩固文件上传漏洞知识,禁止用于做非法攻击。注意靶场是可以练习的平台,不能随意去尚未授权的网站做渗透测试!!!
第五关是通过利用win系统命名文件后缀名的特性来绕过黑名单达到绕过。像1.php.文件是可以成功上传到服务器的,而且被window系统命名为1.php文件
为什么会有大小写绕过呢,是因为程序员在过滤敏感文件后缀名的时候没有特意过滤大小写,然后window系统特性又是不区分大小写的即1.Php文件也是1.php文件。注意Linux系统是对大小写敏感的,1.Php和1.php是两个不同的文件。
这里我们可以示范一下
先创建一个1.txt文件
然后重命名为1.Txt然后报存会发现文件依旧是1.txt文件。
我们在cmd也可以测试
首先创建一个1.txt文件内容为123
然后在创建1.Txt文件内容为66666
会发现并没有1.Txt文件生成,而66666出现在了1.txt文件中。这也是能看出window系统对大小写不敏感
同样在linux创建一个1.txt文件和1.Txt文件,内容分别为123和456,看看会怎么样(如图所示)
我们先创建一个新的txt文件夹便于实验。
先在1.txt文件写入123,然后再在1.Txt文件写入456,如果Linux对大小写不敏感的话,那么呈现的应该就是只有一个1.txt文件,并且内容是123456
实验发现是创建了两个不同的文件,内容分别是123和456。所以可见linux系统对大小写是敏感的。
$is_upload = false; $msg = null; if (isset($_POST['submit'])) { if (file_exists(UPLOAD_PATH)) { $deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess",".ini"); $file_name = trim($_FILES['upload_file']['name']); $file_name = deldot($file_name);//删除文件名末尾的点 $file_ext = strrchr($file_name, '.'); $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA $file_ext = trim($file_ext); //首尾去空 if (!in_array($file_ext, $deny_ext)) { $temp_file = $_FILES['upload_file']['tmp_name']; $img_path = UPLOAD_PATH.'/'.date("YmdHis").rand(1000,9999).$file_ext; if (move_uploaded_file($temp_file, $img_path)) { $is_upload = true; } else { $msg = '上传出错!'; } } else { $msg = '此文件类型不允许上传!'; } } else { $msg = UPLOAD_PATH . '文件夹不存在,请手工创建!'; } }
细心发现此关同上一关不同的地方就是它没有过滤大小写,刚好我的服务器是win系统,所以可以进行大小写绕过。
抓包然后修改文件后缀名为1.Php。如果是Linux系统为攻击机,那么也可以直接建一个1.Php文件直接上传就行。
把1.php文件改为1.Php文件然后发包,发现文件成功上传。
发现上传成功,如果是上传一句话木马就可以连接菜刀了。
这一关是利用win特性,还有没有过滤大小写来进行绕过。此文章是小白自己为了巩固文件上传漏洞而写的,大佬路过请多指教!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。