近期某大学在公告版中发送了查询学生考场的EXE文件,一开始我以为是钓鱼的,后来经多方确认属实。
经过断网确认后可知,数据打包在应用内部。
首先尝试了binwalk/foremost无过,只分离出一些bmp文件
拖进IDA,找到动态链接库但是显示unknowlib,静态数据中也没有相关信息。
这里可以采用的方式有两个
1. IDA动态调试
2. DUMP内存
这里使用的是第二种方法,DUMP内存有多种方法,可以采用VS的DEBUG工具进行内存DUMP,但是我们借助任务管理器简单创建完整的转储文件。
Task Manager->Processes->Right Click->Create dump file
通过WinHex查看转储文件,存在相应的明文数据
数据头为
“`… … 49 00 43 00 4F 00 4E 00“`
with open('memory.dmp', 'rb') as f:
data = f.read()
head=data.find(b'M\x00A\x00I\x00N\x00I\x00C\x00O\x00N\x00')
data=data[head+16:]
tail=data.find(b'\x06\x00\x00\x00')
data=data[:tail]
data=data.split(b'\x0d\x0a')
with open('memory.csv', 'w') as f:
for item in data:
item=item.decode('gbk')
f.write(item.replace('@',',')+'\n')
原本为了保护学生隐私的设计反而最终成为了泄露隐私的地方。
这里的信息还包括身份证后三位,也就是说我们可以通过户籍地+生日反推出最后一位。
具体有如下解决方法:
不存储明文,只存储加盐后的学号+姓名+身份证后三位的哈希/md5信息再查询,最后的是为什么不能在线查呢?很急。