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!}
本文介绍了通过源码分析获取note_id的过程,揭示了一个可能的session爆破攻击。作者展示了如何利用时间戳和随机数生成user_id和note_id,并成功找到特定note_id的对应时间戳和user_id。此外,还讨论了针对加密磁盘的破解方法,包括使用john和hashcat工具,以及磁盘恢复软件R-TUDIO来恢复隐藏的flag。整个过程涉及Web安全、密码学和数据恢复等多个方面。

1494

被折叠的 条评论
为什么被折叠?



