2024 江苏省第二届数据安全技术应用职业技能竞赛 初赛 部分wp

news2024/11/28 8:47:31

文章目录

      • 一、前言
      • 二、参考文章
      • 三、题目(解析)
        • 数据安全解题赛
          • 1、ds_0602(30分)
          • 2、333.file(45分)
          • 3、pf文件分析(35分)
          • 4、丢失的资料(45分)
          • 5、greatphp(45分)
        • 数据安全分析赛
          • 一、简单分析
            • 1、问题一:攻击者成功登陆后台的账号密码是?(如账号为admin,密码为admin,则提交admin:admin)
            • 2、问题二:攻击者使用的webshell文件名称以及执行了什么命令?(如文件名称为123.php命令为ls,则提交123.php:ls)
            • 3、问题三:被登录的后台用户对应的邮箱是什么?(如xxx@xxxx.com)
          • 二、黑客攻击探秘
            • 1、问题一:请问黑客采取的攻击手段是?(如有英文字母请大写)答案请先base64编码后提交。例如:黑客采取的攻击手段是暴力破解,则先对“暴力破解”四个字进行base64编码,得到5pq05Yqb56C06Kej,则提交5pq05Yqb56C06Kej
            • 2、问题二:请问黑客最终破解的数据库名、表名以及字段名是什么?请用下划线连接。例如:Database table_column
            • 3、问题三:黑客最后得到的flag字符串是什么?

一、前言

也是很遗憾这次初赛,因为个人原因无法到场参加初赛,但是幸运的通过师傅我也是荣幸拿到了初赛的题目附件,那这里我们来复现一下,本次比赛是“理论+实操”,分数的话是一半一半吧,理论就跳过了(没什么好说的),大部分理论题都是之前给的例题,这里我们主要分析实操,话不多说直接上实操;

文章中涉及到部分工具已为各位师傅打包完整!

二、参考文章

【WP】江苏省第二届数据安全技术应用职业技能竞赛初赛

题目附件下载

https://www.123pan.com/s/q2J1jv-zBBvd.html
提取码:0905

部分工具下载

https://www.123pan.com/s/q2J1jv-zRBvd.html
提取码:0905

三、题目(解析)

数据安全解题赛
1、ds_0602(30分)

在这里插入图片描述

解题思路

题目让我们获取加密文件中的原始数据,解密后提交第六行第二列数据,下载附件,发现里面有两个文件,其中一个是“.enc”结尾,那这里我们得先简单了解一下“.enc”结尾的是什么类型的文件。

在这里插入图片描述

简单来说“.enc”结尾的文件通常是经过加密的文件。具体来说,文件扩展名“.enc”并不代表某种特定的文件类型,而是一个通用的标识,表示文件内容已被加密,那题目要求我们的就显而易见了,那这里右键打开方式选择“记事本”打开分析即可。

得到;

在这里插入图片描述

简单分析一下,很明显这里面都是经过“base64加密”过的,那这里题目让进行解码,所以相反的,我们直接随便找个在线“base64”解码即可,那话又说回来了,这里为什么我就可以确认是“base64编码”呢?

base特征;

  • 编码长度

    • 每3个字节的二进制数据(24位)会被编码为4个ASCII字符(每个字符6位)。
    • 编码后的长度通常是原始数据长度的1.33倍,即原数据长度的4/3。
  • 字符集

    • Base64编码使用以下64个字符组成的字符集:
      • 大写字母:A-Z
      • 小写字母:a-z
      • 数字:0-9
      • 两个符号:+/
    • 在某些实现中,可能会替换符号,例如:+- 替换,/_ 替换(通常用于URL安全的Base64编码)。
  • 填充字符

    • 如果输入数据的字节数不是3的倍数,编码后的结果会使用=符号进行填充,使其长度成为4的倍数。
    • 一个等号表示输入长度除以3余1,两个等号表示余2。

简单来说Base64编码是一种用于将二进制数据转换为ASCII字符的编码方法。

在线base64解码

得到;

在这里插入图片描述

题目中所说的“第六行第二列数据”,那我们这里直接复制第六行的解码即可;

得到;

在这里插入图片描述

至此;

flag{767378199223105126}
2、333.file(45分)

在这里插入图片描述

解题思路

下载附件,解压得到一段以“.wav”结尾的音频,丢进“deepsound”、“silenteye”、“Audacity”均无果,这时候就要使用“010”打开分析一下,看看里面有没有什么关键信息,比如“flag”或者“zip”关键字样,再接着我们也可以丢进“kali”中使用“binwalk”来分析一下,看看里面有没有可以分离的文件;

“DeepSound”无果;

在这里插入图片描述

“silenteye”无果;

在这里插入图片描述

“Audacity”无果;

在这里插入图片描述

那就暂时没办法嘛,只能丢进“kali”中简单使用“binwalk”分析一下,发现里面确实存在一个残缺的“zip”,但是使用“binwalk -e”还不足以提取出来,那这里我们就尝试使用“foremost -i”(原理跟binwalk -e差不多只不过换了一种提取方式,感兴趣的师傅可以去了解一下他们两的区别,这里不在多强调)取中音频存在的隐藏文件。

