安恒 6月月赛 简单的日志分析、又是crackme和你认识我吗?
一天一道CTF题目,能多不能少
0x001 Misc 简单的日志分析
题目链接:
链接:https://pan.baidu.com/s/1xxiCe_oTRcoIN-eFEfmTSg
提取码:7j26
复制这段内容后打开百度网盘手机App,操作更方便哦
解压打开,日志文件分析,发现是对一个网站的盲注的日志,
然后就开始寻找flag,时间一样的就是说明正确,有20多个字符,,,
眼睛找瞎,,,,,,,,
注意第28的那,时间差了一秒:
最后得到的flag:
flag{50f1ea7cf1544106e3555c4cc2cf4087}
0x002 RE 又是crackme
题目链接:
链接:https://pan.baidu.com/s/1uNH7OfeHo23FvtxZLaIM8Q
提取码:pls3
复制这段内容后打开百度网盘手机App,操作更方便哦
下载解压,发现是EXE文件,
查壳,么得,
运行得到:
直接用OD打开,查看字符串:
点击进去,,,
在%s那下个断点,因为如果你输入正确他也只会显示OK
而且后面有一个比较,所以我们设一个断点来查看一下后面会怎么走
直接F9执行到断点处,
之后再一步一步执行,按F8
输入就随便输入
这时候注意观察各个寄存器中的值:
学过汇编应该知道,test和cmp差不多,都是进行比较的,
所以flag也就很清晰了:
Dbapp{crackme100}
0x003 crypto 你认识我吗?
题目链接:
链接:https://pan.baidu.com/s/19u0j-f7dTzoYDTckrI_T1A
提取码:ruh5
复制这段内容后打开百度网盘手机App,操作更方便哦
解压有两个文件:
打开py文件得到加密的代码:
from message import plainText
from message import key
pla_len = len(plainText)
key_len = len(key)
print "plainText length is %d" % pla_len
print "key length is %d" % key_len
pla_matrix = []
for i in range(0,pla_len,key_len):
pla_matrix.append(list(plainText[i:i+key_len]))
ord_key = []
for k in key:
ord_key.append(ord(k))
ord_key = sorted(ord_key)
output_order = []
for i in ord_key:
output_order.append(key.find(chr(i)))
for i in output_order:
for s in pla_matrix:
print s[i],
print "\n"
又打开加密后的txt文件:
plainText length is 77
key length is 11
y o s t f Y z
i d i h i a A
s h l c g _ g
n k s i o g m
k n i f n { a
t u t n p f e
h l h s t l _
I o t m y s r
h a u r i A }
o w c e l o i
u t o n a u n
看上去好像是明文长度为77,key是11,
研究半天,发现key里面肯定是不一样的字符或数字,
否则数组肯定有一样的
而且明文好像也没经过什么加密
估摸着给出的就是明文,就是变换了一下行列
于是自己就开始手动变换,,,
得到如下:
I o t m y s r
t u t n p f e
h l h s t l _
i d i h i a A
n k s i o g m
k n i f n { a
y o s t f Y z
o w c e l o i
u t o n a u n
s h l c g _ g
h a u r i A }
拼起来不就是一句话??也不难拼嘛,,,
于是得到flag:
flag{You_Are_Amazing}
提交是把flag内容取出来经过MD5加密即可得到真的flag:
f4803c620142b6fb6c3c3e9bd4876247
OK啦,菜鸡就只能做这么几个题目了,
搞了一下午,没复习
但是快乐,啊哈哈哈哈哈