[HCTF 2018]WarmUp;极客大挑战 2019]EasySQL;[极客大挑战 2019]Havefun;[强网杯 2019]随便注

[HCTF 2018]WarmUp;[极客大挑战 2019]EasySQL;[极客大挑战 2019]Havefun;[强网杯 2019]随便注

[HCTF 2018]WarmUp

打开题目,可知存在source.php
在这里插入图片描述访问source.php得到源码,访问hint.php得到提示
在这里插入图片描述

分析源码

 if (! empty($_REQUEST['file'])#首先传入一个参数`file`
        && is_string($_REQUEST['file'])#判断file是否为字符串
        && emmm::checkFile($_REQUEST['file'])#并将参数传递给checkFile
    ) 
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;
            }#判断是否有内容,是否为字符串,如果不是,则返回false

            if (in_array($page, $whitelist)){
                return true;
            }#如果参数里面有白名单上的数据,则返回ture 

            $_page = mb_substr(
                $page,
                0,
                mb_strpos($page . '?', '?')
            );#mb_substr函数是在参数中截取内容,0表示从第一个字符开始;mb_subpos函数表示在参数中寻找到匹配的字符后返回它的位置,若不存在则返回false。此配合表示截取?之前的内容
            if (in_array($_page, $whitelist)) {
                return true;
            }#再一次检查截取后的参数是否存在白名单,若存在,则返回ture

            $_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;
        }
    }
 {
        include $_REQUEST['file'];
        exit;#上面的if条件都返回的是ture,就可以进行文件包含了

故得payload/source.php?file=hint.php?../../../../../ffffllllaaaagggg

在这里插入图片描述

[极客大挑战 2019]EasySQL

username=1'&password=2,报错,说明存在注入点,但是引号加在第二个参数后面,所以尝试闭合2,在前面加个'
(这里若没有闭合,后面都会一直报错,原因与下面情况类似)
在这里插入图片描述之后我又进行报错注入,结果被逮住了
在这里插入图片描述
然后尝试了一下万能密码,结果就成功得到flag了username=1'or 1=1--+&password='2
在这里插入图片描述

[极客大挑战 2019]Havefun

直接出答案
在这里插入图片描述
但还是按照它的提示来

在这里插入图片描述

[强网杯 2019]随便注

select和相关的查询语句被过滤了
在这里插入图片描述

方法一:
可使用堆叠注入,concat连接语句
预编译用法:
set用于设置变量名和值
prepare用于预备一个语句,并赋予名称,以后可以引用该语句
execute执行语句
deallocate prepare用来释放掉预处理的语句

在这里插入图片描述
大写绕过strstr函数
在这里插入图片描述

方法二:

将select * from 1919810931114514编码为16进制,开头加0x

在这里插入图片描述

方法三:
使用ascii,再用char转换成字符

在这里插入图片描述
方法四:
重命名表名,字段名,再使用1' or 1=1#访问
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值