使用命令;

binwalk -e 333.wav  --run-as=root 

得到

在这里插入图片描述

使用“foremost -i”提取成功,打开发现里面并不是我们之前使用“binwalk”分析出的“zip”,而是又一段".wav"结尾的音频,不过通过简单分析发现,这个音频并不是之前的音频,最简单的分析方法就是它们的大小不一样,所以这里,我们还是如图上面一样基本的常见“.wav”分析工具都过一遍,最后也是在“Audacity”中发现关键信息!

使用命令;

foremost -i 333.wav -o /root/桌面/123 -T

得到

在这里插入图片描述

打开分离的出的文件得到两个音频,都简单分析一下即可;

在这里插入图片描述

最后也是第二个音频“00006606.wav”中的“Audacity”的“频谱图”发现关键信息!

在这里插入图片描述

得到关键信息,pass:stego0626;

那这里也很明显,肯定是某某的密码,毕竟都“pass”那也就不言而喻了,那到这里其实就没有什么可以分析的了,因为基本能翻到的想到的也全都尝试了一遍但是都没有效果,但这里突然想到之前使用“binwalk”分析的时候,里面确实有一个残缺的“zip”,没有分离成功,然后才使用“foremost -i”才分离出的“pass”,那我们不妨使用“010”简单定位一下,看看这个”zip“是不是残缺的,因为有时候残缺的使用”foremost“或者”binwalk“是不能直接分离出的,必须手动分离;

使用“010”分析查找“zip”(zip的十六进制——504B0304)

在这里插入图片描述

大致简单看一下,发现了关键的信息“flag”,确实是我们心心念念的flag,但是好像这个zip缺少了主要的头部,也就是我们刚刚查找的“504B0304”这个开头,不认识没有关系,我们可以拿一张正常的“zip”开头做为对比;

正常的“zip”十六进制表示;

在这里插入图片描述

不难看出正常的“zip”确实是开头包含着“504B0304”等等,但是这里的我们并没有发现存在,那我们尝试直接补全保存看看难不难正常打开;

直接在“010”中“新建十六进制文件”,接着选中刚刚那一整段粘贴即可;

在这里插入图片描述

选中"zip"的主体内容,右键复制即可;

在这里插入图片描述

当然这里既然是缺少“zip”的头部,那我们新建好的同时,可以直接先输入“504B0304”,以防后面需要插入(当然也可以后插入内容,看各位师傅的习惯)

在这里插入图片描述

粘贴,并且保存格式选择“zip”即可,注意保存位置,以防自己找不着;

在这里插入图片描述

最后打开“zip”也确确实实需要密码,那我们输入前面提取出来的密码“pass:stego0626”即可打开;

在这里插入图片描述

得到的空白文件,我们可以选中右键“记事本”打开进行分析;

在这里插入图片描述

发现并不是我们需要的flag,不过没关系,我们可以选中使用“010”打开再进行分析一下;

得到;

在这里插入图片描述

发现这个“flag”空白文件的头部,是以“78 9c 4b cb”开头的,通常来说以十六进制 78 9c 4b cb 开头的文件通常是使用 zlib 压缩算法压缩过的文件。

所以我们可以直接添加一个“zlib”后缀,接着再使用“binwalk -e”进行分离,最后发现了flag;

使用命令;

binwalk -e flag.zlib  --run-as=root 

成功分离

在这里插入图片描述

打开分离的文件进行分析,最后也是成功得到了flag;

在这里插入图片描述

至此;

flag{81633464866e622d275c309b22cb907b}

拓展

这里分离并不是唯一的方法,我们可以使用“CyberChef”进行“zlib”解码也是可以解出flag;

操作如下;(当然方法不唯一,看自己喜欢什么)

在这里插入图片描述

至此;

flag{81633464866e622d275c309b22cb907b}
3、pf文件分析(35分)

在这里插入图片描述

解题思路

题目巴拉巴拉一大堆不过没事我们找关键的,简单来说就是让我们从中找出使用次数最多的软件名称提交即可,那这里我们还是首先简单了解一下什么是“pf”文件吧;

PF文件(Prefetch File)是Windows操作系统中的一种缓存文件,用于加快应用程序的启动速度。每当你在Windows中运行某个应用程序时,系统会创建或更新与该应用程序相关联的PF文件。这个文件记录了该程序启动时所需的资源,包括加载的DLL、文件路径等信息。

主要特点:

  1. 存储位置

    • PF文件通常存储在C:\Windows\Prefetch目录下,文件名格式为程序名-哈希值.pf
  2. 加快启动速度

    • PF文件通过记录程序启动所需的资源,可以帮助操作系统在下次启动该程序时更快速地加载这些资源,从而加快启动速度。
  3. 取证分析

    • 在数字取证中,PF文件可以用于分析用户行为,查看某个程序何时、如何被启动,帮助重建事件时间线。
  4. 清理影响

    • 清理PF文件可能会导致应用程序首次启动速度变慢,但对系统的整体性能影响不大。

总结:

