一.知识点
1.时间戳
1.)时间戳定义
一个能表示一份数据在某个特定时间之前已经存在的、 完整的、 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。
通俗理解:表示某一刻的时间;
2)时间戳作用;
客户端在向服务端接口进行请求,如果请求信息进行了加密处理,被第三方截取到请求包,可以使用该请求包进行重复请求操作。如果服务端不进行防重放攻击,就会服务器压力增大,而使用时间戳的方式可以解决这一问题。
一般,在互联网公司都会在项目中使用时间戳,时间戳主要用于清理缓存,大多数用于版本更新。
防篡改功能:
一般使用的方式就是把参数拼接,比如当前项目AppKey,双方约定的“密钥”,加入到Dictionary字典集中,按ABCD顺序进行排序,最后在MD5+加密.客户端将加密字符串和请求参数一起发送给服务器。服务器按照上述规则拼接加密后,与传入过来的加密字符串比较是否相等。
在当今社会,不论是计算机或是手机,或者其他任何电子设备,都可以通过修改它显示的时间,“穿越”到过去,或者“穿梭”到未来
,我们也可以通过各种软件来修改图片或者视频等等。因此,在网络上,关于时间的信息似乎失去意义,因为几乎任何人都可以修改它。
不过,在区块链中,时间戳永远不会撒谎,因为区块链过去的部分是不能以任何方式进行修改的。而且时间戳是区块链区块包含特定信息的一个过程,它永远存在。
防复用功能:
上面的方式进行加密,就无法解决防复用的问题,这时需要在客户端和服务端分别生成UTC的时间戳,这个UTC是防止你的客户端与服务端不在同一个时区,呵呵,然后把时间戳timestamp拼在密文里就可以了,至于防复用的有效性。
跨平台性:
为了实现跨平台在应用系统中记录时间的时候我们也可以使用记录时间戳的方法做到跨平台性。
好多Linux + Apache的服务器都会对CSS、JS和图片这些静态的内容设置缓存,到了IE这里又会在本地做一个缓存。所以当我们更新了CSS文件之后,常常会出现客户端没有更新,导致显示出现问题,所以使用了时间戳。总之一句话概括使用时间戳的目的就是:禁止缓存css、js,使浏览器同步更新到服务器端最新的静态内容。
3.)工作原理
时间戳服务工作流程:
1,用户对文件数据进行Hash摘要处理;
2,用户提出时间戳的请求,Hash值被传递给时间戳服务器;
3,时间戳服务器对哈希值和一个日期/时间记录进行签名,生成时间戳;
4,时间戳数据和文件信息绑定后返还,用户进行下一步电子交易操作
2.kali中exiftool命令
1.)作用:
查看图片exif信息
还可以用来生成图片一只密码病毒
2.使用
exiftool 图片名
二.实例
misc23
首先这题查了wp是用到kali里面的exiftool 首先进行下载 使用‘exiftool 图片’命令查看图片信息
在里面找到一串提示:
ctfshow{}, UnixTimestamp, DECtoHEX, getflag
意思就是flag以ctfshow{}结构 先用时间戳 再转16进制 即可得到本题flag
我们在History When里面找到时间分别进行转化 然后得到的数据转为16进制 发现不对 再次分别转成16进制即可得到本题flag
misc41
查看wp得到提示 搜索F001即得出flag (看右边的更容易看出来)
参考资料:
https://blog.csdn.net/qq_41566219/article/details/104019967
http://t.csdnimg.cn/kCnWw
http://t.csdnimg.cn/zttwL