webug 4.0 第二十一关 文件上传(htaccess)

这一关代码有错且没有提示,而且说的是htaccess上传但是又在上传的黑名单里加上了htaccess,这真是让人想吐槽得很啊。所以我就直接拿了前面的上传代码然后去掉了后缀名验证,大家可以参照着我改法改一改,文件地址在C:\phpStudy\WWW\control\upload_file\upload_file_5.php

<?php

require_once "../../common/common.php";
if (!isset($_SESSION['user'])) {
    header("Location:../login.php");
}
$filter = array(".jpg", '.png', '.gif');

if ($_FILES['file']['error']) {
    die();
}
if ($_FILES['file']) {
    $arr = $_FILES['file'];
    $file_ext = trim(strtolower(strrchr($arr['name'], ".")));

    if (file_exists(TPMELATE."/upload/".$arr['name'])){
        echo "<script>alert('该文件已经存在')</script>";
    } else{
        $filename = iconv("UTF-8","gb2312",TPMELATE."/upload/".$arr['name']);
        move_uploaded_file($arr["tmp_name"],$filename);
        echo $filename;die();
    }
}
require_once TPMELATE."/upload_file_1.html";

改完后保存就能直接用了,下面开始正文

webug是什么

WeBug名称定义为“我们的漏洞”靶场环境基础环境是基于PHP/mysql制作搭建而成,中级环境与高级环境分别都是由互联网漏洞事件而收集的漏洞存在的操作环境。部分漏洞是基于Windows操作系统的漏洞所以将WeBug的web环境都装在了一个纯净版的Windows 2003的虚拟机中。

Webug官网:http://www.webug.org

Webug 4.0百度云地址: https://pan.baidu.com/s/1euUY4UG43BuOjhPqkJBvcw 提取码: 3xpy

来源:226安全团队

微信号:safeteam226

开始打靶

htaccess是什么

.htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置.通过htaccess文件,可以实现:网页301重定向、自定义404页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能
通过.htaccess文件,我们可以让php的解析器解析一个文件名包含指定字符串的任意文件

制作htaccess

Notepad新建一个文件,写入如下内容(asd可以换成其他的,随意)

<FilesMatch "asd">
SetHandler application/x-httpd-php
</FilesMatch>

然后点击保存,文件名为.htaccess,文件类型选择eXtenbsible Markup Language file
在这里插入图片描述
制作完成

开始上传

老样子,先过前端验证,然后上传我们的htaccess
在这里插入图片描述
然后上传我们的shell,这次就不用菜刀连接了,我们直接用phpinfo来查看执行情况

<?php phpinfo(); ?> 

在这里插入图片描述
在这里插入图片描述
然后访问http://192.168.136.130/template/upload/x.asd
在这里插入图片描述
前面也提了,是文件名包含指定字符串的任意文件,所以xx.asd.jpg这种jpg后缀也能被当作php执行哦
在这里插入图片描述

htaccess 是 Apache 服务器上使用的配置文件之一,用于设置服务器端特定目录的权限、规则以及重定向等。虽然 htaccess 文件通常与 PHP 和其他脚本语言的网站部署有,但其实它同样可以用来处理文件上传的功能。 对于文件上传功能而言,htaccess 的作用在于调整表单提交方式和设置 POST 参数大小限制,这主要是通过修改 `.htaccess` 文件的内容来进行的。下面是一些常用的 htaccess 配置示例: ### 示例 1: 改变表单提交方式 如果你需要强制所有表单请求都使用 `POST` 方式而非默认的 `GET` 或者其他方式,则可以在 `.htaccess` 中添加如下内容: ```apache RewriteEngine On RewriteCond %{REQUEST_METHOD} !=POST RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] ``` ### 示例 2: 设置 POST 参数大小限制 Apache 默认允许的 POST 数据大小是有限制的,如果需要增加这个限制,可以在 .htaccess 中加入以下代码: ```apache LimitRequestBody 64M ``` 这将把 POST 请求的最大数据大小限制从默认值扩大到64MB。请注意,更改此值前应考虑服务器资源,并确保不会引起潜在的安全风险或其他问题。 ### 示例 3: 允许上传特定类型的文件 如果你只希望用户能够上传某些指定类型的文件(例如 `.pdf`, `.docx`, `.jpg`, 等),可以在 .htaccess 文件中添加额外的条件: ```apache Options +FollowSymLinks -MultiViews Order allow,deny Allow from all AddHandler application/x-httpd-php5 .php <files ~ "\.(php|html)$"> SetHandler application/x-httpd-php5 </files> <filesMatch "\.(pdf|docx|jpg|jpeg|gif|png)$"> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny Allow from all </filesMatch> ``` 以上代码段首先设置了基本的 HTTP 手动请求处理器规则,然后定义了特定文件扩展名(如 PDF, DOCX, JPG 等)的访问规则。 ### 示例 4: 重定向或错误页面 你可以利用 htaccess 来设置重定向或显示自定义错误页面: ```apache ErrorDocument 403 /custom-error-page.html Redirect /private-file / ``` 上面的代码会将遇到的所有 403 错误重定向到名为 `custom-error-page.html` 的页面,而对非私有文件的直接访问则会被重定向到 `/private-file/` 页面。 #### 相问题: 1. 如何检查.htaccess文件是否生效? 2. .htaccess 文件中常见的安全策略有哪些? 3. .htaccess 是否能控制客户端浏览器的操作?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值