2018 海南省大学生网络安全攻防竞赛部分 WriteUp

 

0x00 Welcome

签到题。查看源码,拿到 flag

 

0x01 code php

无提示,御剑扫描拿到index.php2(确实挺坑的)

弱类型比较,payload如下(数组绕过

http://211.149.128.46:20001/b8379a669f5cbf18/7/?key[]=1

 

0x02 Dearm II

提示的很清楚,put 方法提交一个 message(方法体中提交 message)

抓包。repeater,看到了一个 base64 加密的 flag,解码即可

 

0x03 include

抓包找到关键数据包,看样子应该是文件包含。

尝试包含 include1.php 的源码,这里有一个 flag.php,但是被过滤了。提示了一个 include2.php 文件。

拿到 include2.php 的源码,发现 include2.php 的可以利用

但是过滤了 base 关键字,没办法使用 base64 编码读出来 flag.php。但是可以使用rot13(string.rot13)

可以参考这里:

http://www.php.net/manual/zh/wrappers.php.php

payload:

 /e9f5af7deaa28563/11/include2.php?file=php://filter/read=string.rot13/resource=flag

最后 rot13 解码还原即可

flag{79ac2d3112c633687a2447dbb1dc11b2}

 

0x04 数据包分析

2018 红帽杯原题

https://www.freebuf.com/column/171641.html

wireshark打开,发现是个压缩包的十六进制流的拼接

使用 tshark 提取出来数据

tshark -r x.pcapng -e http.request.uri -T fields -Y 'http.request.uri' | grep -P 'name=[A-F0-9]{3}' | awk -F '=' '{printf $2}'

仔细观察是一个 zip 压缩包。改一下前面的十六进制:

504B03040A0001080000739C8C4B7B36E495200000001400000004000000666C616781CD460EB62015168D9E64B06FC1712365FDE5F987916DD8A52416E83FDE98FB504B01023F000A0001080000739C8C4B7B36E4952000000014000000040024000000000000002000000000000000666C61670A00200000000000010018000DB39B543D73D301A1ED91543D73D301F99066543D73D301504B0506000000000100010056000000420000000000

发现出来的压缩包有密码,在源数据包中找到

key=1128%23

输入密码得到 flag

flag{tsh4rk_1s_C00l}

 

0x05 MIX

下载下来解压出来是一个 .git 的文件夹

在自己的服务器上部署,使用 githack 把源码 dump 下来(貌似可以直接搞出来?)

一个加密的 key.zip 加上一个 没用卵用的 tishi

拿到zip文件,测试伪加密,拿到flag

 

0x06 Wireshark

过滤出 http 流,发现了一个 8950 的十六进制开头的 png 图片,提取出来

在协议分级中找到 Line based 的流,作为过滤器过滤出来。

发现是个 rar 压缩文件。这里右键显示明文分组,使用原始数据提取

使用脚本将十六进制数据写到一个 Rar 文件中。

# -*- coding: utf-8 -*-

s = '2d3e7c526172211a0700cf907300000d00000000000000be0f7420902e0031510000326f000002560a16400ba77c471d3309002000000068656c6......fbac943fe86dff0bfc3ec9dfebfd20f276b72fb6425246cd7ecceb3ed9df1d1e73246a768725760750e76c8fcb00a929a97fe0413fc2fbff10c43d7b004007007c3c2d'
f = open('shu.rar', 'wb')
hex_s = s.decode('hex')
f.write(hex_s)
f.close()

解压出来拿到一张图片,总共两张 png 图片,flag 的各一半,拼接拿到 flag

flag{c7265f898a52fcc4}

 

0x07 caesar N

题目只给了一个凯撒加密的变种字符串。

仔细观察结构,发现前面是 66 6c 61 67 对应着 flag 的 ascii 码

e 对应 7 ,往回推 f 对应 6 ,b 对应 3。对应好之后解码即可。

https://wishingstarmoye.com/tools/ascii

 

0x08 美丽

Foremost 分解出文件:

原来猜想是盲水印攻击,但是两张是格式不同的图片,所以搞不了。

后来经过学长提示可以使用 compare 命令试试

compare 命令的解释:

http://blog.chinaunix.net/uid-24109725-id-2629869.html

Compare 对比:生成的图片就是出现差异的数据

出现二维码

扫描得到 flag

 

0x9 迷失的flag

十六进制工具 winhex 打开发现最后面有一个压缩文件

foremost 命令将其中的文件提取出来,出来一个 flag.txt

打开,&#x 后面是十六进制,编码出来是 Unicode 编码

发现是unicode码,继续解码

或者也可以直接提取出 ascii 码,直接在这里继续解码

https://wishingstarmoye.com/tools/ascii

flag{b5e750114efb68791330f3af70cd8fc0}

 

0x10 rot

rot13解码,使用工具解码

 

0x11 解密

栅栏密码解密

 

0x12 Easy

IDA 打开,算法逆向

直接写逆向脚本,解 flag

(完)