您现在的位置是:首页 >其他 >ctfshow_愚人杯WEB之easy_flask网站首页其他

ctfshow_愚人杯WEB之easy_flask

XiaoXiao_RenHe 2023-05-29 04:00:02
简介ctfshow_愚人杯WEB之easy_flask

1、easy_flask

百度了下什么是flask,flask是一款非常流行的python web框架。

2、尝试步骤

(1)、搜索博文,查看该题是如何破解的

先注册账号,登录自己注册的账号,查看可访问内容(可以查看到部分源码,如app.py文件,泄露了flask的session加密秘钥),可以查看到当前用户的角色名称,管理员(admin)的角色名称;F12查看session结构(可以看到session放在了cookie中),使用flask的token生成规则解编码,尝试普通用户越权到管理员admin角色;越权到管理员角色后,发现有个下载功能,F12查看下载格式后,尝试下载已知的app.py源文件,查看文件发下eval(),可以远程执行系统命令。

(2)、自己注册的账号登录

  如上图所示,点击“leran”,可以在线预览部分源代码,可以确认session编解码规则。

F12--》网络,可以查看Cookie中的session。

如下图所示,在github上获取flask-session的编解码源代码,将获取的session进行解码,以便查看session的结构。

mirrors / noraj / flask-session-cookie-manager · GitCode

(3)、将下载文件置于kali桌面进行编解码

 发现session结构如下:{'loggedin':True,'role':'user','username':'abc'}

猜测构造admin结构的session如下:{'loggedin':True,'role':'admin','username':'admin'}

 编码后获得session的值,但是不清楚如何放到cookie里面去,F12时,无法修改已知cookie的值。

(4)、修改cookie中session的值

使用浏览器自带组件,搜索cookie,添加“Cookie Editor”组件后,F12后,可以新增cookie信息。

 如上图所示,添加新的cookie信息后,在访问地址栏按回车,重新访问网页,发现返回到了登录页面,why?为啥不对呢?

再次浏览器下Cookie Editor,发现有2个session信息,一个普通用户登录的session,一个自己新增的管理员角色session,删除普通用户对应的session,再在地址栏回车,发现页面变成了如上截图所示。

(5)、下载app.y源代码文件

如下图所示,新出现了个下载功能,F12--》查看器,查看文件下载格式如下图所示。

 尝试下载app.y源文件,下载成功。

如下图所示,审计app.y源代码,发现有eval()可以执行远程命令。

(6)、尝试访问执行远程命令

尝试访问/hello/?eval=system('ls /'),结果只输出了hello,  

又麻瓜了!!

再百度,尝试访问/hello/?eval=__import__("os").popen("ls /").read()

如上图所示,看到根目录下有个flag_is_h3re文件,猜测是flag文件,查看看看,

尝试访问/hello/?eval=__import__("os").popen("cat /f*").read()

3、其他修改Cookie的方法

最后发下hackBar也可以给当前访问设置Cookie信息,操作如下图所示。

 另外一种,是火狐浏览器搜索ModHeader组件,也可以设置Cookie信息。

 

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。