[i=s] 本帖最后由 yuri 于 2025-7-31 03:56 编辑 [/i]
一、内容概括
靶场实操和相关知识归纳。
二、重要知识和细节
-
Less-01:前端校验文件——通过禁用JS代码绕过;
-
Less-02:开始后端校验文件——通过先上传.htaccess文件修改上传目录文件的识别功能,把.php识别成.png;
-
Less-03:通用类型检测,校验的是请求头里面识别的类型——通过抓包然后修改请求头让自己上传的文件符合校验;
-
Less-04:上传的文件会转换为字节流,把文件的一部分字节信息和文件识别的类型放到请求头里面校验——通过抓包然后修改请求头让自己上传的文件符合校验;
-
Less-05:黑名单校验,文件上传之后,会把黑名单里面的后缀名转换为空——通过后缀名双写绕过;
-
Less-06:黑名单校验,文件上传之后,会把黑名单里面的后缀名转换为空——通过把后缀名改为大小写绕过校验(针对于windows环境大小写不敏感);
-
Less-07:请求为GET类型,后端校验代码不是PHP,且后端的PHP版本<5.3.4——通过在修改请求头文件类型为.php%00.png,校验的时候是.png类型,访问的时候截断%00及其后面的内容变为.php;
-
Less-08:请求为POST类型,后端校验代码不是PHP,且后端的PHP版本<5.3.4——通过在修改请求头文件类型为.php\x00.png,校验的时候是.png类型,访问的时候截断%00及其后面的内容变为.php,\x00为%00的Base64解码;
-
Less-09:不允许.php文件上传——通过后缀平替修改为.phtml .pht .php3 .php4 .php5 .phs;
-
Less-10:代码的校验逻辑为 文件上传到后端-->校验-->符合就留下,不符合就删除——通过条件竞争,在上传到后端且未被校验之前,访问文件,文件内容为创建新文件。需要通过抓包工具不断上传,且不断访问,上传和访问的频率一般需要很高;
-
Less-11:上传的文件会经过二次渲染,新的文件的字节流会与旧的文件字节流不同——通过上传下载,在010Editor里面比对,找到未被修改的地方,插入想要插入的代码内容;
-
Less-12:黑名单校验,且使用move_uploaded_file()函数把符合的文件移动到上传的文件目录——把文件名改为.php/. ,这样,文件类型.php/. 不在黑名单里面可以通过校验,且在移动的时候会把后面的/.去掉变成.php类型。
附加内容--图片木马制作
①通过010Editor工具写进去;
②在cmd中,使用命令copy 1.jpg/b+2.php 3.jpg。
三、实操
禁用JS:

写.htaccess文件:
