文件上传之Webshell连接方法
"感谢您阅读本篇博客!如果您觉得本文对您有所帮助或启发,请不吝点赞和分享给更多的朋友。您的支持是我持续创作的动力,也欢迎留言交流,让我们一起探讨技术,共同成长!谢谢!🚀✨"
Webshell就是以asp.php.jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称为一种网页木马后门,攻击者可以通过这种网页后门获得网站服务器操作权限,控制网站服务器以进行上传下载文件, 查看数据库执行命令 通过服务器开放的端口获取服务器的某些权限。 往目标网站中上传一句话木马,然后你就可以在本地通过Shell管理工具连接即可获取和控制整个网站目录
基础
Webshell是在文件上传后才执行的操作,通过向网站上传恶意文件后,本文介绍通过中国蚁剑工具进行连接获得权限,以及简单的GET POST Cookie 连接
攻击流程
获得权限--->上传恶意文件(小马)-->通过小马上传大马-->利用工具连接获得Webshell
大小马
常用Webshell
网站最常用的还是PHP代码的形式,本文也是只讲解利用PHP上传一句话木马
PHP
ASP
ASPX
JSP
简单一句话木马webshell
GET方法
0x01
在phpstudy文件目录下创建webshell文件夹,放置我们的一句话木马PHP代码,当然你也可以自己建立别的文件夹,执行环境需要web网站,我使用的是PHPStudy,相信学习安全的各位应该都是不陌生的,这里不过多赘述
0x02
回到浏览器中访问phpstydy根目录下webshell下t.php,出现空白页面证明我们的php语句正常执行没有报错
0x03
通过get方法像之前定义的pass变量传递参数,传递不同的参数有不同的效果,危险参数显而易见
POST方法
0X01
同GET方法一致,写入我们需要PHP代码,使用POST传递。
0X02
回到浏览器访问文件并且打开我们的代理插件,开启8080服务使用burp工具抓包,将请求方式改为POS方式
0X03
抓取到请求包后,右键发送到重发器,进入重发器后现在我们需要做的就是把请求方法改为POST,右键找到变更请求方法 ,就可以将GET改为POST
未改变
已改变
0X04
改变后,现在需要做的事情就是传递参数了,上方的参数为saber这里就是使用这个参数, 写好后按照步骤发送就可以查看响应后的回显
Cookie
0x01
使用cookie传递参数,cookie会携带我们用户的数据,从而达到拿到shell的目的
0X02
打开网页访问,Cookie参数我们通过一个插件 HacBar来操作,打开选择的Cookies选项使用写入需要的参数.
0X03
在Cookie处写入我们需要传递的参数为cmd,1是在PHP代码中包裹的值,eval将字符串作为PHP代码执行 ,POST选项出就写入代码来验证是否正确 ,发现是可以正确执行的,别的参数可以自行试验,
蚁剑连接Webshell
蚁剑(AntSword)是一款开源的跨平台WebShell管理工具,它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。
蚁剑推崇模块化的开发思想,遵循开源,就要开得漂亮的原则,致力于为不同层次的人群提供最简单易懂、方便直接的代码展示及其修改说明,努力让大家可以一起为这个项目贡献出力所能及的点滴,让这款工具真正能让大家用得顺心、舒适,让它能为大家施展出最人性化最适合你的能力!
使用蚁剑需要以下两个文件下载使用,加载器认准自己计算机对应型号下载,正常下载是无法解压的,点进加载器详情里面会有介绍如何下载,下载好后根据下面文件学习安装使用
蚁剑安装使用教程:蚁剑
0X01
以Cookie为例复制路径打开蚁剑连接
0X02
打开蚁剑,右键在红框出打开窗口,点击添加数据,在这里连接我们的文件
0X03
填写后信息后因为是Cookie携带的参数,我们还需要设置一下请求信息, 这里的密码是我们在请求信息处填写的信息,我这里是CMD,写成一是因为一开始写错了,如果连接错误应该是因为密码填写错误
写入name为Cookie,Value值为1=eval($_POST[cmd]);,同上方利用插件传递值是一样的,这里写完就可以左上角进行保存, 点击测试连接
0X04
连接成功后添加数据,数据就保存到了蚁剑中,我们点击刚刚保存的地址右键打开虚拟终端
进入虚拟终端后就也就是shell页面就可以为所欲为,当然如果我们在实战中拿到了shell还是要遵纪守法,在合理范围内渗透不要对服务器造成破坏影响正常的业务
内存马
内存webshell相比于常规webshell更容易躲避传统安全监测设备的检测,通常被用来做持久化,规避检测,持续驻留目标服务器。在内存中写入恶意后门和木马并执行,达到远程控制Web服务器的一类内存马
特点
- 无文件攻击在系统的内存中远程加载执行、驻留在注册表中或滥用常用的白名单工具,例如
PowerShell
,Windows Management
- 内存
webshell
- 隐蔽性强
原理
先由客户端发起一个web
请求,中间件的各个独立的组件如Listener
、Filter
、Servlet
等组件会在请求过程中做监听、判断、过滤等操作,内存马利用请求过程在内存中修改已有的组件或者动态注册一个新的组件,插入恶意的shellcode
达到持久化的控制服务器
PHP不死马
PHP内存马可以在启动后删除本身,在内存中执行死循环反复创建,使管理员无法删除.会一直循环生成一句话木马22.php,解决方法是使用条件竞争通过同名文件替换克制,写一个新的木马文件,调整usleep时间使其更快生成,就可以提取写入我们想要的文件
检测思路
- 检查所有php进程处理请求的持续时间
- 检测执行文件是否在文件系统真实存在
Python内存马
利用flask
框架中ssti
注入来实现,flask
框架中在web
应用模板渲染的过程中用到render_template_string()
进行渲染但未对用户传输的代码进行过滤导致用户可控通过写入恶意代码实现内存马注入
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?