当前位置: 首页 > news >正文

记一次从文件备份泄露到主机上线

前言

记录下某个测试项目中,通过一个文件备份泄露到主机上线的过程。

文件备份泄露

对于测试的第一项当然是弱口令,bp跑了一通词典,无果。目录又爆破了一通,发现一个web.rar可通,赶紧下载看看,如下图所示。
1665974730_634cc1cac2160bb11b814.png!small

代码审计

解压瞅了瞅,源代码为ASP.NET框架的,这个真不懂,只能先用Fortify快速扫描一番,此处略过。

配置文件+未授权访问

扫描之后,看了下报告排除了误报,发现某个xml配置文件包含了很多信息,比如数据库账号密码,微信AppId等等。
1665974884_634cc264ad53b1fd708dd.png!small
习惯性将路径拼接一下访问一下url,好家伙,未授权。
1665974887_634cc2674877260f8976e.png!small

默认账户密码

同时注意到了配置文件中还有一行定义了默认登录账户和密码哈希。
图片.png
于是在cmd5对此哈希进行解密,并成功获取账号明文密码。
图片.png

返回到登录界面,输入了刚才账户和解密的密码之后,果不其然,等登录验证成功之后跳转了系统内部。
图片.png
图片.png
图片.png

储存型XSS

在Fortify的扫描报告中有多个反射xss漏洞信息,不过随便点开功能栏,存在许多输入框,便觉得肯定存在储存xss,随便找一处,输入经典测试语句点击保存并刷新,果然弹出了窗。
图片.png
图片.png

文件上传

刚找到一个xss,便不在测试了,此站点未进行任何xss过滤,肯定到处是xss漏洞。又在项目信息处找到了一个上传点,简单用哥斯拉生成一个webshell:test.asp,点击上传发现webshell上传成功,但是未返回文件上传路径,且文件名被改写为参数形式了。
图片.png
图片.png
可以通过选择下载刚才上传的文件获取到新的文件名,但是问题是不知道上传到了那个目录下。
图片.png
好在有源代码,通过关键词语搜索全局,找到多个名为uploadfile的文件夹的路径,通过这些路径拼接到url并一个个尝试访问即可,如下图,访问未报错即证明路径正确。
图片.png
使用正确的url通过哥斯拉连接成功,GetShell达成。
图片.png

未授权访问+数据查询+xp_cmdshell=RCE

在getshell之后,并未停止测试脚步,发现了一处sql查询页面,除了可以查询数据库内容外,还可以执行sql语句。
图片.png
考虑到配置文件的未授权访问,于是又在bp中删除了cookie,发现此查询页面也可以未授权访问,而由代码审计中的配置文件知道数据库为sql
server,如果可以开启xp_cmdshell,那么便可以直接远程命令执行。
图片.png
图片.png

xp_cmdshell

这里简单介绍一下xp_cmdshell 扩展存储过程将命令字符串作为操作系统命令 shell 执行,并以文本行的形式返回所有输出。

关闭

EXEC sp\_configure 'show advanced options',1;
RECONFIGURE;
EXEC sp\_configure 'xp\_cmdshell',0;
RECONFIGURE;

启用

EXEC sp_configure 'show advanced options',1;
RECONFIGURE;
EXEC sp_configure 'xp\_cmdshell',1;
RECONFIGURE;

这里直接将开启xp_cmdshell的sql语句执行,未报错。
图片.png
再通过xp_cmdshell执行whoami命令,结果为system。
图片.png
随后通过"dir /s /b c:\Web.config“命令查询应用系统的绝对路径,通过下图可知返回了两个路径,在排除一个之后获得了系统的绝对路径。
图片.png
在获取绝对路径之后,通过echo命令将一句话木马写入,执行未报错即写入成功。
图片.png
再将webshell拼接为url,通过哥斯拉连接,再次成功GetShell。
图片.png

上线

虽然之前的都比较顺利,但是在执行上线的时候遭遇了挫折,首先是通过Cobalt
Strike的pwoershell一句话和bitsadmin上线均失败,显示拒绝访问。
图片.png
再生成可执行文件木马上传,直接上传失败,那几乎可以确定了存在杀软,其实在执行这些之前应该先查询杀软是否存在,此处不该莽撞。
图片.png

查询

通过webshell执行tasklist命令列出进程列表,查看进程信息。
图片.png
这里将进程信息放进潇湘老哥的杀软查询工具中快速对比,获知主机开启了360和安全狗。emm…看来只要过360免杀就行了。
图片.png

免杀