PF文件是Windows系统用于优化程序启动性能的一种缓存文件,存储在特定目录下,并在程序启动时被创建或更新。在数字取证领域,这些文件也有助于分析用户行为。

那既然已经初步了解到了“pf”文件,我们直接下载附件,打开发现需要密码,哎,一开始还很奇怪,想着题目中也没有密码,主办方也没有给密码,那密码难道被主办方遗忘了?后面仔细观察发现这个下载的附件,也就是所谓的“zip”名称,既然是一个“base64”编码,那我们直接进行解码,也是成功得出了密码

需要密码;

在这里插入图片描述

在线base64解码

解码得到;

在这里插入图片描述

zip密码:IAMPASSWORD

最后也是解压成功了,那我们话又说回来了,想要分析“Prefetch”,到底使用什么工具分析呢?

这里给师傅们总结一下;

  1. PECmd

    • 用途:PECmd 是一个命令行工具,用于解析和分析Windows Prefetch文件。它可以提取Prefetch文件中的详细信息,如程序的执行时间、路径、关联的DLL等,非常适合进行数字取证分析。
    • 特点:支持批量处理、生成CSV报告,并能够解析多种Windows版本的Prefetch格式。
  2. WinPrefetchView

    • 用途:WinPrefetchView 是一款简单的GUI工具,用于查看和分析Prefetch文件。它可以快速列出Prefetch目录中的文件,并显示每个文件的详细信息,如程序的启动次数、最后一次运行时间等。
    • 特点:界面友好,操作简单,适合快速查看Prefetch文件内容。

这两个工具是分析Prefetch文件时最常用的,适合不同层次的需求,从简单的查看到深入的取证分析。

那这里我们就先使用“PECmd”来进行分析;

使用命令;

PECmd.exe -d D:\最新下载\PECmd\Prefetch --json output.txt

简单分析一下命令;

就是使用 PECmd 工具来解析位于 D:\最新下载\PECmd\Prefetch 目录下的 Prefetch 文件,并将输出结果以 JSON 格式保存到 output.txt 文件中。

得到;

在这里插入图片描述

最后也是在当前目录下,发现了我们创建的“output”文件;

在这里插入图片描述

选中右键选中“记事本”打开分析即可;

得到;

在这里插入图片描述

题目让我们查找软件使用次数最多的是,所以我们找的使用次数最多的即可,那这里“RunCount”英文翻译过来就是肯定就是执行了,所以我们只需“Ctrl+F”进行定位“RunCount”即可,一个一个慢慢看,因为它后面会跟着一个数字,那个就是软件执行的次数;

得到;

在这里插入图片描述

但是发现并不是执行次数最多的,后面陆陆续续发现了还有更多的38、71等等,也是慢慢查找,确定了最多“82”!

得到;

在这里插入图片描述

至此;

flag{SEARCHFILTERHOST.EXE}

拓展

接着上面我们使用了“PECmd”来进行分析“Prefetch”,那有点师傅就觉得,哎,这是不是有点麻烦了,又是解析,又是记事本打开查找的,是不是有点太麻烦了?哎!确实还真有比这更so easy的方法,就是我们接下来要说到的工具“WinPrefetchView”

这边已提取下载好,那我们这里直接打开工具“WinPrefetchView”

在这里插入图片描述

接着点击“选项”,选中“高级选项”,更改你的“Prefetch”位置即可,最后点击确认即可;

得到;

在这里插入图片描述

我们直接简单给运行次数排个序即可得知,这种方法相比于第一种来说,确实方便了不少,而且更为直观并且清晰的看见;

至此;

flag{SEARCHFILTERHOST.EXE}
4、丢失的资料(45分)

在这里插入图片描述

解题思路

题目巴拉巴拉一大堆其中有用的不多,我们来总结一下,简单来说就是让我们取出其中的客户的手机号最后提交进行一个小写MD5加密,那我们下载附件得到两个文件;

得到;

在这里插入图片描述

简单分析一下什么是“disk”文件以及“.raw”文件;

什么是“disk”文件?

“Disk” 文件通常指的是存储设备的镜像文件,它是对整个硬盘、分区或其他存储介质的精确复制。这种文件包含了磁盘上的所有数据,包括文件系统、分区表、引导记录以及所有存储在磁盘上的文件和文件夹。

  • 用途:常用于备份、克隆磁盘或进行数据恢复。它们也被用于法务分析中,通过磁盘镜像来分析和重建磁盘上存储的数据。
  • 格式:Disk 文件可能以不同的格式存在,如 .img.iso.vmdk(虚拟磁盘文件)等。

什么是“.raw”文件?

.raw 文件通常指的是原始磁盘镜像文件(Raw Disk Image)。这是一种未压缩的镜像格式,包含了磁盘上的所有原始数据,逐字节地精确复制了整个磁盘或分区。

  • 特点

    • 未压缩:.raw 文件不包含任何压缩或修改的数据,是最原始的磁盘镜像格式。
    • 通用性:由于其简单和通用的格式,.raw 文件可以被多种工具和操作系统识别和使用。
  • 用途:在数字取证、数据恢复和虚拟化环境中广泛使用。分析 .raw 文件可以帮助恢复删除的文件、分析文件系统结构以及进行其他低级别的数据操作。

