From 8c1c14f61a0d965e6e77b994189e40a9e18e0e78 Mon Sep 17 00:00:00 2001 From: ZoEplA <33739249+ZoEplA@users.noreply.github.com> Date: Wed, 24 Jan 2018 23:37:55 +0800 Subject: [PATCH 1/5] Add files via upload --- Homework/1Team/ZoEplA/2018-01-23-05.md | 89 ++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 Homework/1Team/ZoEplA/2018-01-23-05.md diff --git a/Homework/1Team/ZoEplA/2018-01-23-05.md b/Homework/1Team/ZoEplA/2018-01-23-05.md new file mode 100644 index 0000000..d83d3d9 --- /dev/null +++ b/Homework/1Team/ZoEplA/2018-01-23-05.md @@ -0,0 +1,89 @@ +### 消息认证码 +消息认证码简称MAC,是一种确认完整性并进行认证的技术。它可以接受任意长度的消息和一个发送者与接受者之间的共享秘钥,并输出固定长度的数据,这个数据称为MAC值。这里大家可以发现,消息认证码跟单项散列函数很像,都是接受任意长度的消息,生成固定长度的输出。只不过消息认证码需要一个发送者和接受者共享的秘钥。所以大家可以这么理解:消息认证码是一种与秘钥相关的单向散列函数。 + ++ 参考学习网站: +https://github.com/DigBullTech-sec0cr/Cryptology/blob/master/Tutorials/%E5%AF%86%E7%A0%81%E5%AD%A6%E5%9F%BA%E7%A1%80%EF%BC%88%E5%9B%9B%EF%BC%89.md + +#### HMAC +HMAC是使用单向散列函数来构造消息认证码的方法,任何高强度的单向散列函数都可以用于HMAC。 + +#### PGP +PGP是一个很好用的密码软件,它几乎具备现代密码学所必须的所有功能。包括:对称密码、公钥密码、数字签名、单向散列函数、证书、数据压缩与解压等。 +**信任网** +使用PGP时,确认自己得到的公钥的合法性是非常重要的。因为公钥可能会通过中间人攻击被替换。但是PGP却没有使用认证机构,而是采用信任网的形式。在这种形式中,PGP的用户会互相对对方的公钥进行数字签名。信任网的要点是不依赖认证机构,而是建立人与人之间的信任关系。 + +### 作业: +实践地址: +http://www.hetianlab.com/cour.do?w=1&c=C172.19.104.182014112610295700001 + +在CTF比赛中,还有一些诸如莫斯密码、混合编码等简单的加密方式,大家可以通过实际的编解码操作来熟悉它们。 + + 合天平台的在线学习中的: + CTF-MISC练习之编码1 + CTF-MISC练习之编码2 + CTF-MISC练习之编码3 + CTF-MISC练习之编码4 + CTF-MISC练习之编码5 + + +#### CTF-MISC练习之编码1 ++ Exif是一种图象文件格式,它的数据存储与JPEG格式是完全相同的。实际上Exif格式就是在JPEG格式头部插入了数码照片的信息,包括拍摄时的光圈、快门、白平衡、ISO、焦距、日期时间等各种和拍摄条件以及相机品牌、型号、色彩编码、拍摄时录制的声音以及全球定位系统(GPS)、缩略图等。简单地说,Exif=JPEG+拍摄参数。( 注意:Windows XP自带的文件属性选项可能无法正常查看Exif信息) ++ 访问一个目录形式的URL时,如果同时存在index.php和index.html,Apache服务器会优先解析前者 ++ `string.lowercase`:生成所有的小写字母 ++ 任务一:【B】反查MD5哈希值21232f297a57a5a743894a0e4a801fc3得到明文为Admin ++ 任务二:【D】同一个目录下不能同时存在多个index页面(如index.php和index.html等) ++ 任务三:【C】1688 +##### 四位的md5爆破 + + #String模块中的常量: + #string.digits:数字0~9 + #string.letters:所有字母(大小写) + #string.lowercase:所有小写字母 + #string.printable:可打印字符的字符串 + #string.punctuation:所有标点 + #string.uppercase:所有大写字母 + def crackMd5(dst): + dst = dst.lower() + for a in string.digits: + for b in string.digits: + for c in string.digits: + for d in string.digits: + word = a + b + c +d + "_heetian" + tmp = hashlib.md5(word).hexdigest() + if dst == tmp: + return word + return None + if __name__ == "__main__": + raw_input(crackMd5("158e64cfc9991940700acc5dc0f310e3")) + + +#### CTF-MISC练习之编码2 +##### 一些知识 ++ referer即HTTP来源地址,是HTTP请求头中的一个字段,用来表示从哪儿链接到目前的网页,采用的格式是URL。比如在Google中搜索“百度”,点击其中的第一个搜索结果访问www.baidu.com,那么,从百度的服务器来看,这次点击产生的HTTP请求头中的referer字段的值便是www.google.com。 ++ 现在很多网站通过Referer来判断访问来源,或者是用于图片防盗链等。但是HTTP请求头可以轻易的被修改,因此Referer并不是可靠的。 ++ robots.txt是一种存放于网站根目录下的文本文件,它通常用于向搜索引擎的爬虫表明,网站中的哪些内容是可以抓取的、哪些内容是不可以抓取的。robots.txt协议并不是一个规范,而只是约定俗成的,所以并不能保证网站的隐私。robots.txt中可以使用Disallow语法来告诉搜索引擎哪些内容不应该被抓取。 ++ X-Forwarded-For是用来识别通过HTTP代理方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段。这也是为什么有时候通过代理访问目标网站时原始IP地址仍然能够被检测出来的原因,因为代理服务器自动在HTTP请求头中增加了X-Forwarded-For字段,并把原始的IP地址设置为该字段的值。 ++ [HTTP请求头响应头中常用字段详解](https://www.jianshu.com/p/6e86903d74f7) ++ 任务一:【C】可以通过referer字段的值来进行图片防盗链处理 ++ 任务二:【D】单词security在九宫格输入法下对应的数字编码为7328789 ++ 任务三:【D】keep_going +#### CTF-MISC练习之编码3 +##### 一些知识 ++ URL编码会将字符转换为百分号加十六进制的形式。通常URL中只能包含ASCII中的部分可见字符,如果URL中有汉字,就必须编码后使用。 ++ MD5只有32个字符 ++ [各种字符集和编码详解](https://www.cnblogs.com/happyday56/p/4135845.html) + ++ 任务一:【D】6865657469616E ++ 任务二:【B】%68%65%65%74%69%61%6E ++ 任务三:【C】104 101 101 116 105 97 110 +#### CTF-MISC练习之编码4 + ++ 任务一:【B】差异数据大小为40997字节 ++ 任务二:【C】urrgvna ++ 任务三:【D】大写字母B +#### CTF-MISC练习之编码5 ++ UUencode是一种二进制到文字的编码,它不是MIME编码中一员。最早在Unix 邮件系统中使用,全称Unix-to-Unix encoding。它也是定义了用可打印字符表示二进制文字一种方法,并不是一种新的编码集合。Uuencode将输入文本以每三个字节为单位进行编码,如果最后剩下的资料少于三个字节,不够的部份用零补齐。三个字节共有24个Bit,以6-bit为单位分为4个组,每个组以十进制来表示所出现的字节的数值。这个数值只会落在0到63之间。然后将每个数加上32,所产生的结果刚好落在ASCII字符集中可打印字符的范围之中。跟Base64具有非常多的类似,也做了一些特殊转码说明。 ++ [UUencode在线解密](http://www.mxcz.net/tools/uuencode.aspx) ++ 任务一:【D】JSFuck是一种新的编程语言 ++ 任务二:【B】':&5E=&EA;@`` ++ 任务三:【A】0 \ No newline at end of file From a95f330f0b062fb4011f017e9d7e3f2eb56c984c Mon Sep 17 00:00:00 2001 From: ZoEplA <33739249+ZoEplA@users.noreply.github.com> Date: Wed, 24 Jan 2018 23:39:22 +0800 Subject: [PATCH 2/5] Rename 20180111-04.md to 2018-01-11-04.md --- Homework/1Team/ZoEplA/{20180111-04.md => 2018-01-11-04.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Homework/1Team/ZoEplA/{20180111-04.md => 2018-01-11-04.md} (100%) diff --git a/Homework/1Team/ZoEplA/20180111-04.md b/Homework/1Team/ZoEplA/2018-01-11-04.md similarity index 100% rename from Homework/1Team/ZoEplA/20180111-04.md rename to Homework/1Team/ZoEplA/2018-01-11-04.md From a7efe39448065e9c869c6629bd527f4c25ae9ff2 Mon Sep 17 00:00:00 2001 From: ZoEplA <33739249+ZoEplA@users.noreply.github.com> Date: Wed, 24 Jan 2018 23:39:52 +0800 Subject: [PATCH 3/5] Rename 20171125-03.md to 2017-11-25-03.md --- Homework/1Team/ZoEplA/{20171125-03.md => 2017-11-25-03.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Homework/1Team/ZoEplA/{20171125-03.md => 2017-11-25-03.md} (100%) diff --git a/Homework/1Team/ZoEplA/20171125-03.md b/Homework/1Team/ZoEplA/2017-11-25-03.md similarity index 100% rename from Homework/1Team/ZoEplA/20171125-03.md rename to Homework/1Team/ZoEplA/2017-11-25-03.md From 0d6392190d3b3796dd560f3e0c7562d3ebaba546 Mon Sep 17 00:00:00 2001 From: ZoEplA <33739249+ZoEplA@users.noreply.github.com> Date: Wed, 24 Jan 2018 23:40:07 +0800 Subject: [PATCH 4/5] Rename 20171117-01.md to 2017-11-17-01.md --- Homework/1Team/ZoEplA/{20171117-01.md => 2017-11-17-01.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Homework/1Team/ZoEplA/{20171117-01.md => 2017-11-17-01.md} (100%) diff --git a/Homework/1Team/ZoEplA/20171117-01.md b/Homework/1Team/ZoEplA/2017-11-17-01.md similarity index 100% rename from Homework/1Team/ZoEplA/20171117-01.md rename to Homework/1Team/ZoEplA/2017-11-17-01.md From ce24c7fd7b922467ef44033d131a6a9424242b75 Mon Sep 17 00:00:00 2001 From: ZoEplA <33739249+ZoEplA@users.noreply.github.com> Date: Wed, 24 Jan 2018 23:40:22 +0800 Subject: [PATCH 5/5] Rename 20171122-02.md to 2017-11-22-02.md --- Homework/1Team/ZoEplA/{20171122-02.md => 2017-11-22-02.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Homework/1Team/ZoEplA/{20171122-02.md => 2017-11-22-02.md} (100%) diff --git a/Homework/1Team/ZoEplA/20171122-02.md b/Homework/1Team/ZoEplA/2017-11-22-02.md similarity index 100% rename from Homework/1Team/ZoEplA/20171122-02.md rename to Homework/1Team/ZoEplA/2017-11-22-02.md