[SWPUCTF 2022 新生赛]奇妙的MD5... ...

目录

[SWPUCTF 2022 新生赛]奇妙的MD5

[GDOUCTF 2023]受不了一点

[LitCTF 2023]作业管理系统

注入点一:文件上传

注入点二:创建文件直接写一句话木马

注入点三:获取数据库备份文件

[LitCTF 2023]1zjs


[SWPUCTF 2022 新生赛]奇妙的MD5

or 对应的16进制:276f7227 

ffifdyop字符串,MD5加密之后会变成276f7227 36c95d99e921722cf9ed621c

字符串前几位刚好是 ‘ or ‘6

输入ffifdyop,进入下一关  查看源代码

GET传参x,y二者值不相等,但MD5加密后相等

==弱比较,使用0e、[]数组绕过都可以

?x=QNKCDZO&y=240610708
?x[]=1&y[]=2

 进入下一关,POST传参wqh、dsy二者值不相等,但MD5加密后相等,===强比较 使用[]绕过

[GDOUCTF 2023]受不了一点

<?php
// 设置错误报告级别为0,即关闭错误报告
error_reporting(0);
// 设置HTTP头部信息,指定内容类型为HTML,字符编码为UTF-8
header("Content-type:text/html;charset=utf-8");
// 检查是否存在POST请求中的'gdou'和'ctf'参数
if(isset($_POST['gdou'])&&isset($_POST['ctf'])){
    // 获取POST请求中的'ctf'参数值并存储到变量$b中
    $b=$_POST['ctf'];
    // 获取POST请求中的'gdou'参数值并存储到变量$a中
    $a=$_POST['gdou'];
    // 检查'gdou'和'ctf'参数值是否不相等,并且它们的MD5哈希值相等
    if($_POST['gdou']!=$_POST['ctf'] && md5($a)===md5($b)){
        // 检查是否设置了名为'cookie'的Cookie
        if(isset($_COOKIE['cookie'])){
            // 检查Cookie的值是否等于'j0k3r'
           if ($_COOKIE['cookie']=='j0k3r'){
               // 检查是否存在GET请求中的'aaa'和'bbb'参数
               if(isset($_GET['aaa']) && isset($_GET['bbb'])){
                  // 获取GET请求中的'aaa'和'bbb'参数值
                  $aaa=$_GET['aaa'];
                  $bbb=$_GET['bbb'];
                 // 检查'aaa'和'bbb'是否都等于114514,但不相等
                 if($aaa==114514 && $bbb==114514 && $aaa!=$bbb){
                   // 设置两个变量,用于后续的条件判断
                   $give = 'cancanwordflag';
                   $get ='hacker!';
                   // 检查是否存在GET请求中的'flag'参数和POST请求中的'flag'参数
                   if(isset($_GET['flag']) && isset($_POST['flag'])){
                         // 如果存在,则输出'cancanwordflag'并终止脚本执行
                         die($give);
                    }
                   // 如果POST或GET请求中的'flag'参数等于'flag',则输出'hacker!'并终止脚本执行
                   if($_POST['flag'] === 'flag' || $_GET['flag'] === 'flag'){
                       die($get);
                    }
                    // 遍历所有的POST参数,并将它们作为变量赋值
                    foreach ($_POST as $key => $value) {
                        $$key = $value;
                   }
                    // 遍历所有的GET参数,并将它们作为变量赋值
                    foreach ($_GET as $key => $value) {
                         $$key = $$value;
                    }
                   // 尝试输出变量$flag的值
                   echo $flag;
            }else{
                  // 如果不满足条件,输出"洗洗睡吧"
                  echo "洗洗睡吧";
                 }
    }else{
        // 如果不满足Cookie的条件,输出"行不行啊细狗"
        echo "行不行啊细狗";
        }
  }
}
else {
  // 如果不满足MD5哈希值相等的条件,输出"菜菜"
  echo '菜菜';
}
}else{
  // 如果不存在POST请求中的'gdou'和'ctf'参数,输出"就这?"
  echo "就这?";
}
}else{
  // 如果不存在POST请求中的'gdou'和'ctf'参数,输出"别来沾边"
  echo "别来沾边";
}
?>

第一层:POST传参  gdou[]=1&ctf[]=2,(===强比较,[]数组绕过)

第二层:传入cookie  cookie=j0k3r

第三层:GET传参    ?aaa=114514&bbb=114514a     返回flag

字符串的弱比较,可以用114514a(字符串)来绕过,解析后仍为114514(整型)

字符串弱类型比较时只会截取前面的部分

第四层:flag传入空值 flag=    ,返回$give = 'cancanwordflag';

[LitCTF 2023]作业管理系统

查看源代码发现提示 默认账户admin admin

登录进来发现有很多注入点

注入点一:文件上传

直接上传成功了,连接蚁剑在根目录下找到flag

注意路径

注入点二:创建文件直接写一句话木马

创建文件2.php保存后,同样的连接蚁剑在根目录下找到flag

注入点三:获取数据库备份文件

输入想要获取的数据库名称,使用万能密码1’ or ‘1’=’1爆破

正常情况下  点击备份,然后在网站根目录访问 mysql.zip 就可以下载

此处不知道为什么报错了

注入点四:ftp 远程文件上传

[LitCTF 2023]1zjs

F12查看源码,在/dist/index.umd.js中发现一个关于flag的路径

访问,发现JSfuck编码

解码得flag(自己去一下[])

因为Sfuck也是一种JS代码,F12打开的控制台里可以直接运行js代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值