【代码审计】h3blog 两处安全问题分析
目录
任意文件下载
文件写入RCE
任意文件下载
全局搜/download

从get里获取fileName参数,再与upload_path拼接,再用rb模式读出来
存在路径穿越

但微妙的是,文件下载后会被删除


甚至没有做鉴权
没有用
@login_required 判断用户是否登入
@admin_required 判断用户是否为管理员

文件写入RCE
全局搜open(,关注w模式的

先来看/gencode/gencode路由

需要以admin权限登录


正常生成下代码

点击生成代码

看到在app/admin/views/cms/banner.py创建了代码

title即为设置的属性

可以在属性处注入,改name值为1"];os.system('calc')#
上级菜单随便选一个,才可以修改字段值


点击生成代码

生成的banner.py,已成功注入恶意代码

开启debug模式
访问/admin/cms/banner/export,成功RCE

