天山固网


为什么报名是学生组打比赛分到了企业组捏,企业这群人也太卷了

(只有web是我做的,其他跟我没啥关系

签到

尝试一下解密?

url解码

image-20220626141958790

简单的图片

拖进gimp里看到有三个图层,删去最上边的一个,就能看见flag

image-20220626160445309

image-20220626160608764

web

guess

sql盲注,唯一的问题是这里只允许最大有四个参数,所以在盲注第五个数时要删去第一个

image-20220626143623880

SSRFme

利用file协议查看etc/hosts文件,找到主机的网段

image-20220626143722528

bp扫一下,发现在100里有内容

image-20220626144207786

接下来就是利用gopher协议把referer=dasctf.com带进去

image-20220626145210597

提示要post一个参数dasctf,而且这个参数还要等于flag

重新构造gopher语句,最终得到flag

image-20220626145241386

MagicalType

robots.txt里有个hint.php,访问一下,发现源码里是些html代码,拖到文档里改成html格式

image-20220626151308282

利用数组溢出和filter伪协议读index.php的文件内容

image-20220626153834734

解码之后是个反序列化

error_reporting(0);
class Evil{
    public $flag = 1;
    public function __wakeup()
    {
        $this->flag = 0;
    }
    public function __destruct()
    {
        if($this->flag == 1)
        {
            echo("How you did it?");
            $xux = file_get_contents($_GET['xux']);
            create_function("",$xux);
        }
        else{
            die("nonono");
        }
    }

}
$o = $_GET['o'];
if(isset($o))
{
    unserialize($o);
}

我们要利用的函数就算create_function,这个函数有个命令注入的漏洞。而$xux参数可以利用data协议进行控制,至于wakeup的绕过可以将最前面的O改成C(陇原战役里考过

之后发现空格也被过滤了,用${IFS}绕过

image-20220626153756895

misc

掩耳盗铃

image-20220626145446137

压缩包解压出来的改成ppt格式然后把叠加的图层全删了

chrchrchrimage-20220626162933197

感觉像蚁剑的流量,蚁剑加密的方式就是base64加密之后再在前面添几位,所以从tcp流18开始往后找,删掉前两个字符先url解码再base64解码,把写入a.txt的内容拼起来

image-20220626162737108

KJCUMVCRGFJEOZL2JJWE2V2RGNMW2SLXJZLVCM2ONJWGUTLNJZVU2VCBPBHFIZDIJZVFSMCOIRSGQTKHKJVWMUJ5HU======

然后进行base32解码,再base64得到flag

image-20220626163754458

re

measyasm

image-20220626150259303

自减

image-20220626150733844

PEinM

拖进ida里动调

能看出来在这里有一个被魔改过的xxtea

image-20220626174638274

逆一下脚本

#include <stdio.h>
#include <stdint.h>
#define DELTA 0x9E377AB9 
#define MX (((z>>4^y<<3) + (y>>4^z<<3)) ^ ((sum^y) + (key[p&0xa^e] ^ z)))  
unsigned long long Summation(int n, unsigned long long delat)
{
        unsigned long long sum = 0;
        for(int i = 0; i < 52/n+6; i++)
                sum += delat;
        return sum;
}

void btea(unsigned long long *v, int n, unsigned long long const key[4])   
{                                                      
    unsigned long long y, z, sum;                               
    unsigned p, round, e;                            
    if (n > 1)         
    {
        round = 6 + 52/n;               
        sum = 0;                        
        z = v[n-1];                     
        do
        {
            sum += DELTA;               
            e = (sum >> 2) & 3;        
            for (p=0; p<n-1; p++)       
            {
                y = v[p+1];
                v[p] += MX;
                      z = v[p];     
                        }
            y = v[0];
            z = v[n-1] += MX;
        }
        while (--round);
    }
    else if (n < -1)
    {
        n = -n;
        round = 6 + 52/n;
        sum = Summation(n, DELTA); 
        y = v[0];
        do
        {
            e = (sum >> 2) & 3;
            for (p=n-1; p>0; p--)
            {
                z = v[p-1];
                y = v[p] -= MX;
            }
            z = v[n-1];
            y = v[0] -= MX;
            sum -= DELTA;
        }
        while (--round);
    }
}


int main()
{
    unsigned long long v[]= {0xBD548E45099A220B, 0x50BB9976358C558A, 0x20598FD852017357, 0xDC9B969877F6E8C2, 0xBEC5A96D9ECC6B87, 0x34D1D0E4390DF96D, 0x6796AEADE501CC5D, 0xDC643460C1430B8F, 0x7CA5CE8BE64FE5EE, 0x066B317D2C139F9B};
    unsigned long long const k[]= {0x0000000000000052, 0x0000000000000033, 0x0000000000000076, 0x0000000000000045, 0x0000000000000072, 0x0000000000000073, 0x0000000000000033, 0x000000000000005F, 0x0000000000000031, 0x0000000000000053, 0x000000000000005F, 0x0000000000000045, 0x0000000000000061, 0x0000000000000053, 0x0000000000000079, 0x000000000000000A};
    int n = 0xa; 
    btea(v, -n, k);
    for(int i = 0; i < 8*n; i++)
    {
        printf("%c", ((unsigned char *)&v)[i]);
    }
    return 0;
}

image-20220626175648015

crypto

rssssa9

照着题目逆推脚本,用sage

image-20220626165422972

image-20220626165353341

交了一下结果不对

发现是加密的时候在后边填了点东西

再去掉加密里加上的最后那段123....321就行


文章作者: Ethe
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Ethe !
评论
  目录