总结

  • Disk 文件:通常指磁盘镜像文件,是对整个存储设备的复制。
  • .raw 文件:是未压缩的磁盘镜像格式,包含磁盘上的原始数据,常用于取证分析和数据恢复。

那话又说回来了,我们知道了是什么文件,那我们怎么分析它们呢?

当然在分析磁盘镜像文件(“disk”文件或“.raw”文件)时,以下是常用的工具推荐:

  1. Volatility 2.6:

    • 用途:Volatility 是一个内存取证分析工具,虽然主要用于内存转储分析,但它也可以用于分析磁盘镜像中的数据。通过与磁盘镜像配合,Volatility 可以提取并分析与内存相关的数据,如进程、网络连接、注册表项等。
    • 特点:功能强大,支持多种操作系统的内存分析,适合深度分析与取证工作。
  2. Elcomsoft Forensic Disk Decryptor:

    • 用途:Elcomsoft Forensic Disk Decryptor 专门用于解密加密的磁盘镜像文件。它支持 BitLocker、TrueCrypt、VeraCrypt 等多种加密系统,并能帮助取证人员从这些镜像文件中提取和分析数据。
    • 特点:强大的解密能力,特别适合在遇到加密磁盘镜像时使用。

总的来说

  • Volatility 2.6:用于内存取证分析,也可结合磁盘镜像进行高级数据提取。
  • Elcomsoft Forensic Disk Decryptor:专门用于解密和分析加密的磁盘镜像文件。

所以这里我们先使用“vol2.6”简单先分析一下“.raw”文件,那我们还是老规矩相信之前看过我“取证”文章的师傅都明白了,第一步肯定先获取镜像的版本是多少,接着才能继续往下取证;

这里我的“vol2.6”在kali中,所以接下来的操作都是基于“kali“(详细”vol2.6请移步至——内存取证例题及Volatility2.6的使用)

话不多说直接上操作,先把文件移动到“vol2.6”同一目录下,右键当前目录打开终端即可开始操作;

在这里插入图片描述

获取镜像版本,我们使用命令;

./vol -f 123.raw imageinfo

得到

在这里插入图片描述

当前版本:Win7SP1x64

这里题目给了“disk”,所以我们直接使用“VeraCrypt”进行挂载即可,但是报错了,并没有如愿挂载成功,那我们就暂时换一个思路,参考一下别的师傅文章,发现可以使用“Elcomsoft Forensic Disk Decryptor”这个工具直接进行挂载也是可以,但是在此之前我们必须先把文件“turecrypt”这个进程的镜像“dump”下来;

那这里可能就有的师傅有疑问了,为什么挂载还需要先将“turecrypt”dump下来?

简单来说

  • 获取解密密钥

    • TrueCrypt 和其他加密软件在运行时,会将解密密钥或相关的加密信息加载到内存中。要解密加密的磁盘镜像,必须要有这些密钥信息。
    • Volatility 可以从内存转储文件(memory dump)中提取这些加密密钥或 TrueCrypt 配置文件等关键数据。
  • Elcomsoft Forensic Disk Decryptor 依赖密钥信息

    • Elcomsoft Forensic Disk Decryptor 需要这些提取出的密钥来解密磁盘镜像。没有正确的密钥,解密过程将无法进行。
    • 通过先使用 Volatility 提取出 TrueCrypt 的解密密钥,Elcomsoft Forensic Disk Decryptor 才能使用这些密钥解锁并读取加密的磁盘镜像。

所以;

  • 1、使用 Volatility 2.6 从内存转储文件中提取 TrueCrypt 相关的密钥信息或配置文件。
  • 2、使用 Elcomsoft Forensic Disk Decryptor,导入这些密钥信息,解密加密的磁盘镜像文件。

那既然要“dump”下“TrueCrypt”,我们肯定得先知道它的进程号是多少,当然所有需要dump下的,肯定都需要先知道进程号是多少·才行;

所以这里我们使用命令;

./vol -f 123.raw --profile=Win7SP1x64 pslist

得到;

在这里插入图片描述

眼睛有点花,进程是有点多的,不过没关系我们直接筛选一下即可;

使用命令;

./vol -f 123.raw --profile=Win7SP1x64 pslist |grep "TrueCrypt"

得到;

在这里插入图片描述

已知进程:17008,所以我们直接使用dump下即可;

使用命令;

./vol -f 123.raw --profile=Win7SP1x64 memdump -p 17008 -D ./

得到;

在这里插入图片描述

接着,打开我们已下载好的工具“Elcomsoft Forensic Disk Decryptor”;

在这里插入图片描述

接着选择——TrueCrypt(container)

在这里插入图片描述

接着按要求导入规定文件即可点击下一步;

在这里插入图片描述

也是成功的破解key,接着我们点击下一步准备挂载;

在这里插入图片描述

这时候可能会弹出一个让你保存的框框,关掉即可,这个不要紧;

在这里插入图片描述

