iwebsec-文件上传 05 .htaccess
1.iwebsec-sql注入 01 数字型注入2.iwebsec-sql注入 02 字符型注入3.iwebsec-sql注入 03 bool型注入4.iwebsec-sql注入 04 时间延迟型注入5.iwebsec-sql注入 05 报错型注入6.iwebsec-sql注入 06 宽字节字符型注入7.iwebsec-sql注入 07 空格过滤8.iwebsec-sql注入 08 大小写过滤注入9.iwebsec-sql注入 09 双写关键字绕过10.iwebsec-sql注入 10 双重url编码绕过11.iwebsec-sql注入 11 十六进制编码绕过12.iwebsec-sql注入 12 等价函数替换过滤13.iwebsec-sql注入 13 二次注入14.iwebsec-文件上传 01 前端JS过滤绕过15.iwebsec-文件上传 02 文件名过滤绕过16.iwebsec-文件上传 03 Content-Type过滤绕过17.iwebsec-文件上传 04 文件头过滤绕过
18.iwebsec-文件上传 05 .htaccess
19.iwebsec-文件上传 06 文件截断上传20.iwebsec-文件上传 07 条件竞争21.iwebsec-文件包含 01 本地文件包含22.iwebsec-文件包含 02 本地文件包含绕过23.iwebsec-文件包含 03 session本地文件包含24.iwebsec-文件包含 04 文件头过滤绕过25.iwebsec-文件包含 05 远程文件包含绕过26.iwebsec-文件包含 06 php://filter伪协议27.iwebsec-文件包含 07 php://input伪协议28.iwebsec-文件包含 08 php://input伪协议利用29.iwebsec-文件包含 09 file://伪协议利用30.iwebsec-文件包含 10 data://伪协议利用31.iwebsec-xss 01 反射型xss32.iwebsec-xss 02 存储型xss33.iwebsec-xss 03 DOM型xss34.iwebsec-xss 04 xss修复示例01、题目分析
正常来讲应该先判断文件上传过滤是前端验证还是后端验证,但是这个地方因为是靶场,所以直接告诉你了是什么类型,因此就不用进行判断了,这里是.htaccess文件绕过,htaccess 文件是 Apache 服务器中的一个配置文件,它负责相关目录下的网页配置。通过 htaccess 文件,可以帮我们实现:网页301重定向、自定义 404 错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能,因此我们可以通过修改这个文件内容来实现改变文件拓展名功能
02、文件上传
我们先在主机上新建一个文件,写入以下内容:
<FilesMatch "\.jpg"> SetHandler application/x-httpd-php </FilesMatch>
然后保存,命名为.htaccess,然后上传,再然后把1.php的一句话木马改名为1.jpg,然后上传即可得到webshell
03、源码分析
<?php header("Content-type: text/html;charset=utf-8"); // 设置响应头的内容类型和字符集为 UTF-8 error_reporting(0); // 关闭所有错误和警告的显示 // 设置上传目录 define("UPLOAD_PATH", dirname(__FILE__) . "/upload/"); // 定义上传文件的存储目录 define("UPLOAD_URL_PATH", str_replace($_SERVER['DOCUMENT_ROOT'], "", UPLOAD_PATH)); // 定义上传文件的访问 URL if (!file_exists(UPLOAD_PATH)) { mkdir(UPLOAD_PATH, 0755); // 如果上传目录不存在,则创建它,并设置权限为 0755 } $is_upload = false; // 初始化变量,用于表示文件是否上传成功 if (!empty($_POST['submit'])) { // 检查是否提交了名为 'submit' 的表单字段 $name = basename($_FILES['file']['name']); // 获取上传文件的原始文件名,并使用 basename 函数去除路径信息 $ext = pathinfo($name)['extension']; // 使用 pathinfo 函数获取上传文件的扩展名 $blacklist = array("php", "php7", "php5", "php4", "php3", "phtml", "pht", "jsp", "jspa", "jspx", "jsw", "jsv", "jspf", "jtml", "asp", "aspx", "asa", "asax", "ascx", "ashx", "asmx", "cer", "swf"); // 定义不允许上传的文件扩展名列表 if (!in_array($ext, $blacklist)) { // 检查上传文件的扩展名是否在黑名单中 if (move_uploaded_file($_FILES['file']['tmp_name'], UPLOAD_PATH . $name)) { // 将上传的临时文件移动到指定的上传目录 $is_upload = true; // 文件上传成功 } else { echo "<script>error();</script>"; // 文件移动失败,输出错误提示 } } else { echo "<script>black();</script>"; // 文件扩展名在黑名单中,输出黑名单提示 } } ?>
分类:
标签:
,
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步