攻防世界刷题wp

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有教程)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值