这时候点击“mount”开始挂载,最重要的一步!!!!

这时候返回你的本机,查看“此电脑”,你会发现多了一个"G"盘出来,不要慌!这时候打开你就可以发现里面有一个表格,先复制出来!

在这里插入图片描述

挂载成功才会显示的“G”盘,先把里面的表格取出,接着返回“Elcomsoft Forensic Disk Decryptor”关闭挂载即可;

在这里插入图片描述

打开发现;

在这里插入图片描述

复制出来,因为打开会发现需要密码,也不要慌,这时候我们就使用另外一个工具“PasswareKitForensic”专门用于取证出来的文件爆破密码!还是蛮好用的,推荐大家可以熟悉一下;

也是爆破了几分钟就出来了;

在这里插入图片描述

得到密码:seabedquays

接着我们就打开表格输入密码即可得到题目所说的手机号;

在这里插入图片描述

但是这里还没有完,题目中所说需要我们把手机号进行小写的MD5加密,那这里方法不唯一,看大家喜欢用那种,当然如果是离线,那最好的办法就是把手机号复制到本机的一个空txt文本中,接着使用命令;

在这里插入图片描述

文件“123.txt”当前目录cmd唤出终端,使用命令;

certutil -hashfile .\123.txt md5

得到;

在这里插入图片描述

至此;

flag{6a9902ce8b8cc3cc24db1bafc19e0d65}

当然MD5加密方法不唯一哈,这里仅供参考!!!

5、greatphp(45分)

在这里插入图片描述

解题思路

这里是一题“WEB”,这里由于题目链接已失效,得不到验证答案真伪,但是幸运的是也还有师傅保存了下来,因为这位师傅已经讲解的很完整了,所以我这边暂时没有什么补充的,至此这里推荐大家直接去看原文即可——【WP】江苏省第二届数据安全技术应用职业技能竞赛初赛

数据安全分析赛
一、简单分析

简述:小明所创建的网站受到了攻击,现在需要对数据包进行分析,请你帮助他解答疑惑。

1、问题一:攻击者成功登陆后台的账号密码是?(如账号为admin,密码为admin,则提交admin:admin)

在这里插入图片描述

解题思路

题目巴拉巴拉一大堆,简单来说就是让我们提交黑客成功登录后台的账号密码,那我们这里下载附件,解压得到一个流量包,那这一整大题估计都是基于流量分析了,那我们打开“Wireshark”把下载得到的附件“fenxi1.pcapng”丢进去进行分析;

得到;

在这里插入图片描述

题目中所说的黑客登录成功的账号密码,那既然说了是登录,那在流量包中我们就可以尝试直接搜索关键字符串“Login”,当然这是方法之一;

得到;

在这里插入图片描述

其实这里就是黑客登录成功的后台账号密码,当然除这种方法之外,还有一种,我们可以直接锁定协议“http”,接着打开协议分级,可以看见前面几个都是满的,只要最后一个“HTML”开头,我们可以右键单独选中出来进行查看;

在这里插入图片描述

右键选中即可;

在这里插入图片描述

这时候就会发现只有三条记录,接着一条一条点开分析即可(最后也是在中间那一条记录发现),不管你是直接查看还是右键http追踪分析也好的,都是可以发现黑客成功登录的账号密码;

在这里插入图片描述

得到;

在这里插入图片描述

至此;

flag{elvis:1234}
2、问题二:攻击者使用的webshell文件名称以及执行了什么命令?(如文件名称为123.php命令为ls,则提交123.php:ls)

在这里插入图片描述

解题思路

题目让我们提交黑客使用webshell文件名称执行了什么命令,那这里其实还是可以和上题一样,既然说了webshell了,那多少肯定带一点关键字符窜“webshell”,所以这里我们也还是可以直接搜索关键字符串“webshell”,但是搜索之后并没有发现,但是如果做上题仔细的师傅的话可能会发现,上一题的第三条流量包就是带有“webshell”;

得到;

在这里插入图片描述

这名字还是“webshe11here”,这是生怕我们找不到啊!!,不过刚刚我直接搜索“webshell”的时候并没有发现,我说怎么回事呢,原来它把“webshell”替换成了“webshe11”,那这也破案了!这里往下翻一下就能发现黑客执行的命令,清晰可见!

得到;

在这里插入图片描述

那这里有的师傅可能就有疑问了,你怎么就确认这个是执行的黑客执行的命令呢?

那也没关系嘛,我们也是可以直接右键追踪http流来进行分析的;

得到;

在这里插入图片描述

这里都是默认“URL”编码,所以找一个URL在线解码即可;

URL在线解码

得到;

在这里插入图片描述

也还是一样可以得到:cmd=system(‘cat …/…/…/…/etc/passwd’);

再根据题目的提交格式:123.php:ls

至此;

flag{webshe11here.php:cat ../../../../etc/passwd}
3、问题三:被登录的后台用户对应的邮箱是什么?(如xxx@xxxx.com)

在这里插入图片描述

解题思路

