buuctf_web前5题

EasySQl

easySQL
payload:
username=admin’or’1=1&password=admin’or’1=1
&password=admin’or’1=1&password=admin’or’1=1
2024来更一下:

http://t.csdnimg.cn/RB8gS

这篇写的确实详细,看完我浅列个学习心得吧,一般简单的SQL注入分三步:
1。先看与数据库交互的文件—>
2。用1 ,1’,1’'去确定他SQL语句什么个样子(用的单引号还是双引号,即闭合方式)—>
3。用HackBar展开SQL注入
有关万能钥匙:

万能账号密码使用详解,渗透测试常用的入门级操作 - 小哥啊的文章 - 知乎
https://zhuanlan.zhihu.com/p/485448815

Havefun

havefun
代码审计

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

WarmUp

见题:
题目曾经见过(想起当时的年少…)。习惯的F12过后,注释里写着source.php,那咱就去看看喽
php
见下面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,瞅一眼:
在这里插入图片描述
哦,他说flag在ffffllllaaaagggg,我康康
11
没有欸,ffffllllaaaagggg是什么呢
看
G说:这段代码是PHP代码。它首先检查是否存在名为’file’的请求参数并且该参数不为空,并且参数的值是一个字符串,并且通过一个名为checkFile()的方法来验证$_REQUEST['file']的有效性。
如果上述条件都满足,则通过include语句将$_REQUEST['file']引入脚本,并立即退出脚本的执行。
如果条件不满足,则会输出一个img标签,其中的src属性指向一个图片的URL地址。
根据代码的逻辑,这段代码可能用于在满足一些条件的情况下动态加载并执行一个PHP文件,否则将显示一张图片。
下面是我作为小白对该审计的PHP代码作的一些知识补充:

$_REQUEST['file'] 是一个超全局变量,在PHP中用于获取用户通过GET、POST以及COOKIE请求方式提交的名为’file’的参数的值。
$_REQUEST 是一个包含了通过HTTP请求传输的参数(GET、POST和COOKIE)的关联数组,在服务器端可以直接访问。通过使用$_REQUEST['file'],可以获取到名为’file’的参数的值。
需要注意的是,使用$_REQUEST 这类超全局变量需要小心,因为它们包含用户提供的输入,可能会导致安全风险,如上述代码示例中的LFI漏洞。为了安全起见,开发人员应该对用户输入进行验证和过滤,确保只接受预期的值,并且采取适当的安全措施来防止潜在的攻击。

在这里插入图片描述
http://1710131e-d2ab-48b4-8d59-fef56eb66483.node5.buuoj.cn:81/source.php?file=source.php?file=source.php?../…/…/…/…/…/…/ffffllllaaaagggg

Include

题目见下:
他们
这个知识点呢,我还有待更深入的学习,如下:
截图
截图来源:

http://t.csdnimg.cn/XrMyb

然后payload:
?file=php://filter/convert.base64-encode/resource=flag.php
结果如下:
结果
PD9waHAKZWNobyAiQ2FuIHlvdSBmaW5kIG91dCB0aGUgZmxhZz8iOwovL2ZsYWd7MTFmNTYxOTQtMzcwOC00NTE2LTlhNTAtYmIwMjQ4YTUzZTUwfQo=
上面crypto有点基础就知道base64:
1
flag{11f56194-3708-4516-9a50-bb0248a53e50}

[ACTF2020 新生赛]Exec

题目
玩了一下,真ping呗。看佬们说是Linux的指令,见下面引用:

http://t.csdnimg.cn/0md05

下面开始题解:
这里打个注意事项,payload:1.1.1.1 || ls是不行的,结果和上图(紧挨的)是一样的,这里的主要区别是||和|的区别:

在Linux中,|||是两个不同的运算符,有着不同的功能和用法。

  1. ||:逻辑或运算符。在使用命令时,command1 || command2 表示如果 command1 执行失败(返回非零退出码),则执行 command2。也就是说,如果前一个命令失败了,那么后面的命令将被执行。
  2. |:管道符号。管道符号用于将一个命令的输出作为另一个命令的输入。command1 | command2 表示将 command1 的输出作为 command2 的输入。通过管道符号,可以将多个命令连接起来,形成一个管道链,实现数据的流动和处理。
    总结
  • || 是用于在命令执行失败时执行另一个命令的逻辑或运算符。
  • | 是用于将一个命令的输出作为另一个命令的输入的管道符号。

在这里插入图片描述
next:
jg
看到flag文件:
在这里插入图片描述

flag{fd0870e9-148f-4de3-a950-3ad2e2ac9839}

[GXYCTF2019]Ping Ping Ping

tm
看到/?我想放URL里,毕竟ping ,ping的是IP呀。
payload:1.1.1.1| ls,出现下面结果:
在这里插入图片描述知识:
在这里插入图片描述
经尝试,均未果
最后,payload:
在这里插入图片描述
结果:
在这里插入图片描述
flag{5aaf04f8-4cf5-4c42-97c4-fbfe26abb211}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值