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有关系呢,所以了解一波吧。

CTF-Wechall-第三天上午的更多相关文章

  1. CTF编程题-三羊献瑞(实验吧)解题随记

    题目如下.解题步骤参考的是https://cloud.tencent.com/developer/news/373865中作者的思路. 1.首先,两个四位数相加等于一个五位数,那么这个五位数的第一位必 ...

  2. IT第三天 - 数据类型、转换、Scanner使用

    IT第三天 上午 变量类型 1.6种数值类型:byte.short.int.long.float.double:其中byte是8个字节,short是16字节,int是32字节.long是64字节:日常 ...

  3. No.6__C#

    第六周 周一:今天特别开心,因为来公司的第一个任务完成了,虽然是在组长的帮助下完成的.但是,还是有很多收获,在实际工作中遇到的问题和麻烦远远超出了书本知识 有些问题简直让人抓狂.现在,上班空余期间,也 ...

  4. The Stable Marriage Problem

    经典稳定婚姻问题 “稳定婚姻问题(The Stable Marriage Problem)”大致说的就是100个GG和100个MM按照自己的喜欢程度给所有异性打分排序.每个帅哥都凭自己好恶给每个MM打 ...

  5. 这次GDC China 2015的总结与关卡设计教程的梳理

    去年关卡教程总结链接:听了GDC2014关于关卡设计的讲座的总结与自己的理解 24 号去了GDC china听了讲座,没有听unity没有听VR,听了一天关卡教程,和上次的关卡教程还是有区别的,这次的 ...

  6. 成都大数据Hadoop与Spark技术培训班

    成都大数据Hadoop与Spark技术培训班   中国信息化培训中心特推出了大数据技术架构及应用实战课程培训班,通过专业的大数据Hadoop与Spark技术架构体系与业界真实案例来全面提升大数据工程师 ...

  7. ArcGIS案例学习笔记3_1_ArcMap编辑练习

    ArcGIS案例学习笔记3_1_ArcMap编辑练习 计划时间:第三天上午 目的:ArcMap编辑练习 教程: pdf page67 数据: gis_ex10/ex07 方法: 1.新建shp文件 目 ...

  8. python 回溯法 子集树模板 系列 —— 6、排课问题

    问题 某乡村小学有六个年级,每个年级有一个班,共六个班. 周一到周五,每天上6节课,共计30节课. 开设的课程 一年级:语(9)数(9)书(2)体(2)美(2)音(2)德(2)班(1)安(1) 二年级 ...

  9. ArcGIS案例学习笔记3_1

    ArcGIS案例学习笔记3_1 联系方式:谢老师,135_4855_4328,xiexiaokui#139.com 时间:第三天上午 内容1:ArcGIS 平台介绍 体系结构 Arcgis for d ...

随机推荐

  1. List 集合的操作

    如果当前id存在集合里  去除当前id   如果不在集合里   去除集合最后一个结果Long videoId = 0l; // 当前 IDList<VideoZoneReturnBean> ...

  2. 安装Ubuntu 出现ubi partman crashed,ubi-partman failed with exit code 10

    出现这个问题好像是因为硬盘中有遗留的raid信息导致. 在安装选项中添加 nodmraid参数,再启动进行安装就好了 如果不会添加参数可以参考这篇文章:安装ubuntu时黑屏三种解决办法 就和添加 n ...

  3. requests模块使用

    一.python环境下安装requests Windows下使用win+r打开cmd命令提示符,输入pip install requests,回车. 二.requests模块导入 import req ...

  4. AS 新电脑clone项目报错:Clone failed: Authentication failed for 'https://gitee.com/XXX/Demo.git/'

    在新的电脑上安装Android Studio,并且使用git clone 项目,报以下错误: Clone failed: Authentication failed for 'https://gite ...

  5. 第 1 篇 Scrum 冲刺博客(5.21)

    一.Alpha阶段认领的任务 二.明日任务安排 成员 5.22任务安排 工时 陈芝敏 调用小程序接口获取用户微信登录权限,初始化 1h 在页面显示倒计时 5h 冯晓凤 继续学习微信开放文档 5h 江晓 ...

  6. Adversarial Attack Type I: Cheat Classifiers by Significant Changes

    出于实现目的,翻译原文(侵删) Published in: IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI ...

  7. Java多线程同步_synchronized

    1.synchronized是什么?synchronized是Java中的关键字,是一种同步锁.它修饰的对象有以下几种:1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起 ...

  8. 从 BIO、NIO 聊到 Netty,最后还要实现个 RPC 框架!

    大家好,我是 「后端技术进阶」 作者,一个热爱技术的少年. 觉得不错的话,欢迎 star!ღ( ´・ᴗ・` )比心 Netty 从入门到实战系列文章地址:https://github.com/Snai ...

  9. 牛客网数据库SQL实战解析(11-20题)

    牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...

  10. 为wordpress的分类以及子分类指定固定模版

    在wordpress主题开发有多个不同分类页面时,通常使用category-{slug}.php的方式分别为每个分类开发不同的页面模版,slug为该分类的别名,并且无需其他设置仅仅以此命名即可. 但是 ...