题目问我们被黑客登录后台的用户对应邮箱是什么?那这里既然说了邮箱邮箱,那肯定就是“email”咯!所以我们也还是可以直接锁定关键“email”,不过这里锁定可不只是单纯像之前那样,我们可以直接使用http协议来过滤锁定;

使用命令;

http contains "email"

简而言之,这个语句通常用于过滤或查找包含“email”字样的 HTTP 数据,这也正是我们需要的;

得到;

在这里插入图片描述

这里不难看出包确实有很多个,但很多可能都是重复的,为什么这样说呢?可以从它的大小看出“686”、“781”、“782”当然不否认个别可能会有点偏差,但基本大差不差,所以这里我们从小的包往大的包逐个分析即可;

得到;

在这里插入图片描述

也是在包大小为“781”的里面发现了用户的邮箱,当然这里也看见了我是使用了快速定位查找关键词“elvis”,是的没错,可能观察仔细的师傅就发现了,其实第一题中,我们就已经得到了用户的用户名“elvis”,根据以往多年的邮箱经验多少都会邮箱的用户名,所以我们直接定位“elvis”即可;

至此;

flag{qvkxqelvis@stuvwxyz.com}

总结一下;

其实这三题的流量分析都是基于http协议上的,如果实在是找不到文章中说的这些关键词什么的,大可慢慢翻http,如果观察仔细一些,完全是可以慢慢找出关键信息的,总体来说,这一整大题的流量分析还是很友好的,这个题目给个好评;

二、黑客攻击探秘

简述:某应用程序被攻击了,请分析日志回答以下问题:

1、问题一:请问黑客采取的攻击手段是?(如有英文字母请大写)答案请先base64编码后提交。例如:黑客采取的攻击手段是暴力破解,则先对“暴力破解”四个字进行base64编码,得到5pq05Yqb56C06Kej,则提交5pq05Yqb56C06Kej

在这里插入图片描述

解题思路

题目还是巴拉巴拉一大堆,我们找关键简单来说就是问我们黑客采取的攻击手段是什么,最后进行base64编码在提交即可,那我们下载附件,解压出来是一个“access.log”日志,我们打开进行分析;

得到;

在这里插入图片描述

这里特别明显,一打开就一股子“SQL注入”的味道,里面那么的“select”还有“table”还有“name”那些,以及我们找的“sqli”,这里就差没把答案直接写你脑门上了,不过这里值得一提的就是,“SQL注入”需要进行base64编码在提交(注意SQL注入的“SQL”是大写哈,别问为什么小写不行,因为提交的是错的);

base64在线编码

得到;

在这里插入图片描述

至此;

flag{U1FM5rOo5YWl}
2、问题二:请问黑客最终破解的数据库名、表名以及字段名是什么?请用下划线连接。例如:Database table_column

在这里插入图片描述

解题思路

题目让我们找到黑客破解的数据库,表名,数据库名以及字段是什么,这里我相信对于了解一些SQL注入的师傅那这真是如鱼得水呀,那我们话不多说我们也开始分析;

得到;

在这里插入图片描述

简单分析一下;

172.17.0.1 - - [30/Jun/2024:01:44:02 +0000] "GET /index.php?id=1%20and%20if(substr((select%20column_name%20from%20information_schema.columns%20where%20table_name='flag'%20and%20table_schema='sqli'),5,1)%20=%20'+',1,(select%20table_name%20from%20information_schema.tables)) HTTP/1.1" 200 506 "-" "python-requests/2.26.0"

首先;通过分析这条日志,我们可以从攻击的内容中推测出黑客正在执行一个 SQL 注入攻击,具体地说,这是一个时间盲注或者条件注入攻击。

  • GET 请求

    • "GET /index.php?id=1%20and%20if(...)" 是一个 HTTP GET 请求,目标是 /index.php 页面,其中 id 参数包含了注入的 SQL 语句。
  • SQL 注入语句

    • id=1%20and%20if(substr((select%20column_name%20from%20information_schema.columns%20where%20table_name='flag'%20and%20table_schema='sqli'),5,1)%20=%20'+',1,(select%20table_name%20from%20information_schema.tables))

    解析后,实际的 SQL 语句是:

    1 and if(substr((select column_name from information_schema.columns where table_name='flag' and table_schema='sqli'),5,1) = '+', 1, (select table_name from information_schema.tables))

  • 注入目的

    • 数据库名table_schema='sqli' 指定了数据库名为 sqli
    • 表名table_name='flag' 指定了表名为 flag
    • 字段名:攻击者尝试从 information_schema.columns 表中提取表 flag 中的字段名。
  • SQL 注入的逻辑

    • substr((select column_name from information_schema.columns ...),5,1) 尝试获取 column_name 字段的第5个字符。
    • 然后检查这个字符是否等于 '+'。如果等于 '+',则返回 1(条件为真);否则执行 select table_name from information_schema.tables

所以;

  • 数据库名sqli,因为注入条件中明确指定了 table_schema='sqli'
  • 表名flag,因为注入条件中明确指定了 table_name='flag'

那我们这里也是获得了数据库名以及表名,但是现在差一个字段名,没关系我们可以继续往下看,这里也是翻到了最底下,发现了关键;

