webshell被上传溯源事件的示例分析

发布时间 - 2023-05-12 00:00:00    点击率:

巡检查杀

首先,我明白自己要做的不是找到这个上传的位置是哪里出现的,我应该登上服务器进行webshel查杀,进行巡检,找找看是否被别人入侵了,是否存在后门等等情况。虽然报的是我们公司的ip地址,万一漏掉了几个webshell,被别人上传成功了没检测出来,那服务器被入侵了如何能行。所以我上去巡检了服务器,上传这个webshell查杀工具进行查杀,使用netstat -anpt和iptables -l判断是否存在后门建立,查看是否有挖矿程序占用cpu,等等,此处不详细展开了。万幸的是服务器没有被入侵,然后我开始着手思考这个上传点是怎么回事。

文件上传漏洞回顾

首先,我向这个和我对接的研发人员咨询这个服务器对外开放的地址,要了地址之后打开发现,眼熟的不就是前不久自己测试的吗?此时,我感觉有点懵逼,和开发人员对质起这个整改信息,上次测试完发现这个上传的地方是使用了白名单限制,只允许上传jpeg、png等图片格式了。当时我还发现,这个虽然上传是做了白名单限制,也对上传的文件名做了随机数,还匹配了时间规则,但是我还是在返回包发现了这个上传路径和文件名,这个和他提议要进行整改,不然这个会造成这个文件包含漏洞,他和我反馈这个确实进行整改了,没有返回这个路径了。

文件后缀编码绕过

讨论回顾完上次整改的问题之后,理清了思路。然后我登录了网站查看一下原因,因为网站只有一个上传图片的地方,我进行抓包尝试,使用了repeater重放包之后,发现返回包确实没有返回文件上传路径,然后我又尝试了各种绕过,结果都不行。最后苦思冥想得不到结果,然后去问一下这个云平台给他们提供的这个告警是什么原因。看了云平台反馈的结果里面查杀到有图片码,这个问题不大,上传文件没有执行权限,而且没有返回文件路径,还对文件名做了随机更改,但是为啥会有这个jsp上传成功了,这让我百思不得其解。

当我仔细云平台提供的发现webshel数据的时候,我细心的观察到了文件名使用了base64编码,这个我很疑惑,都做了随机函数了还做编码干嘛,上次测试的时候是没有做编码的。我突然想到了问题关键,然后使用burpsuite的decoder模块,将文件名“1.jsp”做了base64编码成“MS5Kc1A=”,然后发送成功反馈状态码200,再不是这个上传失败反馈500状态码报错了。

所以,这个问题所在是,在整改过程中研发人员对这个文件名使用了base64编码,导致文件名在存储过程中会使用base64解码,而我上传文件的时候将这个后缀名.jsp也做了这个base64编码,在存储过程中.jsp也被成功解码,研发没有对解码之后进行白名单限制。其实这种编码的更改是不必要的,毕竟原来已经做了随机数更改了文件名了,再做编码有点画蛇添足了,这就是为啥程序bug改一个引发更多的bug原因。


# 上传  # 查杀  # 的是  # 使用了  # 随机数  # 我还  # 和我  # 这个问题  # 过程中  # 上传文件 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 网站建设保证美观性,需要考虑的几点问题!  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  EditPlus中的正则表达式实战(6)  Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】  jQuery 常见小例汇总  清除minerd进程的简单方法  如何快速查询网站的真实建站时间?  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  如何在IIS中新建站点并配置端口与IP地址?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  昵图网官方站入口 昵图网素材图库官网入口  JS经典正则表达式笔试题汇总  如何在云主机上快速搭建多站点网站?  Laravel怎么连接多个数据库_Laravel多数据库连接配置  微信小程序 wx.uploadFile无法上传解决办法  如何快速生成高效建站系统源代码?  昵图网官网入口 昵图网素材平台官方入口  Laravel如何为API生成Swagger或OpenAPI文档  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  进行网站优化必须要坚持的四大原则  Laravel如何生成API文档?(Swagger/OpenAPI教程)  如何在IIS7中新建站点?详细步骤解析  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  智能起名网站制作软件有哪些,制作logo的软件?  米侠浏览器网页背景异常怎么办 米侠显示修复  如何在不使用负向后查找的情况下匹配特定条件前的换行符  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  如何在万网ECS上快速搭建专属网站?  Swift开发中switch语句值绑定模式  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  如何在万网利用已有域名快速建站?  如何在IIS管理器中快速创建并配置网站?  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  香港服务器网站卡顿?如何解决网络延迟与负载问题?  Laravel怎么清理缓存_Laravel optimize clear命令详解  奇安信“盘古石”团队突破 iOS 26.1 提权  Laravel如何使用.env文件管理环境变量?(最佳实践)  深圳网站制作的公司有哪些,dido官方网站?  Java解压缩zip - 解压缩多个文件或文件夹实例  Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】  网站页面设计需要考虑到这些问题  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  android nfc常用标签读取总结