CTF-Wechall-第三天上午

2020.09.11

奥力给,Wechall这平台不错哦,感觉是一个循序渐近的过程,可能是我是我这么排序的原因吧,hhhhh🥶

做题

第一题 Math Pyramid

题目地址

这是数学挑战的第一个版本。
你必须为一个几何函数找到最短的解(不超过9个字符)。
故事是这样的:

Pharao momo想要一个基于方形的金字塔,其中所有的8条边都是相同的长度“a”。
请给他一个公式来计算给定边长的体积。
你的同事已经画出了金字塔从正面看的样子:

公式:一个a^3/3sqrt(aa)
符号提示:sqrt(), a^2, 等等。

享受吧!

感谢momo提供的想法,感谢Jinx提供的测试,感谢paipai提供的EvalMath副本,感谢Miles Kaufmann编写的EvalMath课程。

  1. 这是一道数学题吧……

  2. 也就是一个四棱锥呗,1/3底面积高,1/3a2*sqrt(a2-(a^2)/2) = sqrt(2)a^3/6
    这是一道比较“有趣的”题目。题目看似是一道数学题,而且是很简单的数学题。但是最难的地方就在限制表达式要不多于9个字符。
    以下是我自己答案的变迁过程:
    a^3/(3*sqrt(2))
    a^3/sqrt(18) #省掉括号和乘号
    a3/180.5 #是的,你没看错,题目的sqrt()是迷惑你的
    a3/18.5 #是可以通过的正确答案

  3. 以上内容摘自这,hhhhh,好顶

  4. 经验教训

    • 开根号公式:sqrt()
    • 0.5可以写成.5

第二题 Baconian

题目地址

在这个训练挑战中,你必须揭示另一个信息中隐藏的信息。
众所周知,这条信息是用培根密码隐藏的。
同样,每个会话的解决方案都不同,并且由12个随机字符组成。
享受吧!

  1. what is 培根密码,我理解的就是用两种状态来表示26个字母,类似于二进制,这两种状态可以是大小写,就像这个题目中,可以是细粗体,也可以是0和1,任何能分成两种状态的都可以好像,隐藏性很np,好吧,就这样,搞一个脚本。

  2. 脚本就是把大写字母转换成a,把小写字母转换成b,每五个隔个空格,let‘s go!比较caodan的是他有两种对应方式

import re #正则表达式
# 培根字典1
BACONIAN_DIC_1 = [
    "aaaaa", "aaaab", "aaaba", "aaabb", "aabaa", "aabab", "aabba",
    "aabbb", "abaaa", "abaab", "ababa", "ababb", "abbaa", "abbab",
    "abbba", "abbbb", "baaaa", "baaab", "baaba", "baabb",
    "babaa", "babab", "babba", "babbb", "bbaaa", "bbaab",
]
# 培根字典2
BACONIAN_DIC_2 = [
    "AAAAA", "AAAAB", "AAABA", "AAABB", "AABAA", "AABAB", "AABBA",
    "AABBB", "ABAAA", "ABAAA", "ABAAB", "ABABA", "ABABB", "ABBAA",
    "ABBAB", "ABBBA", "ABBBB", "BAAAA", "BAAAB", "BAABA",
    "BAABB", "BAABB", "BABAA", "BABAB", "BABBA", "BABBB",
]
letters1 = [
    'A', 'B', 'C', 'D', 'E', 'F', 'G',
    'H', 'I', 'J', 'K', 'L', 'M', 'N',
    'O', 'P', 'Q', 'R', 'S', 'T',
    'U', 'V', 'W', 'X', 'Y', 'Z',
]
letters2 = [
    'a', 'b', 'c', 'd', 'e', 'f', 'g',
    'h', 'i', 'j', 'k', 'l', 'm', 'n',
    'o', 'p', 'q', 'r', 's', 't',
    'u', 'v', 'w', 'x', 'y', 'z',
]
miwen = open('./miwen.txt').readline()
tem = '' #临时存储
res = '' #结果
for i,enu in enumerate(miwen):
    if re.match('[a-z]',enu):
        tem += 'a' #小写字母累加a
    if re.match('[A-Z]',enu):
        tem += 'b' #大写字母累加b
    if len(tem)==5: # 满五个进行一次匹配,匹配成功就添加结果,不成功就添加?
        if tem in BACONIAN_DIC_1:
            res += letters2[BACONIAN_DIC_1.index(tem)]
        else:
            res += '?'
        tem = ''
