1. 前言

很久没打比赛了,一直以来忙着兼职做开发

心血来潮,参加了今年的比赛,最后还是差一点打进前十,还是太菜了(同校队伍前三)

最后还由于wp写的太简单被冷嘲热讽,可能都觉得我们是靠一队带起来的。

挺可悲的,全靠自己做的题得到的结果却是这样......

不过释怀了,毕竟第一次参赛,没垫底已经很满足了-.-

1. Misc

Signin

下载题目txt文本文件后,打开后是一串0、1文本,估计是我们使用python通过PIL库将01转换为像素点来构造二维码

使用Py脚本后成功得到二维码图片,但少了一个定位符。

PS补全后,扫码拿到flag

脚本:

from PIL import Image
from zlib import *

MAX = 500
pic = Image.new("RGB",(MAX,MAX))
str = ''   # 数据  

i=0
for y in range(0,MAX):
    for x in range(0,MAX):
        if(str[i] == '1'):
            pic.putpixel([x,y],(0,0,0))
        else:pic.putpixel([x,y],(255,255,255))
        i = i+1
pic.show()
pic.save("flag.png")

日志分析

请从流量当中分析出用户名密码
先下载压缩包,解压发现里面是一个 access.log 日志文件,
url解码后发现在 974 行开始盲注 password,使用二分法猜每一位的 ascii

得出ascii
110 103 106 102 100 115 85 98 100 75
转换后为
ngjfdsUbd

DNS 协议分析

根据题目,直接过滤dns协议,取出数据包域名中的 base64 部分拼接解密得到 flag

Modbus的秘密

根据题目描述 flag在最长的modbus流里面

直接过滤modbus协议

排序后右键追踪tcp流

即可得到Flag

Web

在线电力控制系统消息传送

题目暗示了是 parse_url 的函数解析问题,目录穿越得到flag

parse_url函数是用于解析URL中的参数,包括host,port,参数等等

payload:
dianli.com:80/../flag.txt

进入页面后,输入参数,抓包分析得出POST传参,且变量值里必须带有dianli.com,有进行正则匹配
输入http://dianli.com的情况下提示文件包含错误,函数为file_get_contents
那么就可以读取本地文件了,输入dianli.com再返回上级目录包含flag文件即可

Last modification:December 27th, 2021 at 02:47 pm
如果觉得我的文章对你有所帮助,请随意赞赏