攻防世界
Crypto
flag in your hand
网页打开查看源码
ctrl+shift+i 即可打开控制台
每个减三转ascii码即可得到flag
a = [118, 104, 102, 120, 117, 108, 119, 124, 48, 123, 101, 120]
s = ""
for i in a:
s += chr(i - 3)
print(s)
告诉你个秘密
十六进制转字符串:
base64解码:
cjV5RyBscDlJIEJqTSB0RmhC
VDZ1aCB5N2lKIFFzWiBiaE0g
键盘密码
被这些字母围起来的并进行组合就是flag
工业协议分析
用wireshark打开
用flag的十六进制形式查找flag
查找data contains "666c61677b"
或者按长度排序 点开查看长度不同的
十六进制转文本即可
sherlock
有些字母大写了
在linux系统kali下用正则表达式打开文件进行查找替换:
cat 文件名 | grep -Eo '[A-Z]' |tr -d '\n'
用法:
grep [选项]… 模式 [文件]…
-E, --extended-regexp <模式> 是扩展正则表达式
-o, --only-matching 只显示行中非空匹配部分
[] ,匹配一个指定范围内的字符,
如’[Gg]rep’匹配Grep和grep。
用法:
tr [选项]… SET1 [SET2]
-d, --delete #删除SET1中的字符,不进行翻译
\n 换行
复制出来放到word里面
zero替换成0 one替换成1
再二进制转文本即可
cr3-what-is-this-encryption
学好rsa 秒解
大素数分解网站可以在线分解n
import gmpy2
from libnum import *
c = 28767758880940662779934612526152562406674613203406706867456395986985664083182
n = 73069886771625642807435783661014062604264768481735145873508846925735521695159
p=189239861511125143212536989589123569301
q=386123125371923651191219869811293586459
e = 65537
phi=(p-1)*(q-1)
d=gmpy2.invert(e,phi)
m=pow(c,d,n)
print(n2s(int(m)))
banana-princess
010eiditor查看头文件
大佬们是说rot13移位了所以
kali下用正则表达式打开
cat s.pdf | tr 'A-Za-z' 'N-ZA-Mn-za-m' > new.pdf
点开编辑图片,把黑色块往下挪即可
flag in gyour hand1
一样的
Misc
base64stego
网上随便搜一个base64文件隐写脚本即可
解密包上flag头得到flag
import base64
b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
with open('stego.txt', 'rb') as f:
flag = ''
bin_str = ''
for line in f.readlines():
stegb64 = str(line, "utf-8").strip("\n")
rowb64 = str(base64.b64encode(base64.b64decode(stegb64)), "utf-8").strip("\n")
offset = abs(b64chars.index(stegb64.replace('=', '')[-1]) - b64chars.index(rowb64.replace('=', '')[-1]))
equalnum = stegb64.count('=') # no equalnum no offset
if equalnum:
bin_str += bin(offset)[2:].zfill(equalnum * 2)
# flag += chr(int(bin(offset)[2:].zfill(equalnum * 2), 2))
# print(flag) 这样写得不出正确结果
print([chr(int(bin_str[i:i + 8], 2)) for i in range(0, len(bin_str), 8)])
这里记得把py文件和题目放到一个目录里(网上下载python有教程)