2024isctf ezrce
禁用了一些关键字符,查询函数,系统执行函数,执行函数都有,空格也和斜杆也禁用了,但是其他一些很大一部分字符都没有禁用,属于关键词禁用的类型,正常的步骤是去查一下列表,想着正常去构造一下查询语句,但是没有回显
我能想到的原因是目录层级不对,由于/被禁用了我们不能直接查根目录的列表,那我们换个思路,可以用转义绕过,或者取反,异或,这边使用简单一点的取反,先查列表写一个简单的php取反编码代码取反,明确要执行的代码system ls /,两个分开转义
得到列表
接着执行system cat /flag即可,同样的方式编码
2024isctf25时晓山瑞希生日会
打开环境,提示要修改客户端请求,我们抓包修改一下
又提示只能从本地来,那就是改一下XFF改成本地网址,这边没有就给他补上去
又提示时间不对,结合题目应该是25时,加个date上去
提示格式错了,搜一下这种格式的时间
按照他的格式,结合题目
忘记是几月份了,使用它这个格式之后还是提示格式错误,去搜索了,有一板比较详细的
反正最好还是不知道具体时间,这里就去看了一下wp
最后的时间是这个,题目给的9.15貌似没什么作用啊
2024isctf UP!UPloader
打开是一个文件上传的界面,我们随便传一个木马上去,提示文件路径不好找,又提示了一个php文件
我们访问一下这个文件
我们可以通过这个文件包含一个文件,试着包含一下我们刚刚传参的文件
没有任何回显,也没有进一步的提示,找不到路径,但是有文件包含,我们就能想到php伪协议,尝试看一下我们刚刚上传的文件
还是什么都没有,那就查看看upload.php这个文件
解码看一下
可以看到它将我们上传的文件名进行了MD5加密,这也是为什么完成刚才查不到的原因,这也提到了上传的目录是当前目录的uploads目录,我们将我们上传的文件名进行MD5加密看看我们上传的文件,先包含一下我们上传的文件,记住文件名是MD5加密之后的,发现没有回显
直接用蚁剑连看看,连接成功了,但是没找到flag
到这里就没思路了,看了wp发现是再使用post传参去利用一句话木马执行evn命令,在Linux系统中,env命令用于显示当前环境变量,它会列出一系列包含系统配置信息、用户设置等内容的变量,其实就是和PHP info差不多
那我们试试看用phpinfo可不可以,同样能找到
2024isctf 小蓝鲨的秘密
打开环境像是官网,在源码中搜索一下关键字符,或者在js中找一下有没有信息都没找到什么
产生抓包看看,也没找到什么,题目也没有什么提示,但是如果细心一点就能发现url地址不是题目环境的地址,而就是官网的地址,说明是打开环境之后,自动跳到了这个地址来了,之前也没遇到过类似的情况,直接拦截抓包打开环境,重放可以得到flag
后面去了解了一下,发现这是网页重定向的问题,有301永久重定向、302临时重定向、307临时重定向、303 See Other、308永久重定向,具体可以看一看这篇博客
详解重定向(HTTP状态码301/302/303/307/408)附例子 - 汕大小吴 - 博客园
这题属于302临时重定向
2024isctf小蓝鲨的冒险
大致看一下代码,声明了变量a的值,通过get传参给变量b赋值,使用parse_str
函数将变量b转换为参数值,这里主要是用来覆盖掉变量a的值,检查变量a的第一个字符不等于那串字符串,将变量a的第一个字符进行md5加密之后与那串字符串md5加密对比,这里就是利用哈希碰撞原理QNKCDZO 240610708,到这里是第一层验证;通过post传参num这个参数给变量num,如果参数num的值是2024的话,输出QAQ,历遍变量num如果有大小写字母的话,就输出nonono,到这里是第二层验证;用intval函数将变量num转换成整数,使用基数0,intval函数会自动识别数字的进制,到这里是第三层验证;检查get传参的参数中是否含有which,若有则赋值给变量which,对比which变量中的值如果是1或者2就会包含变量which的内容作为文件名加上后缀php并输出其中定义的变量flag
其中关键的是我们要了解intval函数的用法,还有最后一层检验中要怎么让which变量同时是1和flag,既然intval加了基数0会自动识别进制,那么我们 可以将2024转换成十六进制绕过一下,get传参用一下连接符即可
结果是这样的,但是不知道为什么没有反应,可能是which参数有点问题
去看了一下wp,他们用的是八进制来绕过num,其他和我的差不多,但是我试了一下八进制还是没什么反应
basectf2024 HTTP是什么啊
按照他的要求修改,抓包修改
base64解码即可
basectf2024你听不到我的声音
很简单的代码,但是php代码后面没有闭合,按理来说shell_exec这个函数执行完指令之后是会返回一个字符串作为输出的,在php环境中shell_exec
是一个函数,它的作用是执行一个外部的 shell 命令,并将命令执行后的输出结果以字符串形式返回,但是我们传参一个cmd参数之后它没有任何回显,但是函数应该是执行了,我们可以用重定向符将执行结果给送到应该文件中再访问文件即可得到结果