首頁 - OWASP Top 10:2021
[极客大挑战 2019]EasySQL
类型:sql注入
使用万能密码
flag{f580db5b-c0c9-4b13-bfb6-adfa525c93f5}
[极客大挑战 2019]Havefun
类型:代码审计
F12打开浏览器控制台
GET请求,在url添加参数/?cat=dog
访问
返回flag{f60c7d5c-9f44-4e92-88c0-6ae7a3fc57ec}
[HCTF 2018]WarmUp
类型:代码审计
漏洞:文件包含
看到提示文件,在url后面添加/source.php
代码审计
is_string():检测变量是否是字符串
isset():检测变量是否已设置并且非 NULL
in_array(要搜索的值,要搜索的数组):搜索数组中是否存在指定的值
mb_substr($page,n,m):返回page中从第n位开始,到n+m位字符串的值
mb_strpos():查找字符串在另一个字符串中首次出现的位置
urldecode():将url编码后的字符串还原成未编码的样子empty() 函数用于检查一个变量是否为空。
<?php
highlight_file(__FILE__);
class emmm
{
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";
return false;
}
//检测page的值是否在白名单中
if (in_array($page, $whitelist)) {
return true;
}
//返回page中从第0位开始到第一个?出现的位置,之间的值赋给page
$_page = mb_substr(
$page,
0,
mb_strpos($page . '?', '?')//查找字符串在另一个字符串中首次出现的位置
);
//检验page的值是否在白名单内
if (in_array($_page, $whitelist))