青少年CTF-Check_in_easy

青少年CTF-Check_in_easy

一、先看一下源码
青少年CTF-Check_in_easy_第1张图片
看到代码基本上可以知道,此题需要使用PHP内置类的知识,substr传入的参数是可控的,最终利用substr函数构造可利用参数进行命令执行
二、substr函数
青少年CTF-Check_in_easy_第2张图片
substr的第一个属性为string,$class->$c()是调用了类中的方法,那么在利用PHP内置类时,必须让其内置方法的返回值为string类型
三、pyload构造
针对于这一题可以使用的内置类其实很多,只要使用的内置类的内置方法返回为string类型,基本上都可以利用,这里我使用的是SplFileInfo内置类
青少年CTF-Check_in_easy_第3张图片
根据官方手册描述,getPathname()最终的返回值为string,可以利用
最终构造的payload:
?a=SplFileInfo&b=systemcat+fl*&c=getPathname&d=0&e=6&f=6&g=13
查看源码得到flag:
青少年CTF-Check_in_easy_第4张图片

你可能感兴趣的:(网络安全)