密码
357 字
2 分钟
密码
训练
Day1
BabyGo
- 题目描述

image.png - 附件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}- 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))}- 得到flag

image.png
Base套娃
- 题目提示Base套娃,并给了一串base64“MjlEcXlyTktTYkdUcnVSOW1EbkhRcmk2VUtlemdOWFg1SmRydEZHMmtCelRDUGF6UmFWMVlTWDZMZ2lGdGJiYktMaVROdGJRS3pSRlc2TTdYQ2FaYXBxOWZ4TUU0MlFLdzdp”
- base64解码

image.png - base58解码

image.png - base32解码

image.png - flag{af7bfd4a-7399-48ff-808d-0aa888ac708f}
抽奖盒
- 题目描述

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

image.png
抽奖盒Plus
- 题目描述

image.png - 根据题目写脚本
import requestsimport randomimport 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
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
随机文章随机推荐













