收获 #
拿了团体二等奖和个人二等奖,还不错
我们团队和团体一等奖就差一名,真是太可惜了。我pwn题签到没做出来,后悔…
一定抽空好好学学pwn
部分WriteUp #
misc #
签到 #
直接提交给出的flag
ezpic #
附件:ezpic.png
strings命令文件末尾有半段flag
$ strings ezpic.png
IHDR
IDATx
FDT$
&ffH
iRDB$
...
...
...
...
a73b2de7499d614c}
拖入Stegsolve , 蓝色图层有二维码,扫描得到 flag{cf74bc8a2233179e
flag{cf74bc8a2233179ea73b2de7499d614c}
简单编码 #
题目信息:60=?+?
附件信息
DJ?ELCaecBfBa?eeCAAB
BD?A
fgBghDChab_N
ROT47+ROT13
异常的流量 #
附件:异常的流量.pcap
观察流量包,一个dns查询一个响应,只要一个就行,用命令导出二进制数据
tshark -r 异常的流量.pcap -T fields -Y “ip.src==172.16.178.145” -e dns.qry.name > dnst1.txt
把dnst1.txt的多于的部分删除只留下0和1
观察发现,除去换行符,每行40个字符,共40行,方的,制作二维码
from PIL import Image
from zlib import *
MAX = 40
pic = Image.new("RGB",(MAX,MAX))
str = "这里放置除去换行符的0和1数据"
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("1.png")
生成1.png
拖入windows上的PS,或者LINUX上的GIMP 拿铅笔工具画二维码的定位符
扫描得出二维码
Crypto #
古典之美 #
题目提示:
凯撒?好像不只是凯撒
题目信息
yzabliviiszwve{blbekmnehedtmltfxrhsxhn}
第一层用凯撒到前四个字符一个括号
第二次层我瞎几把点点出来的,奇了怪了。
工控 #
Busss #
附件:Busss.pcapng
modbus流量
挨个看发现有用的数据在modbus.regval_uint16
字段,导出(ip.src为了筛选Query的数据)
tshark -r Busss.pcapng -T fields -Y “ip.src==192.168.87.171” -e modbus.regval_uint16 > bus.txt
Web #
fly_car #
f12打开控制台搜索带flag字样的地方,发现一个rankrankrank.php
访问之后修改coookie的guest为admin就可以得到flag
Re #
exchange #
签到题
#include<stdio.h>
int main(void)
{
int v7[38];
int v8[38];
int flag[38];
v7[0] = 0;
v7[1] = 1;
v7[2] = 2;
v7[3] = 3;
v7[4] = 4;
v7[5] = 13;
v7[6] = 28;
v7[7] = 5;
v7[8] = 20;
v7[9] = 29;
v7[10] = 7;
v7[11] = 26;
v7[12] = 34;
v7[13] = 18;
v7[14] = 14;
v7[15] = 8;
v7[16] = 35;
v7[17] = 24;
v7[18] = 19;
v7[19] = 12;
v7[20] = 23;
v7[21] = 15;
v7[22] = 10;
v7[23] = 36;
v7[24] = 31;
v7[25] = 6;
v7[26] = 27;
v7[27] = 17;
v7[28] = 25;
v7[29] = 32;
v7[30] = 22;
v7[31] = 11;
v7[32] = 30;
v7[33] = 21;
v7[34] = 33;
v7[35] = 9;
v7[36] = 16;
v7[37] = 37;
v8[0] = 102;
v8[1] = 108;
v8[2] = 97;
v8[3] = 103;
v8[4] = 123;
v8[5] = 52;
v8[6] = 55;
v8[7] = 101;
v8[8] = 98;
v8[9] = 102;
v8[10] = 48;
v8[11] = 48;
v8[12] = 56;
v8[13] = 57;
v8[14] = 57;
v8[15] = 97;
v8[16] = 51;
v8[17] = 54;
v8[18] = 97;
v8[19] = 57;
v8[20] = 53;
v8[21] = 98;
v8[22] = 99;
v8[23] = 101;
v8[24] = 48;
v8[25] = 49;
v8[26] = 53;
v8[27] = 53;
v8[28] = 101;
v8[29] = 102;
v8[30] = 101;
v8[31] = 51;
v8[32] = 50;
v8[33] = 98;
v8[34] = 56;
v8[35] = 100;
v8[36] = 97;
v8[37] = 125;
for(int i=0;i<38;i++)
{
flag[v7[i]]=v8[i];
}
for(int j=0;j<38;j++)
{
printf("%c",flag[j]);
}
return 0;
}
数据安全 #
数据脱敏 #
给了一批数据要加星号。
一、姓名脱敏
在处理姓名信息时,采用“姓氏+脱敏字符”的方式进行脱敏。具体而言,如果用户的真实姓名是“张三”,那么脱敏后的姓名将显示为“张*”;若用户的真实姓名为“张三丰”,则脱敏后的姓名应呈现为“张*丰”。
二、身份证号码脱敏
对于身份证号码的脱敏处理,我们采取保留前6位和后4位(包括校验码),而中间部分则用“*”号替代的方式。例如,一个原始的身份证号码为“34052419800101001X”,经过脱敏处理后,它将显示为“340524********001X”。
三、手机号脱敏
在进行手机号脱敏时,我们采用隐藏中间四位数字的策略。举例来说,一个原始的手机号为“13800138000”,经过脱敏后,它将显示为“138****8000”。
用python写脚本,读取文件,然后字符串的切片,切好再写入
ls=""
with open("./person.txt") as f:
for i in f.readlines():
si=i
si=si.split(',')
name=""
idcard=""
phone=""
if(len(si[0])==3):
#三个字
name=si[0][0]+"*"+si[0][2]
elif(len(si[0])==2):
#两个字
name=si[0][0]+"*"
else:
print("error")
idcard=si[1][:6]+"********"+si[1][-4:]
phone=si[2][:3]+"****"+si[2][7:]
new=name+","+idcard+","+phone
ls+=(new)
with open("./sss.txt","w",encoding="UTF-8") as e:
e.write(ls)
很石的代码,别骂我。
data_analy #
这题主要是从给的csv中提取不标准的数据。
给了一个个人信息数据规范文档.pdf
主要就是下面的数据有问题:
1. 月份不在12个月之内
2. 出生日期和身份证对不上
3. 身份证校验码不对
4. 身份证奇偶性别不对
这题没做出来,因为要提交md5值,这题后来上个提示,题目方把CRLF和LF的弄混了。清洗出了100个数据,但是没法交上去,代码太石了,不给看。
总结 #
这个比赛蛮简单的,pwn的签到题没做出来,知道偏移值和后门地址,脚本没写好。。。拿不到flag。。抽空还是要学一学pwn的。