第一个实验吧的题目,不太会做,参考了很多大佬的经验,最后发现这个题目很简单,大概这就是入门的感觉吧!
如果你多次尝试点开题目给的连接,就会发现,系统的密钥一直会变,可是我的密钥却保持一个,这就让我们联想到时间戳的概念。时间戳:它是一个数据,一个什么数据呢?一个用来保存在某个时间已经存在的东西的数据。我目前了解到的本题解题方法有两种:1.手动操作,无需脚本 使用题目中提示的md5解密工具(https://www.somd5.com/)把链接里面的系统的密钥解密获得一个时间戳,例如是s=1547718473,时间是每秒刷新一次,所以你要做的是与时间赛跑,打开网页'http://ctf5.shiyanbar.com/misc/keys/keys.php?key=s+10',然后一直刷新刷新再刷新,直到页面有弹框显示flag,反正我是没有耐心的,真XX慢
2.自己写一个脚本(我是小白,不会,下面是抄别人的代码/汗颜)
1 import time 2 import hashlib 3 import requests 4 5 #获取时间戳 6 def getTime(): 7 return (str(int(time.time()))+3)#这里获取的是当前时间戳的未来3s后的时间 8 9 #md5加密解密10 def md5(src):11 md5 = hash.md5()12 md5.update(src)#更新,刷新13 return (md5.hexdigest())14 15 #获取flag的函数16 def getFlag(timestamp):17 url = 'http://ctf5.shiyanbar.com/misc/keys/keys.php?key='+timestamp18 r = requests.get(url)19 print(r.content)20 21 22 for i in range(50):#机器帮我刷新获取页面信息23 getFlag(getTime9))24 time.sleep(1)25 26 #运行该脚本,结果显示窗口总有一条会显示页面有一个alert弹窗,哈哈,这里面就是flag啦