Labs1、前端限制
可通过burp改包文件后缀
Labs2、在服务端对数据包的MIME进行检查
在burp中修改Content-type为image/jpeg|image/png|image/gif即可上传
Labs3、禁止上传.asp|.aspx|.php|.jsp后缀文件
php类型有许多文件后缀例如
.php|.php5|.php4|.php3|.php2|php1|.phtml|.pHp|.pHp5|.pHp4|.pHp3|.pHp2|pHp1|.pHtml
apache下要修改httpd.conf,添加
Addtype application/x-httpd-php .php .php3 .php5 .phtml
Labs4、此处基本限制了所有php类型的后缀文件
可以利用配合apache的.htaccess文件上传解析漏洞
文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过.htaccess文件,可以实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能IIS平台上不存在该文件,该文件默认开启,启用和关闭在httpd.conf文件中配置。
配置httpd.conf
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride All
此时我们新建一个1.htaccess文件内容为
Addtype application/x-httpd-php .jpg
上传,burp改包为.htaccess上传,此时.jpg文件已经能被php解析,即能用蚁剑连接。
Labs5、禁止上传.php|.php5|.php4|.php3|.php2|php1|.html|.htm|.phtml|.pHp|.pHp5|.pHp4|.pHp3|.pHp2|pHp1|.htaccess等后缀文件
这里未考虑.Php .PhP等文件后缀,本地修改后即可上传
Labs6、禁止上传.php|.php5|.php4|.php3|.php2|php1|.html|.htm|.phtml|.pHp|.pHp5|.pHp4|.pHp3|.pHp2|pHp1|.htaccess等后缀文件
源代码缺少$file_ext = trim($file_ext); //首尾去空,可以在文件名后缀增加空格绕过
Labs7、文件名缺少$file_name = deldot($file_name); //删除文件名末尾的点的限制,在windows下会自动去掉后缀的.
Labs8、源代码缺少$file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA限制,可以在文件名后缀增加::$DATA绕过
Windows下NTFS文件系统的一个特性,即NTFS文件系统的存储数据流的一个属性 DATA 时,就是请求 a.asp 本身的数据,如果a.asp 还包含了其他的数据流,比如 a.asp:lake2.asp,请求 a.asp:lake2.asp::$DATA,则是请求a.asp中的流数据lake2.asp的流数据内容。
到时上传文件名info8.php::$DATA,访问时去除后缀即可
Labs9、只允许上传.jpg|.png|.gif后缀的文件
由$img_path = UPLOAD_PATH.'/'.$file_name;得上传后文件的URL命名规则是由$file_name直接拼接而成
上传文件名为9.php. .即可
Labs10、禁止上传.php|.php5|.php4|.php3|.php2|php1|.html|.htm|.phtml|.pHp|.pHp5|.pHp4|.pHp3|.pHp2|pHp1|.htaccess等后缀文件
$file_name = str_ireplace($deny_ext,"", $file_name);只对文件后缀名进行一次过滤,双写文件名绕过。
……奈何没有时间先放一下