【CTF】Newstar-web

最近练渗透太多有点累,做做新生赛的题娱乐娱乐

泄漏的秘密

按照提示,首先看robots.txt,拿到一半。还有泄露,那就www.zip,直接拿下
image.png
image.png
flag{r0bots_1s_s0_us3ful_4nd_www.zip_1s_s0_d4ng3rous}

Begin of Upload

丢个jpg改文件后缀名,浏览器执行不了,用蚁剑连webshell
image.png
image.png
flag{0b5b70a6-d910-4fe2-b5c7-d5bf9f0a0ebd}

Begin of HTTP

GET:?ctf=1
POST:secret藏源码里了,base64解一下就行
image.png
改cookie:power=ctfer
image.png
加UA就行
image.png
加referer
image.png
最后一关加X-REAL-IP(老废物先试了XFF和Client-ip居然没过,哭死)
image.png
hackbar传参
image.png
flag{8a0c4d13-bb9e-4906-ad6f-1d59b5513ff0}

ErrorFlask

空参数报错直接出flag,这里对于传参敏感一点,尝试非常规值会有意想不到的效果
image.png
flag{Y0u_@re_3enset1ve_4bout_deb8g}

Begin of PHP

<?php
error_reporting(0);
highlight_file(__FILE__);

if(isset($_GET['key1']) && isset($_GET['key2'])){
    echo "=Level 1=<br>";
    if($_GET['key1'] !== $_GET['key2'] && md5($_GET['key1']) == md5($_GET['key2'])){
        $flag1 = True;
    }else{
        die("nope,this is level 1");
    }
}

if($flag1){
    echo "=Level 2=<br>";
    if(isset($_POST['key3'])){
        if(md5($_POST['key3']) === sha1($_POST['key3'])){
            $flag2 = True;
        }
    }else{
        die("nope,this is level 2");
    }
}

if($flag2){
    echo "=Level 3=<br>";
    if(isset($_GET['key4'])){
        if(strcmp($_GET['key4'],file_get_contents("/flag")) == 0){
            $flag3 = True;
        }else{
            die("nope,this is level 3");
        }
    }
}

if($flag3){
    echo "=Level 4=<br>";
    if(isset($_GET['key5'])){
        if(!is_numeric($_GET['key5']) && $_GET['key5'] > 2023){
            $flag4 = True;
        }else{
            die("nope,this is level 4");
        }
    }
}

if($flag4){
    echo "=Level 5=<br>";
    extract($_POST);
    foreach($_POST as $var){
        if(preg_match("/[a-zA-Z0-9]/",$var)){
            die("nope,this is level 5");
        }
    }
    if($flag5){
        echo file_get_contents("/flag");
    }else{
        die("nope,this is level 5");
    }
}

第一层:数组绕过?key1[]=1&key2[]=2
第二层:数组绕过key3[]=3
第三层:数组绕过key4[]=4
第四层:0x绕过key5[]=0x2023
第五层:不能有数字和字母,post传key3[]=@&flag5[]=@
flag{890f5516-6fb6-45fa-820b-a28d83a92812}

R!C!E!

<?php
highlight_file(__FILE__);
if(isset($_POST['password'])&&isset($_POST['e_v.a.l'])){
    $password=md5($_POST['password']);
    $code=$_POST['e_v.a.l'];
    if(substr($password,0,6)==="c4d038"){
        if(!preg_match("/flag|system|pass|cat|ls/i",$code)){
            eval($code);
        }
    }
}

password需要爆破,问ChatGPT要个脚本

import hashlib

target_prefix = "c4d038"  # 目标前缀
counter = 0  # 计数器

while True:
    a = str(counter)  # 将计数器值转换为字符串
    hash_object = hashlib.md5(a.encode())  # 计算a的MD5哈希值
    hashed_a = hash_object.hexdigest()  # 获取哈希值的十六进制表示

    if hashed_a[:6] == target_prefix:  # 检查前6位是否与目标前缀匹配
        print(f"找到符合条件的参数'a':{a}")
        break

    counter += 1
  # 找到符合条件的参数'a':114514

php在解析非法字符时,会将第一个非法字符解析为_[是非法字符,然后用文件包含打
image.png
image.png
flag{758d020f-f381-48c3-b07d-40f71ecfa15a}

EasyLogin

估值9个亿,就只会把你换成我??啊哈哈哈哈
登录功能中,密码被md5加密,burp suite爆破一下,设置按下图搞就好,密码000000
image.png
image.png
burpsuite抓包登录过程,然后forward放包一个一个重放,在这个包发现flag
image.pngflag{d4123338-7939-4f21-a9fd-a51184d6dcc0}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值