print(res)


每次刷新都不一样,大家赶紧去试试自己的是啥吧,哈哈哈哈哈哈哈,开心🥰

  1. 他绿了绿了,奥力给,哈哈哈

    4.经验教训
    • 遇到凡事不要慌,先拍个照发朋友圈😏
    • 这个没啥经验好像,就是说python是真的好用就完事了,hhhhhh,学两天不亏
    • 培根密码,跟两种状态有关的,不光有可能是摩斯电码,还有可能是培根密码哦~

第三题 LSB

题目地址

这是一个非常简单,但引人注目的技巧。
你能看到隐藏的解决方案吗?

注意:该解决方案绑定到会话ID,由12个字母组成。

隐藏提示:http://wechall.blogspot.com/2007/11/steganabara-explained.html

感谢buttmonkey制作的图片:)

  1. 看到lsb,就想到一个np的软件,StegSolve,有木有?图片隐写处理大师
  2. 比较坑的就是打开软件,加载图片,lsb并没找到什么东西,而是在通道哪里看见了结果
  3. 给爷绿🤢
  4. 经验教训
    • 有时候出题人坏的很,会给你个错误提示,所以,不要一条路走到黑,适当的转换思路,相信自己的经验教训

第四题 GPG

题目地址

在这个挑战中,你的目标是为你的电子邮件设置gpg加密。
为此,在本地生成您的密钥对并将您的公钥存储在wechall上。
那么你所有通过WeChall会所发送的邮件都是加密的。
要启用GPG加密,请转到您的帐户设置。
完成后,单击下面的按钮发送邮件。

具有挑战性的快乐!

  1. 要求很明确,把自己的邮件开启GPG加密
  2. 下载安装GPG Suite
  3. 安装完自动打开,创建一个密钥

  4. 导出刚刚创建的公钥
  5. 在WeChall account settings中上传导出的公钥
  6. 我上传了公钥,但是没什么反应,只是给我发了一封邮件,但是并没有其他指引,而这个题目也一直没刷新,gg,先不做了,这里有个GPG相关的博文
  7. 经验教训
    • 邮件加密可以用GPG,是基于RSA的,公钥加密,私钥解谜

第五题 Limited Access

题目地址

我试图用.htaccess保护我的页面。
我做得对吗?

为了证明我错了,请访问protected/protected.php。

  1. 打开网页弹出窗口
  2. 点击题目中的.htaccess,如下,告诉我们linited access的一些信息,有用的就是第5行的限制了get请求必须是有效用户,那也就是说其他类型的请求可以不是有效用户,因此我们用post进行测试
  3. hackbar,搞起。
    一开始我post空的东西,然后一直没动静,后来才发现必须得有一个内容才行,必须是什么=什么再可以
  4. post之后直接 green
  5. 经验教训
    • hackbar中post请求时,必须要添加内容才能成功post;
    • .htaccess是对登陆用户进行限制的一种方式,中文名:分布式配置文件,哦哦哦我好像之前见过,突然想起来之前在哪道题里边曾经出现过,对,网页重定向、自定义的404界面,都跟这个配置有关系,所以当出现这几种情况的时候,可以考虑查看.htaccess文件查看规则,以便于下一步的操作,也算是一个考点吧。

第六题 Limited Access Too

题目地址

哈哈,非常感谢你对第一次挑战的反馈。
尤其要感谢一个特别的人,他给了我一个固定的。htaccess来保护我的页面。
protected/protected.php现在是安全的了:)

为了证明我错了,请再次访问protected/protected.php。

  1. 打开.htaccess链接,这次限制了更多请求方式,但是并没有禁全,还有TO
  2. 然后就直接模仿上一步的进行TO请求就ok了
  3. what is RewriteEngine On?我一开始以为是跟下边的RewriteEngine有关系呢,所以了解一波吧。
posted @ 2020-09-11 12:01  乔悟空  阅读(276)  评论(0编辑  收藏  举报