得到;

在这里插入图片描述

解码之后简单分析一下;

1 and if(substr((select flag from sqli.flag),43,1) = '+', 1, (select table_name from information_schema.tables))
    • 数据库名sqli,注入语句中明确指出目标数据库为 sqli
    • 表名flag,注入语句中指定了表名为 flag
    • 字段名flag,攻击者正在尝试读取 flag 表中的 flag 字段。
  1. SQL 注入的逻辑

    • substr((select flag from sqli.flag),43,1) 试图获取 flag 字段的第43个字符。
    • 然后检查该字符是否等于 '+'。如果等于 '+',条件为真,则返回 1;否则执行 select table_name from information_schema.tables

攻击意图;

黑客正在通过 SQL 条件注入来逐字符猜测 flag 字段的内容。在这条请求中,黑客试图读取 flag 字段的第43个字符,并检查它是否等于 '+'。如果是,这条请求返回 1,表明条件成立;否则返回其他结果。

至此;

flag{sqli_flag_flag}
3、问题三:黑客最后得到的flag字符串是什么?

在这里插入图片描述

解题思路

题目让我们提交黑客最后获取的flag是什么,那这里我们就需要找到黑客注入成功的每一条记录,并把它全部列举出来,最后组合起来,当然也可以不需要那么多麻烦,也是可以使用工具,那下面我们来进行分析;

得到;

在这里插入图片描述

这里我筛选了黑客的关键句,什么是关键句呢,就是每当注入成功了就不会继续往下进行注入了,就比如;

在这里插入图片描述

从这里面可以看见这一行的“14”到某一节点就停止了,不继续往下了,是因为它匹配字符成功了,flag中就包含这个字符,同样的“15”也是如此,匹配成功了就不继续下去了,接着继续“16”依次往下慢慢推!那我们需要做的就是把这些记录一条一条复制出来,并且记下来,最后进行一个综合,也就是我上面综合成功出来的!

但是这题就有一些奇怪,按道理来说,都是按顺序爆破下去的,但是突然崩到了40,至于中间的那一段,有点怀疑被主办方掐掉了!

