ctfshow-web萌新赛(详解)

给她

打开题目以为是sql注入搞了半天也没有发现注入点,根据大佬提示<给她>及git--是git泄漏

用dirsearch扫了一下也发现了.git

githack下载地址:GitHub - lijiejie/GitHack: A `.git` folder disclosure exploit 

下载得到hint.php

发现spring漏洞:

如果我们输入"%\"或者"%1$\",他会把反斜杠当做格式化字符的类型,然而找不到匹配的项那么"%\","%1$\"就因为没有经过任何处理而被替换为空。如果%1$ + 非arg格式类型,程序会无法识别占位符类型,变为空。因此sprintf注入的原理就是用一个15种类型之外的"\" 来代替格式字符类型让函数替换为空,则“%1$\'”后面的单引号就能闭合前面的单引号。

addslashes函数就是在预定义的字符前面加上反斜杠

这些预定义字符包括:

  • 单引号(')
  • 双引号(")
  • 反斜杠(\)
  • NULL

因此构造payload :?name=1&pass=%1&' or 1=1 --+

进入报错页面查看源码发现了flag,怀疑是文件包含但是读取不了,在cookie里面发现了一串16进制解码得到 /flag 但是访问也没有,那就换个思路修改cookie的值进行文件读取

这里要注意 先把/flag进行16进制的编码在进行传值。

flag=ctfshow{82b3bf0d-3f03-49cc-aff7-9897baf06e41}

 签到题

提示flag在url里面 直接扫一下目录

访问/flag及得到flag

flag= ctfshow{4df00dae-1a38-4b51-8ab6-053f4a208011}

假生赛

?php
session_start();
include('config.php');
if(empty($_SESSION['name'])){
    show_source("index.php");
}else{
    $name=$_SESSION['name'];
    $sql='select pass from user where name="'.$name.'"';
    echo $sql."<br />";
    system('4rfvbgt56yhn.sh');
    $query=mysqli_query($conn,$sql);
    $result=mysqli_fetch_assoc($query);
    if($name==='admin'){
        echo "admin!!!!!"."<br />";
        if(isset($_GET['c'])){
            preg_replace_callback("/\w\W*/",function(){die("not allowed!");},$_GET['c'],1);
            echo $flag;
        }else{
            echo "you not admin";
        }
    }
}
?>

审计代码得知,name=admin 然后在传入一个以get方法的c

根据题目提示register.php是注册页面 用户名admin 密码没有做要求随便写一个 login.php是登录面

接下来就要对接下来就要满足正则绕过这里过滤了\w和\W。其中\w过滤了a-z.0-9,包括下划线的任何单词字符\W过滤了任何非单词字符但没有对空格做过滤

所以我们直接?c=  就可以得到了flag

flag=ctfshow{89814a3c-95ba-4fbf-931f-811d29ecd1b8}

总结:

         1.addslashes函数+sping的漏洞

         2.cookie的盗用

         3.代码审计+正则过滤

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值