注意:仅用于本人学习的笔记记录,禁止进行传播分享,一旦造成严重后果与本人无关!!!
文件上传:把自己电脑上的文件传到服务器上
文件上传是个功能
任意文件上传就是漏洞了
一句话木马<?php eval($_REQUEST[8]?)>
想办法在网站的根目录里面产生一个php文件,里面有一个木马,我们就约等于拿下了目标
一句话木马:webshell => 只有在web环境中能使用
文件上传的核心:
1.能上传
2.能解析(你的代码能够被执行)
不在根目录里面的东西正常情况下你访问不到
解析:该文件被当做后端脚本
1.前端校验
前端:html、css、js(利用前端来校验,你的浏览器上运行的)
2.后端校验(校验Content-Type)
3. 黑名单:名单上的人不能如何如何
白名单:只有白名单上的人如何如何
php3、php4、php5、phtml都会被解析为php执行
4. .htaccess文件绕过[针对某个文件夹有单独的策略]
通过设置web容器规则,文件夹密码保护、用户自定义重定向、自定义404页面、扩展名伪静态、禁止特定IP地址的用户,禁止目录列表
增加规则,把.jpg当做php执行 AddType application/x-httpd-php .jpg
难度排名:
非法网站 -> 大型互联网 -> 小型互联网 -> 大型实体 -> 小型实体 -> 托管式网站
5.大小写绕过
校验看大小写,解析不看
6.空格绕过
差异化。防御的理解和解析、系统的理解不同
7.后缀点绕过
对于windows来说后缀中有空格和点都是会被系统删除的
8.windows文件流绕过
::$DATA 一个文件里面可以寄生文件(藏东西)
echo 123>a.txt:b.txt 则123写到了b.txt中,且文件夹中无法找到b.txt
notepad a.txt:b.txt 打开b.txt文本文件
文件实际是以::$DATA结束的 1.txt::$DATA
9.双写绕过
str_ireplace($deny_ext,"",$file_name);
文件名出现了黑名单里面的东西就替换为空 .phphpp 绕过
黑名单(替换法[建议替换为下划线而且循环])
文件上传有一个绝对的杀手锏:oss图床 -> 上传到另外一个服务器上面,什么后端语言也不装
漏扫:
SQL、XSS、CSRF、文件上传、通杀漏洞