【闽盾杯2021】部分wp

前言

还是太菜了现在,web1那个绕过就是没解出来,工控害人不浅啊(。我解了最简单的两题misc,把wp下。

Signin

下载附件下来发现是一个文本,里面是一串只有0和1的数字码,而且个数为250000个,刚好是500*500,因此怀疑这题是将数字转化为二维码,编写脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from PIL import Image
MAX = 500
pic = Image.new("RGB",(MAX, MAX))
str = 那串250000位数字
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")

得到二维码图片,但是缺了一角,我们将其补全:

扫码得出flag。

日志审查

下载附件是一个access.log,一个日志文件。我们用Notepad++打开并进行url解码,得到阅读性更强的日志。观察最前面几条语句,判断当返回长度等于675时为正确回显,而长度为678则是错误回显。根据题目要求我们提供管理员的密码,我们搜索寻找password部分审计:

这里使用了二分法猜测判断每一位ascii码值,当这个码值大于真实值返回678且大于(真实值-1)的时候返回675就可以判断出该位的ascii码值,并参考表格对照。
密码总共十一位,每一位对应的ascii码值分别为:110 103 106 102 100 115 85 98 100 75
转化成密码即flag为:ngjfdsUbdK

总结

今年不是原题杯了,而且很多题目都披着工控的皮,一下觉得不适应。还是要多想、多做、多练。