密码

357 字
2 分钟
密码

训练#

Day1#

BabyGo#

  1. 题目描述
    image.png
    image.png
  2. 附件main.go
package main
import ("fmt")
func XORCipher(data []byte, key string) []byte {
keyBytes := []byte(key)
keyLen := len(keyBytes)
result := make([]byte, len(data))
for i := range data {
keyByte := keyBytes[i%keyLen]
intermediate := data[i] ^ keyByte
shifted := (intermediate << 3) | (intermediate >> 5)
result[i] = shifted
}
return result
}
func main() {
flag := "flag{*************}"
key := "s3cr3tK3y"
dataToEncrypt := []byte(flag)
encryptedData := XORCipher(dataToEncrypt, key)
fmt.Printf("Ciphertext: ")
for _, b := range encryptedData {
fmt.Printf("%02x", b)
}
// Output: a8fa10a842b1fb8b0061a29a12185998185992901278
}
  1. decrypt.go
package main
import ("fmt")
// 解密函数,逆运算
func Decrypt(cipher []byte, key string) []byte {
keyBytes := []byte(key)
keyLen := len(keyBytes)
result := make([]byte, len(cipher))
for i := range cipher {
// 逆:循环右移3位,还原intermediate
intermediate := (cipher[i] >> 3) | (cipher[i] << 5)
keyByte := keyBytes[i%keyLen]
result[i] = intermediate ^ keyByte
}
return result
}
func main() {
// 题目给出的密文hex
hexStr := "a8fa10a842b1fb8b0061a29a12185998185992901278"
key := "s3cr3tK3y"
// 把hex转byte数组
var cipher []byte
for i := 0; i < len(hexStr); i += 2 {
var b byte
fmt.Sscanf(hexStr[i:i+2], "%02x", &b)
cipher = append(cipher, b)
}
plain := Decrypt(cipher, key)
fmt.Println("Decrypted flag:", string(plain))
}
  1. 得到flag
    image.png
    image.png

Base套娃#

  1. 题目提示Base套娃,并给了一串base64“MjlEcXlyTktTYkdUcnVSOW1EbkhRcmk2VUtlemdOWFg1SmRydEZHMmtCelRDUGF6UmFWMVlTWDZMZ2lGdGJiYktMaVROdGJRS3pSRlc2TTdYQ2FaYXBxOWZ4TUU0MlFLdzdp”
  2. base64解码
    image.png
    image.png
  3. base58解码
    image.png
    image.png
  4. base32解码
    image.png
    image.png
  5. flag{af7bfd4a-7399-48ff-808d-0aa888ac708f}

抽奖盒#

  1. 题目描述
    image.png
    image.png
  2. 通过不断的抽,,base4解码得到flag{2140dd0e-5f40-4f47-ab99-4c20b988b980}
    image.png
    image.png

抽奖盒Plus#

  1. 题目描述
    image.png
    image.png
  2. 根据题目写脚本
import requests
import random
import re
url = "http://127.0.0.1:49598"
for _ in range(1000):
ip = f"{random.randint(1,255)}.{random.randint(1,255)}.{random.randint(1,255)}.{random.randint(1,255)}"
headers = {
"X-Forwarded-For": ip
}
res = requests.get(url, headers=headers)
html = res.text
# 修改正则:<br>后面抓取所有字符,直到换行
match = re.search(r"<br>(.+)", html)
if match:
content = match.group(1).strip()
print(f"IP:{ip:15} | 内容: {content}")
if "flag{" in content:
print("\n✅✅✅找到FLAG!!", content)
break

image.png
image.png
3. flag{1c66cb80-3f5e-40a1-92d3-7448be81539e}

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
密码
https://helloblog.de5.net/posts/blog/four/
作者
Nikki
发布于
2026-09-22
许可协议
CC BY-NC-SA 4.0
随机文章随机推荐
Profile Image of the Author
Nikki
Hello, I'm Nikki.
公告
欢迎来到我的博客!这是一则示例公告。
分类
标签
最新动态
站点统计
文章
4
分类
3
标签
3
总字数
15,064
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Cloudflare Workers
博客版本
Firefly v6.14.5
文章许可
CC BY-NC-SA 4.0