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/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 #是可以通过的正确答案 -
以上内容摘自这里,hhhhh,好顶
-
经验教训
- 开根号公式:sqrt()
- 0.5可以写成.5
第二题 Baconian
题目地址
在这个训练挑战中,你必须揭示另一个信息中隐藏的信息。
众所周知,这条信息是用培根密码隐藏的。
同样,每个会话的解决方案都不同,并且由12个随机字符组成。
享受吧!
-
what is 培根密码,我理解的就是用两种状态来表示26个字母,类似于二进制,这两种状态可以是大小写,就像这个题目中,可以是细粗体,也可以是0和1,任何能分成两种状态的都可以好像,隐藏性很np,好吧,就这样,搞一个脚本。
-
脚本就是把大写字母转换成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)
每次刷新都不一样,大家赶紧去试试自己的是啥吧,哈哈哈哈哈哈哈,开心🥰
- 他绿了绿了,奥力给,哈哈哈
4.经验教训- 遇到凡事不要慌,先拍个照发朋友圈😏
- 这个没啥经验好像,就是说python是真的好用就完事了,hhhhhh,学两天不亏
- 培根密码,跟两种状态有关的,不光有可能是摩斯电码,还有可能是培根密码哦~
第三题 LSB
这是一个非常简单,但引人注目的技巧。
你能看到隐藏的解决方案吗?
注意:该解决方案绑定到会话ID,由12个字母组成。
隐藏提示:http://wechall.blogspot.com/2007/11/steganabara-explained.html
感谢buttmonkey制作的图片:)
- 看到lsb,就想到一个np的软件,StegSolve,有木有?图片隐写处理大师
- 比较坑的就是打开软件,加载图片,lsb并没找到什么东西,而是在通道哪里看见了结果
- 给爷绿🤢
- 经验教训
- 有时候出题人坏的很,会给你个错误提示,所以,不要一条路走到黑,适当的转换思路,相信自己的经验教训
第四题 GPG
题目地址
在这个挑战中,你的目标是为你的电子邮件设置gpg加密。
为此,在本地生成您的密钥对并将您的公钥存储在wechall上。
那么你所有通过WeChall会所发送的邮件都是加密的。
要启用GPG加密,请转到您的帐户设置。
完成后,单击下面的按钮发送邮件。
具有挑战性的快乐!
- 要求很明确,把自己的邮件开启GPG加密
- 下载安装GPG Suite
- 安装完自动打开,创建一个密钥
- 导出刚刚创建的公钥
- 在WeChall account settings中上传导出的公钥
- 我上传了公钥,但是没什么反应,只是给我发了一封邮件,但是并没有其他指引,而这个题目也一直没刷新,gg,先不做了,这里有个GPG相关的博文
- 经验教训
- 邮件加密可以用GPG,是基于RSA的,公钥加密,私钥解谜
第五题 Limited Access
题目地址
我试图用.htaccess保护我的页面。
我做得对吗?
为了证明我错了,请访问protected/protected.php。
- 打开网页弹出窗口
- 点击题目中的.htaccess,如下,告诉我们linited access的一些信息,有用的就是第5行的限制了get请求必须是有效用户,那也就是说其他类型的请求可以不是有效用户,因此我们用post进行测试
- hackbar,搞起。
一开始我post空的东西,然后一直没动静,后来才发现必须得有一个内容才行,必须是什么=什么再可以
- post之后直接 green
- 经验教训
- hackbar中post请求时,必须要添加内容才能成功post;
- .htaccess是对登陆用户进行限制的一种方式,中文名:分布式配置文件,哦哦哦我好像之前见过,突然想起来之前在哪道题里边曾经出现过,对,网页重定向、自定义的404界面,都跟这个配置有关系,所以当出现这几种情况的时候,可以考虑查看
.htaccess
文件查看规则,以便于下一步的操作,也算是一个考点吧。
第六题 Limited Access Too
题目地址
哈哈,非常感谢你对第一次挑战的反馈。
尤其要感谢一个特别的人,他给了我一个固定的。htaccess来保护我的页面。
protected/protected.php现在是安全的了:)
为了证明我错了,请再次访问protected/protected.php。
- 打开.htaccess链接,这次限制了更多请求方式,但是并没有禁全,还有
TO
- 然后就直接模仿上一步的进行TO请求就ok了
- what is RewriteEngine On?我一开始以为是跟下边的RewriteEngine有关系呢,所以了解一波吧。
赠人玫瑰🌹手有余香
能帮到你我很高兴
您的赞👍是我前进的动力,奥力给
Thanks for watching!