沙漏安全团队
欢迎真正热爱技术的你!
一、Crypto(密码学)
1、[GKCTF2020]汉字的秘密
题目描述:你能看出汉字的奥秘吗?答案形式:flag{小写字母} 题目附件:
看到题目附件的内容,我们猜测这是当铺密码。当铺密码:就是一种将中文和数字进行转化的密码,也就是汉字有多少笔画出头,就是转化成数字几。例如:王夫 井工 口中 由人:67 84 02 13
所以题目附件中给我们的这些汉字转化为数字就是:69 74 62 67 118 83 72 77 86 55 71 57 82 57 64 63 51 107 这些数字对应的ASCII码为:EJ>CvSHMV7G9R9@?3k 然后接下来我们就用java脚本来进行解密,代码如下:
最后的运行结果为:flag{you_are_good}
2、大帝的密码武器
我们下载附件之后,把附件的后缀改为.zip文件,然后用记事本打开,就能看到题目和密文了。题目附件:
密文:ComeChina 题目中描述的人物是凯撒大帝,所以我们就把题目提供给我们的单词FRPHEVGL用凯撒密码进行解密,在进行第13次解密的时候我们发现了那个有意义的单词SECURITY(对应的汉语为:安全)。
所以我们最后只需要把附件给我们的密文ComeChina用凯撒密码进行解密,偏移量设为13,然后解密就得到flag了。
3、easy_RSA
题目描述:解答出来了上一个题目的你现在可是春风得意,你们走向了下一个题目所处的地方 你一看这个题目傻眼了,这明明是一个数学题啊!!!可是你的数学并不好。扭头看向小鱼,小鱼哈哈一笑 ,让你在学校里面不好好听讲现在傻眼了吧~来我来!三下五除二,小鱼便把这个题目轻轻松松的搞定了。flag格式为cyberpeace{小写的你解出的答案} 题目附件内容:在一次RSA密钥对生成中,假设p=473398607161,q=4511491,e=17 求解出d。
然后我们利用RSA解密工具进行解密,最后得到的125631357777427553就是我们要的结果。
二、Web
1、simple_php
我们打开题目场景 http://220.249.52.133:52512,发现了几行PHP代码,然后我们来分析一下。
<?php
show_source(__FILE__);
include("config.php");
$a=@$_GET['a'];
$b=@$_GET['b'];
if($a==0 and $a){
echo $flag1;
}
if(is_numeric($b)){
exit();
}
if($b>1234){
echo $flag2;
}
?>
这段php代码的意思是:通过get方法得到a和b的值,如果参数a=0且a为真,得到flag1,如果b是整数或者数字字符串,就退出,即b不能为数字,然后如果b大于1234,就得到flag2。其中b不为数字且b大于1234,这个问题涉及到php弱类型比较:松散比较:使用两个等号 == 比较,只比较值,不比较类型。严格比较:用三个等号 === 比较,除了比较值,也比较类型。
php中其中两种比较符号:
==:先将字符串类型转化成相同,再比较
===:先判断两种字符串的类型是否相等,再比较
字符串和数字比较使用==时,字符串会先转换为数字类型再比较
var_dump('a' == 0);//true,此时a字符串类型转化成数字,因为a字符串开头中没有找到数字,所以转换为0
var_dump('123a' == 123);//true,这里'123a'会被转换为123
var_dump('a123' == 123);//false,因为php中有这样一个规定:字符串的开始部分决定了它的值,如果该字符串以合法的数字开始,则使用该数字至和它连续的最后一个数字结束,否则其比较时整体值为0。
举例:
var_dump('123a1' == 123);//true
var_dump('1233a' == 123);//false
然后我们补充条件再输入网址就可以了http://220.249.52.133:52512/index.php?a=%220%22&b=1235a
2、get_post
题目描述:X老师告诉小宁同学HTTP通常使用两种请求方法,你知道是哪两种吗?我们打开题目场景 http://220.249.52.133:36909,发现他让我们请用GET方式提交一个名为a,值为1的变量。
然后我们在提供给我们的网址后边提交一个名为a,值为1的变量,即在网址后边加上/?a=1就可以了,最后提交的网址为http://220.249.52.133:36909/==?a=1== 提交之后又让我们再以POST方式随便提交一个名为b,值为2的变量。
接下来我们需要用到火狐进行post请求,先把上边get之后的名为a,值为1的变量的网址输入上去,然后选择==post data==,提交一个b=2的变量,最后点击Execute执行命令,这样就得到flag了。
目前300+人已加入我们
点击关注(添加星标更好)
带你了解更多网络安全的硬核技术
长
按
关
注
解锁更多精彩内容
平顶山学院· 沙漏安全团队
微信号:SLteam666
本文始发于微信公众号(网络安全攻防训练营):CTF题记——Web&Misc
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论