web方向有5个题目没出,复现一下
OpGfW6.png

连连看到底是连连什么看

下载源码发现有/what’s_this.php目录
OpGlgP.png

<?php
highlight_file(__FILE__);
error_reporting(0);

$p=$_GET['p'];

if(preg_match("/http|=|php|file|:|\/|\?/i", $p))
{
    die("waf!");
}

$payload="php://filter/$p/resource=/etc/passwd";

if(file_get_contents($payload)==="XYCTF"){
    echo file_get_contents('/flag');
}

考察的主要是filer链,那个工具我还用过,比赛的时候没想起来0.0,主要考察的就是构造出想要的字符串然后去掉乱码
https://github.com/synacktiv/php_filter_chain_generator
OpG2ol.png
测试一下
OpGC2S.png
结果确实出现了XYCTF,但是还有一堆乱码,用string.strip_tags过滤器去掉垃圾字符
string.strip_tags能去掉标签<后面的字符,所以重新构造一下
OpQMbN.png
在过滤器后面加上string.strip_tags发现结果就是剩下XYCTF
OpQ5rX.png
OpQBQt.png
拿下

give me flag

OpwhrX.png
其实看到题就知道是md5长度拓展攻击,但是苦于不知道flag长度所以没做,看wp才知道平台flag长度固定43 0.0
属实大意了,现在来重做一下
用一个之前用过的工具hash_ext_attack,项目地址
https://github.com/shellfeel/hash-ext-attack
先生成拓展字符,time的时间戳直接用unix在线时间戳,提前一点,方便操作
OpwnCx.png

然后写个py脚本不断发包就行了,或者用bp 一直intruder

import requests

url='http://gz.imxbt.cn:20394/?md5=3b1f9b9c57bafcda64a0f29b0fb409ad&value=%80%00%00%00%00%00%00%00%00%00%00%00%00X%01%00%00%00%00%00%00'

  

while True:

    res=requests.get(url=url)

    if "XYCTF" in res.text:

        print(res.text)

        break

Opw7ij.png

εZ?¿м@Kε¿?

这个也是makefile系列的最后一题,确实没做出来,正好学习一下。
在makefile中存在一些自动变量
OpwN4p.png
想看所有依赖发现被ban
Opwe6U.png
不过可以看第一个依赖
OpwAbY.png
第一个依赖就是/flag
想重定向读出来发现不行
OpwKmv.png
读到变量也不行
OpwZYq.png
用$打开变量,成功拿到flag
Opwyqc.png