文件上传upload

f12在前端js判断函数中加上可以上传php文件   


在本地写一个一句话木马后文件名改为jpg之类的,直接上传,抓包将文件名后最改为.php脚本后缀


$_FILES["file"]["name"] – 被上传文件的名称

$_FILES["file"]["type"] – 被上传文件的类型

$_FILES["file"]["size"] – 被上传文件的大小,以字节计

$_FILES["file"]["tmp_name"] – 存储在服务器的文件的临时副本的名称

$_FILES["file"]["error"] – 由文件上传导致的错误代码

move_uploaded_file(file,newloc) 函数将上传的文件移动到新位置。

参数  描述

file    必需。规定要移动的文件。

newloc  必需。规定文件的新位置。

如果 file 不是合法的上传文件,不会出现任何操作,move_uploaded_file() 将返回 false。

如果 file 是合法的上传文件,但出于某些原因无法移动,不会出现任何操作,move_uploaded_file() 将返回 false,此外还会发出一条警告。


文件名后缀大小写混合绕过。.php改成.phP然后上传即可。感觉和XSS的一些过滤绕过非常相似。


删除一次php的,双写文件名绕过,文件名改成xx.pphphp


利用Windows系统的文件名特性,比如文件名最后增加点和空格,写成.php.,上传后保存在Windows系统上的文件名最后的一个.会被去掉,实际上保存的文件名就是.php

上传.php::$DATA绕过。如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名.且保持"::$DATA"之前的文件名。


上传路径名%00截断绕过,上传的文件名写成xx.jpg, save_path改成../upload/xx.php%00,最后保存下来的文件就是11.php;或抓包修改hex值为00进行截断。


文件头检查,添加GIF图片的文件头GIF89a,绕过GIF图片检查。

图片马的制作

copynormal.jpg /b + shell.php /a webshell.jpg


先上传一个.htaccess内容如下的文件:

<FilesMatch ".jpg">

SetHandler application/x-httpd-php

</FilesMatch>

这样所有文件都会解析为php,然后再上传图片马,就可以解析


条件竞争。可以正常上传php文件,抓包后放入intruder模块中选择发送多次,然后在浏览器中访问,若程序对文件名改名,直接访问原文件名

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容