加入了安全协会以后,第一个月大家一起在WeChall上刷题。定下的规则是每三天提交一次积分和对应题目的writeup,所以这其实是几天之前写的啦~
之前看过一些安全方面的知识,但是没有具体去操作过,所以刚开始磕磕绊绊的,遇到什么就要去查一下。还顺便提高了写代码的能力23333有些题可以用小工具帮助解题,也可以自己敲代码跑出来。本着想顺便提升代码量的想法,自己也堆了一些代码。
下面就是正式的writeup!
Training: Get Sourced
题目下看到了这句 : Use View Sourcecode to get it
于是打开网页源代码。一开始看到type=“hidden”(定义隐藏字段。隐藏字段对于用户是不可见的。隐藏字段通常会存储一个默认值,它们的值也可以由 JavaScript 进行修改。)很兴奋,试了一下后面的value发现不对。然后把源代码的另一处发现了答案!
Training: Stegano I
找一个十六进制编译器就能看到答案啦。
友情链接:
winhex+010editor(windows64位)
->链接:https://pan.baidu.com/s/1j4qGUldIkhY6cQdxx5NbVg 密码:0iqg
需要其他版本的010editor戳这里
->https://www.sweetscape.com/download/010editor/
Training: Crypto - Caesar I
凯撒加密法是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。
找个小工具用或者自己手写代码叭。
Training: WWW-Robots
阅读了一下给出的Robots exclusion standard的wiki解释,这个标准规定了如何通知网络机器人的领域的网站不应该被处理或扫描。
把出现的内容加入,继续访问,得分。
Training: ASCII
直接用ASCLL码来解:
#include<stdio.h>
int main()
{
int a;
while(scanf("%d",&a)!=EOF)
printf("%c",a);
return 0;
}
Encodings: URL
直接对题面进行解码。
友情链接:
CTF在线工具:http://ctf.ssleye.com/
Prime Factory
首先看到第一句的题意:找出两个100万个以上的质数,他们的每一位数字加起来也都是质数。下面给出了解释和一个样例,那么就写个程序来暴力跑一下叭。
按我们要找的数字的要求可以写出两个函数:一个是判断质数,另一个是判断每位加和也是质数。自己写个代码叭。如果代码能力有点差实在写不出来,可以稍微看一眼~
#include<iostream>
#include<math.h>
using namespace std;
const long long million = 1000000;
bool test(long long a)
{
for(int i=2;i<=sqrt(a);i++)
{
if(!(a%i))
return 0;//不是质数
}
return 1;//是质数
}
bool testt(long long a)
{
long long sum=0;
while(a)
{
sum=sum+a%10;
a=a/10;
}
if(test(sum))
return 1;
else
return 0;
}
int main()
{
for (long long i=million+1,ans=0;ans<2;i++)
{
if(test(i))
if(testt(i))
{
ans++;
cout<<i<<endl;
}
}
return 0;
}
Training: Encodings I
首先打开题目里附的文件,可以用来做编码转换。通过体面里给的最有可能是英文的句子以及全是01编码推断使用ASCII编码。先熟悉一下这个小工具的用法,默认是八位一组发现转成ASCII码后出现乱码。于是改为七位一组,成功共获得答案。