所以最后总结出来的也就是:flag{deddcd67-bcgd{db}+

在这里插入图片描述

后面经过许多师傅的讨论与确认删减,确认flag为;

flag{deddcd67-bcfd}

当然这里方法不唯一,可以使用工具,也可以使用脚本来进行统计,但是相对于我这个肯定是更复杂,我的意思是我的方法更复杂,其它的可能会简便很多,这里简单展示一下其它的方法;

“B神”的脚本工具统计;(具体步骤不得而知)

在这里插入图片描述

使用工具“CTF-NetA”统计出来的;(和手工统计的大差不差,不过也是需要删减,工具需要付费)

在这里插入图片描述

至此;

flag{deddcd67-bcfd}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SpringBoot的来访管理系统的设计与实现-

TOC springboot600基于SpringBoot的来访管理系统的设计与实现---论文 绪 论 1.1项目研究的背景 随着科学技术发展,计算机已成为人们生活中必不可少的生活办公工具,在这样的背景下,网络技术被应用到各个方面,为了提高办公生活效…

Android类加载机制简介

一、前言 随着 Android 技术的不断发展,对其内部机制的探索也日益深入。类加载机制作为 Android 运行时环境的核心组成部分之一,影响着应用的性能、安全性以及可扩展性。通过对 Android 类加载机制的研究,开发者可以更好地优化代码结构、提高…

requests请求库入门使用

requests 库是一个功能强大且易于使用的 HTTP 请求库,适用于各种网络请求任务。它简化了 HTTP 请求的发送过程,并提供了丰富的功能来处理各种网络请求和响应。 1.安装 首先,你需要安装 requests 库。如果你还没有安装,可以使用 …

网优学习干货:2.6G仿真操作(1)

2.6G工程建立——整体仿真过程 针对覆盖仿真、速率仿真及蒙特卡洛仿真的说明 覆盖仿真:覆盖仿真主要用于评估网络覆盖性能。基于MassiveMIMO天线、射线传模或经验传模进行覆盖预测,计算链路损耗后,基于栅格分析估算小区覆盖预测的各项指标&am…

前端不同项目使用不同的node版本(Volta管理切换)

前端不同项目使用不同的node版本(Volta管理切换) 使用volta自动切换前端项目的node版本, 每个不同的前端项目,可以使用不同的node版本。Volta这个工具,它允许用户方便地安装、切换和管理不同版本的Node.js,避免了为每个项目手动配…

QT6聊天室项目 核心类与主窗口设计逻辑分析

核心类 核心类设计逻辑 数据结构设计(data.h) 用户信息 用户ID用户网名用户个人签名用户手机号码用户头像聊天会话信息 会话编号会话名称(单聊则是对方网名,群聊则是群名)最新消息会话图标(单聊对方头像&a…

sortable中el-table拖拽及点击箭头上下移动row

效果 安装 npm install sortablejs --save 引入 import Sortable from "sortablejs"; <el-table:data"tableBody"borderref"tableRef":stripe"true":key"tableKey"><el-table-column type"index" la…

driver.find_element 找不到元素的大坑

前端使用element框架。 登录进去使用开发人员工具能看到元素&#xff0c;复制xpath使用find_element死活找不到。 其中一次复制的xpath 注意红色部分: #先点击一下输入框 driver.find_element(By.XPATH,/html/body/div[1]/section/section/section/main/div/div[1]/div/form/…

迎接 Apple Intelligence.一:首次啟用

年 Apple 各平台的重點新功能&#xff0c;相信非 Apple Intelligence 莫屬。Apple 將會將人工智能整合到 iOS 18、iPadOS 18 和 macOS Squoia。在機械學習和大型語言模型加持下&#xff0c;預計 Siri 的對答會更加自然流暢&#xff0c;而且能直接提供答案&#xff0c;而不像過去…

作业8/21

client cpp #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget), socket(new QTcpSocket(this)) {ui->setupUi(this); // 设置 UI 界面// 控件初始状态设置为禁用&#xff0c;防止未连接…

储能系统---德业、禾迈、昱能产品布局及对比

一、公司介绍 德业、昱能、禾迈作为微逆行业的佼佼者&#xff0c;同样代表了中国制造行业的三种技术形态。 德业&#xff1a;代表传统制造行业&#xff0c;转型电力电子领域的代表。 昱能&#xff1a;代表海归人员回国创业&#xff0c;致力于技术本土化的代表。 禾迈&#…

socket 验证字符串是否是有效ip地址

import socketdef is_valid_ip(ip):try:# 尝试将字符串解析为IP地址socket.inet_aton(ip)return Trueexcept socket.error:return False# 测试 print(is_valid_ip("192.168.1.1")) # True print(is_valid_ip("256.256.256.256")) # False print(is_valid…

计算机存储原理——基础

文章目录 存储介质简介1. 光介质存储2. 磁介质存储3. flash(闪存) 硬盘存储原理磁盘组件磁盘是如何存储文件的磁盘的性能 存储接口与存储协议接口类型SCSISCSI的寻址方式windows下查看SCSI寻址 接口与总线与协议的对应关系cpu是如何控制存储的 文件系统常见的文件系统文件系统中…

《数据结构》顺序表+算法代码+动画演示-C语言版

目录 顺序表概念 顺序表初始化 顺序表销毁 顺序表尾插 顺序表尾删 顺序表头删 顺序表头插 顺序表pos位置插入 顺序表pos位置删除 顺序表全部代码如下&#xff1a; 顺序表概念 顺序表是用一段 物理地址连续 的存储单元依次存储数据元素的线性结构&#xff0c;一般情况下…

「OC」CAShapeLayer和UIBezierPath —— 抽屉视图之中圆角cell的实现

「OC」CAShapeLayer和UIBezierPath —— 抽屉视图之中圆角cell的实现 文章目录 「OC」CAShapeLayer和UIBezierPath —— 抽屉视图之中圆角cell的实现前言CALayer的子类CAShapeLayerpath 贝塞尔曲线应用实践参考资料 前言 上次我们学习了CALayer的相关知识 &#xff0c;但好像忘…

2024计算机软考报名流程(电脑报名)

1.24年下半年软考报名时间&#xff0c;各省报名时间不一样&#xff0c; 报名时间大概集中在&#xff1a;24年8月19日&#xff5e;24年9月15日&#xff1b; 报名网站&#xff1a;中国计算机技术职业资格网&#xff1b; 广东&#xff1a;2024年8月21日9:00至29日17:00 安徽&#…

全面调研:19类AI Agent框架的对比与分析

代理&#xff08;Agent&#xff09;指能自主感知环境并采取行动实现目标的智能体&#xff0c;即AI作为一个人或一个组织的代表&#xff0c;进行某种特定行为和交易&#xff0c;降低一个人或组织的工作复杂程度&#xff0c;减少工作量和沟通成本。 背景 目前&#xff0c;我们在…

监听页面滚动到某个元素 设置入场动画

mounted() {this.eventScroll()}, eventScroll() {// 选择你想要监听的元素const targetLogo document.getElementById(logoanimation);// 创建并配置IntersectionObserverconst observer new IntersectionObserver((entries) > {entries.forEach(entry > {if (entry.…

回收站的文件删除了怎么恢复?4个技巧轻松找回文件!

在日常使用电脑的过程中&#xff0c;回收站作为我们删除文件的临时存放地&#xff0c;扮演着重要的角色。然而&#xff0c;有时我们可能会不小心从回收站中删除了重要文件&#xff0c;导致数据丢失。面对这种情况&#xff0c;许多用户会感到焦虑和无助。但别担心&#xff0c;本…

基于Spark实现大数据量的Node2Vec

基于Spark实现大数据量的Node2Vec Node2Vec 是一种基于图的学习算法&#xff0c;用于生成图中节点的低维度、高质量的向量表示。这种算法基于 word2vec 模型&#xff0c;将自然语言处理中的词嵌入技术应用于图结构的节点&#xff0c;以捕捉节点之间的复杂关系。Node2Vec 特别强…