ctfshow 做题 萌新 模块(3)
——
萌新 隐写5
下载的附件 txt 文本是这样的。
文本中有一串不明文字: 䴀娀圀䜀䌀娀娀䤀一䈀儀圀㘀堀㌀䬀一䘀㈀嘀㘀夀吀嘀䰀㔀㐀圀㘀㌀吀䠀䰀㔀刀䐀䜀䴀匀㜀䘀䔀㴀㴀㴀㴀㴀㴀
进行中文转 Unicode ,得到:
\u0020\u4d00\u5a00\u5700\u4700\u4300\u5a00\u5a00\u4900\u4e00\u4200\u5100\u5700\u3600\u5800\u3300\u4b00\u4e00\u4600\u3200\u5600\u3600\u5900\u5400\u5600\u4c00\u3500\u3400\u5700\u3600\u3300\u5400\u4800\u4c00\u3500\u5200\u4400\u4700\u4d00\u5300\u3700\u4600\u4500\u3d00\u3d00\u3d00\u3d00\u3d00\u3d00
再进行 16 进制转文本,去掉无效框框得到:
MZWGCZZINBQW6X3KNF2V6YTVL54W63THL5RDGMS7FE======
进行 base32 解码得到 flag 。
——
——
萌新隐写6
给了题目地址:
https://www.lanzoui.com/i9qmffc
下载文件,是一个音频文件。
用 audacity 打开,音频分上下两个声道,并且两端音频完全不一样,上半部分的左声道是摩斯电码。
点击文件名处的小箭头,选择 “分离立体声到单声道”
然后可对两个声道进行操作。点击独奏可以听到摩斯电码的声音。
第一次使用 audacity ,想要导出为 mp3 格式,显示需要 lame_enc.dll 才能创建 MP3 。
点击上面的“下载”按钮,选择第一个 for Windows 的链接。
然后来到这个界面,点击 LAME download page 。(这里之后应该需要梯子了)
然后点击下载安装程序。
因为需要梯子,把这个安装文件放到了 GitHub 上:
https://github.com/goodricc/Lame_v3.99.3_for_Windows
安装好之后,在需要 lame_enc.dll 的界面选择安装路径即可。
进行导出文件,点击保存。(文件导出前的设置为右声道静音,只有左声道摩斯电码的声音)
点击确定,选择保存的路径处就会出现这个保存的文件。
打开在线摩斯电码音频解码:
https://morsecode.world/international/decoder/audio-decoder-adaptive.html
点击 upload 上传刚刚导出的 mp3 文件,点击 play 播放,等待播放完成,下面就会得到电码的文本。
最终得到 flag{MUZIKISG00D}
——
——
web1
题目描述: 代码很安全,没有漏洞。
打开环境,给了一串代码
分析代码,需要进行 get 传参 id ,并且 id 的值大于 999 就会直接返回错误。小于 999 id 会拼接在一条 sql 语句中:
$sql = "select * from article where id = $id order by id limit 1 ";
并且会返回这条 sql 语句执行结果对象的值。
最后,给了一个提示, flag in id = 1000
通过学习得知这里 web1~7 目的都是构造 id=1000 ,只是用各种方式表示 1000 ,或者绕过这个 sql 语句。
1、通过进制转换: 0b1111101000(二进制), 0x38e(十六进制)
2、通过字节操作: ~~1000(两次取反),200^800(异或 ),992|8( 按位与 )
3、通过运算符号:200*5(乘法),10/0.01(除法),1080-80( 减法 ),–1000( 负负 ),200+800(加法)
4、通过 sql 注入必真式构造: id=1 or 1=1
5、绕过函数:(1000) , ‘1000’ ,“1000”( intval( i d ) 会 从 字 符 串 id)会从字符串 id)会从字符串id的起始位置的数字开始,遇到非数字就结束,当起始位置为非数字时则为0,所以只要任意非数字开头即可)
这一题中没有什么限制条件,上面任一种方法即可。
如传参: id=1 or 1=1 时,页面返回 flag 。
——
——
web2
与前一题相比,条件多了这一行,会对一些字符进行了过滤。
即无法通过 sql 注入必真式构造 id=1 or 1=1#
其余方法直接 id=‘1000’ 或 id=(1000)
——
——
web3
这题跟前面比就是过滤字符变多了。
这些被过滤的字符代表无法用上面的 sql 语句构造、十六进制转换的方法。
还有过滤的斜杠字符应该也是某些构造的方法,这里暂时不知道。
直接 id=0b1111101000
——
——
web4
多了几种过滤字符,不能用 select 语句。
直接 id=‘1000’
——
——
web5
过滤单双引号,无法用前面绕过函数的方法。
还是可以通过二进制表示:id=0b1111101000
——
——
web6
多过滤了一个字符,无法使用异或 200^800 的方法。
继续 id=~~1000
——
——
web7
多过滤了这个字符。
取反用不了了,仍然 id= 0b1111101000
——
——
web8
题目描述:阿呆熟悉的一顿操作,去了埃塞尔比亚。PS:阿呆第一季完,敬请期待第二季!
前面7题的描述都是阿呆在修补这个代码,绕过字符。
给出的代码,需要传参 flag 的值等于 key 的值。
这里需要传入 rm -rf /* ,差不多就是代表阿呆删库跑路了。
flag=rm -rf /*