web:[SWPUCTF 2022 新生赛]ez_ez_php(revenge)
打开环境,进行代码审计
下面有提示访问游戏flag.php,尝试看看
提示了正确的flag,还有要使用为协议,之前也了解过,关于执行包含文件例如include可使用为协议绕过,回到最初的代码,检查是否用get传参的方式传递file函数,并用substr的、函数检查传参的前三个字符是不是php如果是则进行下一步的操作。
那么直接尝试为协议,之前就一直像说为协议为什么一定要套上一个read方式是base64加密,直接不加密读取不行吗,试一下是可以的,这题要注意的两个点是读取路径是/flag,要先访问flag.php得到这个信息
pwn:[SWPUCTF 2022 新生赛]Darling
查壳,ida
看主函数
将20020819赋值给v4数组的第一个元素,生成一个一百以内的数组赋值给v5,比较v5和v4的第一个元素,相等就执行后门函数,接着看一下其他函数,上面都是输出字符的函数而已
那么其实只要我们运行这个程序然后输入正确的值,就会自己执行后面函数getshell,随机数是运用c语言通过设置随机数种子生成一个一百以内的随机数,仿照它生成一个即可,这边也没学过c语言可以利用ai,可以得知我们只要运行输入17即可获得答案
但是不知道为什么我这个错误了
看一下别人的做法,有的是直接用python调库去生成随机数然后构造payload,有的也是直接求得随机数然后运行程序,大同小异,可是我这个就是错误,可能是环境的问题吧
misc:攻防世界班马班马
题目是一张图片,直接010分析看看,没得到什么,用stgeslove看看也没什么
看一下文件属性也没什么东西,从题目和图片来看,难道是一种什么解密吗,难道是条形码,如果只截取中间那一块的话确实像是条形码,找一下在线网站,尝试了很多个都失败了,实在找不到其他解法了,找一下别人怎么做的,就是识别条形码
Barcode Reader. Free Online Web Application
crypto:polar靶场显而易见的密码
题目是这样的,有几串不同的字符串,仔细观察可以知道有八串,且每一串都是32位,理所当然 想到MD5加密
一一尝试只有这个可卡因解密
reserve:攻防世界hello,ctf
查壳,ida
看主函数
代码审计,复制一串字符串给v13,设置一个无限循环,读取我们输入的给v9,设置判断语句,如果v9长度超过17就终止,也就是说flag长度在17以内,设置一个17以内的循环,直接看成功的函数,就是对比v10和v13,上面那个循环就是历遍v9将每过字符变成十六进制形式之后复制给v10。到这里其实就明白了,v13就是答案的十六进制形式,从v13字符串长度远大于17也可得知。直接转字符串即可