对我而言,免杀只能找到github上的大佬工具来用了,在Cobalt
Strike中生成shellcode并通过一个目前可用的免杀工具生成木马,在vps用python -m
http.server开启一个简单http服务,获取一个远程下载地址,通过远程下载,将木马成功下载到目标主机。
图片.png
图片.png
执行,等待几秒钟,主机上线。
图片.png

结语

简单总结一下,通过文件备份泄露,简单审计一下获取配置文件的账号密码登录到系统内部,再找到文件上传点和sql执行点,通过webshell绕过杀软并主机上线,思路为:信息搜集=>打点=>命令执行=>防御绕过=>上线。在fofa搜索一下,使用此应用系统的资产大约有二十几个,算是个小通杀。

单审计一下获取配置文件的账号密码登录到系统内部,再找到文件上传点和sql执行点,通过webshell绕过杀软并主机上线,思路为:信息搜集=>打点=>命令执行=>防御绕过=>上线。在fofa搜索一下,使用此应用系统的资产大约有二十几个,算是个小通杀。

网络安全工程师企业级学习路线

这时候你当然需要一份系统性的学习路线

如图片过大被平台压缩导致看不清的话,可以在文末下载(无偿的),大家也可以一起学习交流一下。

一些我收集的网络安全自学入门书籍

一些我白嫖到的不错的视频教程:

上述资料【扫下方二维码】就可以领取了,无偿分享

相关文章:

记一次从文件备份泄露到主机上线

前言 记录下某个测试项目中,通过一个文件备份泄露到主机上线的过程。 文件备份泄露 对于测试的第一项当然是弱口令,bp跑了一通词典,无果。目录又爆破了一通,发现一个web.rar可通,赶紧下载看看,如下图所示…...

8年测开经验面试28K公司后,吐血整理出1000道高频面试题和答案

1、python的数据类型有哪些 答:Python基本数据类型一般分为:数字、字符串、列表、元组、字典、集合这六种基本数据类型。 浮点型、复数类型、布尔型(布尔型就是只有两个值的整型)、这几种数字类型。列表、元组、字符串都是序列。 2、列表和元组的区别 答…...

Linux 基础知识之权限管理

目录一、权限的认识二、用户切换三、文件权限1.三类文件访问者2.文件权限类型3.文件访问权限4.文件权限值表示一、权限的认识 权限是对用户所能进行的操作的限制,如果不对用户作出限制,那么碰到恶意用户,就会损害其他用户的利益。 Linux是多用…...

百度LAC分词

对应数据的链接放这里了 import pandas as pd from util.logger import Log import os from util.data_dir import root_dir from LAC import LAC os_file_name os.path.split(os.path.realpath(__file__))[-1]# 加载LAC模型 lac LAC(mode"lac") # 载入自定义词典 …...

软件测试面试题 —— 整理与解析(1)

😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡主页地址:🌎【Austin_zhai】🌏 🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能&#xf…...

深入浅出C++ ——红黑树模拟实现STL中的set与map

文章目录一、红黑树二、用泛型红黑树模拟实现set三、用泛型红黑树模拟实现map一、红黑树 红黑树作为set和map的底层容器,既要实现插入key又要实现插入pair,所以做了稍许的改动,使其成为一颗泛型结构的红黑树,通过不同的实例化参数…...

自动化测试框架设计

大数据时代,多数的web或app产品都会使用第三方或自己开发相应的数据系统,进行用户行为数据或其它信息数据的收集,在这个过程中,埋点是比较重要的一环。 埋点收集的数据一般有以下作用: 驱动决策:ABtest、漏…...

【虚拟仿真】Unity3D中实现鼠标的单击、双击、拖动的不同状态判断

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 这篇文章分享一下虚拟仿真项目中经常碰到鼠标事件控制代码。 …...

【2023】Prometheus-相关知识点(面试点)

目录1.Prometheus1.1.什么是Prometheus1.2.Prometheus的工作流程1.3.Prometheus的组件有哪些1.4.Prometheus有什么特点1.5.Metric的几种类型?分别是什么?1.6.Prometheus的优点和缺点1.7.Prometheus怎么采集数据1.8.Prometheus怎么获取采集对象1.9.Promet…...

英语二-电子邮件邀请短文写作

1. 邮件模板 Dear 邀请人, Hope you have a great day. I am writing this email to invite you to attend 主题. Please kindly find the following information for your reference: Time: 时间 Address: 地点 We hope that nothing will prevent you from coming, as…...

如何快速一次性通过pmp考试?

