[SWPUCTF 2022 新生赛]js_sign
打开后先随便填入,点击check,发现出现弹窗,并且尝试抓包抓不到,说明是js前端
查看源码找到js文件
补充:
btoa函数是JavaScript中的一个全局函数,用于将二进制字符串编码为Base64格式的ASCII字符串。
下面那串字符base64解码后可以发现是tapcode,是敲击码
补充:
敲击码
敲击码是一种用于编码文本的电信码。tapcode(敲击码)是敲击码的一个变种,它是在战争中广泛使用的一种秘密通信系统。它的特点是将字母和数字编码为一个 5 x 5 的网格中的敲击位置。
tapcode 网格由 25 个格子组成,每个格子可以被视为一个象限。通过敲击格子来表示字母和数字。例如,字母 A 可以表示为象限 1,1,即第一行第一列的格子。
tapcode 的好处是它可以被用于非常嘈杂的环境,比如战场。通过敲击格子来传递信息,相对于语音也更难被听到和识别。
尽管 tapcode 已经不像在战争中那么重要了,但它依然有一定的实际应用。例如,有些人可能使用它作为一种较为私密的应急通信方式。
不同于 Morse code,JavaScript 中并没有内置的 tapcode 编码或解码函数。但你可以使用 JavaScript 编写代码来实现它。你可以按照以下步骤来编写 tapcode 编码和解码函数:
1.创建 tapcode 的网格、字母和数字的映射,并定义一个特殊映射,用来表示空格。
2.编写函数来接受字符串并将其转换为按敲击位置表示的 tapcode 序列。可以使用循环在每个字母和数字中查找其相应的敲击位置,并将它们转换为按序列排序的敲击代码。
3.编写函数来接受 tapcode 序列并将其解码为原始文本。可以使用循环检查序列中的每个位置,并在映射中查找相应的字母或数字来转换它们。如果找到空格的标志,则将其添加到解码文本中。
得到flag:NSSCTF{youfindflagbytapcode}
[HGAME 2023 week1]Classic Childhood Game
打开看到是个游戏界面,大概率是需要找到通关的那个代码修改
查看源码发现有很多js,打开后可以看到分别是物品、图标、怪物、地图、变量、事件、错误集合,事件集合中有通关的方法,找到那段代码就知道flag如何隐藏了
这一面的代码写的就是通关结局,有很多种,都可以得到flag,这时候看到最上面的那串字符
很明显是16进制,解密试一下
去除乱码后得到:YUdkaGJXVjdabFZ1Ym5sS1lYWmhjMk55YVhCMEprWjFibTU1VFRCMFlVYzBiV1Y5
再用两次base64,就可以得到flag,这里参考了一下别人的wp,发现还有另外一种解法,运用了mota()函数,这个函数是一个解密函数,控制台运行就可以了
得到flag
[FSCTF 2023]webshell是啥捏
打开后可以看到一个充满表情包的界面
补充:
webshell黑客经常使用的一种恶意脚本,其目的是获得服务器的执行操作权限,常见的webshell编写语言为asp、jsp和php。比如执行系统命令、窃取用户数据、删除web页面、修改主页等,简单来说就是一个asp或php木马后门,黑客在入侵了一个网站后,常常在将这些 asp或php木马后门文件放置在网站服务器的web目录中,与正常的网页文件混在一起。
可以看到题目拼接结果为passthru,直接通过,那么就rce,直接ls查看目录
补充:
php中变量与变量之间用点号连接表示拼接
没有发现flag,接着查看根目录
发现flag的文件,直接查看
得到flag
[MoeCTF 2021]babyRCE
打开代码审计,正则匹配中没有过滤ls,可以直接查询
补充:
system()
函数通常在你需要执行外部程序并希望直接显示命令的输出结果时使用。这个函数会将命令的输出直接发送到浏览器,因此它特别适用于那些需要将命令的输出直接展示给用户的情况。
看到flag相关文件,这里cat和空格还有flag都被过滤了,选择用c\at和${IFS}还有f/lag替代
执行后查看源码得到flag
[MoeCTF 2021]2048
看到提示,说明跟上面那题一样,也是需要代码审计,找到决定游戏胜利的代码并修改
打开游戏看到这样的界面,代码审计,直接打开源码,然后全局搜索flag
这一段代码说明了要score满足一定大时才能获得flag.php,先随便填一个数试试
改写分数
得到flag