文件上传
上传文件的流程: 网页上传 -> 目标服务器的缓存目录 -> 移动到代码规定的目录 -> 重命名(开发) 移动上传文件函数: move_uploaded_file()
1.前端验证绕过: 可以通过burp抓包,删除js验证代码,即可绕过。
2.content-type方式绕过: 通过burp抓包,修改content-type类型为img/jpeg格式
3.黑名单绕过: 具体看黑名单内容,可以用大小写绕过、双写绕过、文件后缀点绕过 如何判断白名单和黑名单: .aaaaaaaaa 如果可以上传就是黑名单,如果不可以上传就是白名单。
- .htaccess绕过 上传一个img(实际是php)再上传含有将img文件当做php文件处理的代码的.htaccess文件,即可将img解析为php
5.后缀大小写绕过: 将php改为phP、PhP、pHP、PHp等都可以绕过
6.文件后缀空: 通过burp抓包,在文件名后缀加上一个空格,因windows会自动消除空格,但在后台检测有空格和没空格完全不一样,所以达成绕过
7.文件后缀点绕过: 与文件后缀空同理,用burp抓包,在文件名后缀加上一个点。
DATA(Windows文件流绕过): 利用NTFS文件流,windwos会将含有::DATA的文件默认存储,但在后台检测会检测1.php::DATA,可以达成绕过
9.构造文件后缀绕过: 当后缀.和空都不能用时,可以尝试一下 1.php. . 来绕过 消除文件后面的点和空,windwos自动消除点,达到绕过
10.双写文件后缀绕过 黑名单机制 文件后缀 windwos文件流被写入检测,可以通过pphphp来绕过,检测清除原本有的php,pphphp变成了php.达成绕过