我们就从三个方向进行了解 1.PMP考试难不难? 2.PMP如何备考? 3.考试过程中需要注意什么? 一,PMP考试难不难? 首先关注的问题是,PMP考试难吗?我想全球55%的通过率和学会这边93.9%的通过率&a…...

1-Linux 保存kernel panic信息到flash

在系统运行过程中,如果内核发生了panic,那么开发人员需要通过内核报错日志来进行定位问题。但是很多时候出现问题的时候没有接调试串口,而报错日志是在内存里面的,重启后就丢失了。所以需要一种方法,可以在系统发生crash时&#x…...

linux基本功系列-top命令实战

文章目录一. top命令介绍二. 语法格式及常用选项三. 参考案例3.1 显示进程信息3.2 显示完整的进程命令3.3 以批处理的形式展示3.4 设置信息更新频次3.5 显示指定进程号的信息3.6 top面板中常用参数3.7 其他用法四. top的相关说明4.1 交互命令介绍4.2 top面板每行信息的含义4.2.…...

6.5 拓展:如何实现 Web API 版本控制,同时兼容无版本控制的原始接口?

第6章 构建 RESTful 服务 6.1 RESTful 简介 6.2 构建 RESTful 应用接口 6.3 使用 Swagger 生成 Web API 文档 6.4 实战:实现 Web API 版本控制 6.5 拓展:如何实现 Web API 版本控制,同时兼容无版本控制的原始接口? 6.5 拓展&#…...

Springboot依赖注入Bean的三种方式,final+构造器注入Bean

文章目录Springboot依赖注入Bean的方式一、Field 注入/属性注入二、set注入三、构造器注入Springboot依赖注入Bean的方式 一、Field 注入/属性注入 Autowired注解的一大使用场景就是Field Injection。 Controller public class UserController {Autowiredprivate UserServic…...

【java】Spring Cloud --Spring Cloud Alibaba 微服务解决方案

文章目录1、Spring Cloud Alibaba 是什么先说说 Spring CloudSpring Cloud Alibaba和Spring Cloud 的区别和联系Spring Cloud Alibaba2、Spring Cloud Alibaba 包含组件阿里开源组件阿里商业化组件集成 Spring Cloud 组件3、Spring Cloud Alibaba 功能服务注册与发现支持多协议…...

CSS 6种选择器(超详细)

CSS6大种选择器(超详细) 一、常用的css基本选择器(4种) 1、标签选择器 结构: 标签名{css属性名:属性值} 作用:通过标签名,找到页面中所有的这类标签,设置样式 注意:1.标签选择器选择的是一类标签&#…...

mysql8.0.32-手动配置安装-具体流程步骤

文章目录1.下载mysql压缩编译版2.修改配置文件3.数据库初始化,安装windows服务,启动服务4.修改root密码5.作者答疑1.下载mysql压缩编译版 作者从官方下载:https://download.csdn.net/download/m0_67316550/87485720 2.修改配置文件 修改my…...

【项目】Vue3+TS 退出登录 menu header搭建

💭💭 ✨:【项目】Vue3TS 退出登录 menu header搭建   💟:东非不开森的主页   💜: 今天永远比昨天更好💜💜   🌸: 如有错误或不足之处,希望可以指正&#x…...

LoRaWAN模块在车辆跟踪定位中的应用

目前 GPS已经在资产的管理中得到了越来越多的运用,如车辆跟踪、车队跟踪、资产监控等;人员跟踪,宠物跟踪,等等。在所有追踪装置中,最重要的是它的电池期望和监视距离。鉴于 LoRaWAN的功率消耗很小,而且能在…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...

SpringTask-03.入门案例

一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...

绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化

iOS 应用的发布流程一直是开发链路中最“苹果味”的环节:强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说,这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发(例如 Flutter、React Na…...

WEB3全栈开发——面试专业技能点P7前端与链上集成

一、Next.js技术栈 ✅ 概念介绍 Next.js 是一个基于 React 的 服务端渲染(SSR)与静态网站生成(SSG) 框架,由 Vercel 开发。它简化了构建生产级 React 应用的过程,并内置了很多特性: ✅ 文件系…...

[USACO23FEB] Bakery S

题目描述 Bessie 开了一家面包店! 在她的面包店里,Bessie 有一个烤箱,可以在 t C t_C tC​ 的时间内生产一块饼干或在 t M t_M tM​ 单位时间内生产一块松糕。 ( 1 ≤ t C , t M ≤ 10 9 ) (1 \le t_C,t_M \le 10^9) (1≤tC​,tM​≤109)。由于空间…...