这是很久之前就搞好了,就是懒得写,因为有些是很简单的,但是也有些是我之前没有接触过的知识,所以想了想还是写吧。本人很菜,pwn不会,密码学会一点点点,misc会一点点,web会一点,re看不懂。。。。 这边学长ak了ak佬wp
提示很明显了吧,尤利乌斯吗,不就是凯撒密码吗
这个看名字就是知道是,维基尼亚密码了
提示你key有三位,直接爆破,key为kfc,爆破维基尼亚
from os import urandom
from secret import flag
key = urandom(1)
def xor(plaintext, key):
ret = []
for i in range(len(plaintext)):
ret.append(plaintext[i] ^ key[0])
return bytes(ret)
ciphertext = xor(flag, key)
print(ciphertext.hex())
它给了密文,我们知道这是16进制,他是key与flag进行异或,我们知道这是16进制,可以来获取key
我们知道flag的开头都是这样flag{将f进行ascii加密,与0x9b进行异或就可以获得key
果然经过尝试都是经过异或的,key为253
import binascii
cipher = "9b919c9a8685cd8fa294c8a28c88cc89cea2ce9c878480"
c = binascii.unhexlify(cipher)
key = 253
result = ""
for i in c:
result += chr(i^key)
print(result)
给了一张png图片,直接使用zsteg获取flag
给了一个压缩包,提示他男朋友的生日,生日只算数字的话最多8位最小6位,用ARCHPR爆破,密码为20031201
让我们看看他的男朋友什么样的
二刺猿呀
放到winhex里面,翻到最底下,给了一串base64解一下
得到提示他的男朋友,名字六位字母,第一位是大写
用百度查一下看看
查一下和这个游戏
六位对吧,找到这个人的图片确实差不多,好了flag就有了
有个软件就叫沉默的眼睛。。。
解出来这串base64,得到flag
使用RX_SSTV就行很简单
得到jar进行运行,还真是贪吃蛇,114分好像也挺简单的是吧,但是他们说经常玩到一半就崩了,那算了吧,还是老老实实干活吧。
使用jd-gui,将这些保存起来,给一个压缩包,解压到一个文件夹,将META-INF文件夹拿出来,回头有用
来到这,点开GamePane.java
找到114,将他修改为1,突然发现上面出现问号,我知道了是jd-gui的版本问题,这个版本会有问号出现修改好就行
然后保存,将所有java文件编译成class文件,进入cmd到当前文件夹,输入javac ./*.java
然后回到这里
进入cmd,输入 jar cvfm classes.jar ./META-INF/MANIFEST.MF -C ./e .
classes.jar是你要生成jar文件的文件名
在输入java -jar classes.jar运行这个文件
随便吃一个
他就会弹出0.3秒的二维码,然后跳到这个白框,所以大家要用录屏,帧率开到最高
然后你就会得到这个,把二维码补好就行了
找一个这样的二维码角
使用ps就行。
这个打开就给前半段,看看就给后半段,好的很
先提示get传入name,之后post传入key,key看源代码就有
提示你不是admin,看看网络拦的包
正常是user=test,这个是我改的
好了这样就可以得到flag了
提示
必须要用ctf这个啥,从User Agent里面传入CTF就行
必须是ctf.com浏览器访问
Referer传入ctf.com就行
必须本地用户访问才行,本地用户就是127.0.0.1呗
传入X-Forwarded-For: 127.0.0.1就行
获得flag,收工
提示你flag,在三个文件里面,三个敏感文件,我们猜一下,三个文件很好猜,不用扫
第一个robots.txt
第二个.index.php.swp ,这个我们可以放到kali中,用vim -r恢复
第三个www.zip好了结束
分析一下,data这个已经提示了,可以使用data伪协议或者php那个协议,第二个key是三个等号直接使用数组就行,num是直接加一个a就行,就cmd有点麻烦
payload:
get传 ?data=data://text/plain,Welcome to CTF&key1[]=1&key2[]=2&cmd=?>=`{${~"%a0%b8%ba%ab"}[%a0]}`?>&%a0=cat /flag
post传 num=2077a
这个最简单了,使用1' or 1=1#,在查询页面直接就可以获得flag