栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

CTF之路:Flask

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

CTF之路:Flask

1.题目

BP上分析数据包,发现有提示:
Give me the file, and I will return the Running results by python to you!
意思是:上传一个文件,系统将用python运行它,并返回结果

经验告诉我们,上传的文件里应该含有python可执行代码。

2.知识点

os.system()函数
os.popen()函数——比os.system()更强大
在单元测试时发现os.popen效果更加强大;不仅可以调用 系统命令,实现等同于os.system效果,还可以读取返回值,

3.解析

上传文件发现似乎只能上传图片
这也没关系,可以把文件重命名为.png/jpg
打开一个file,写入代码

import os
os.system('ls')

重命名为flag.png

上传flag.jpg,BP监听数据包,发现执行了文件中的代码
![!在这里插入图片描述](https://img-blog.csdnimg.cn/3639d72f4e6e4cdb82158ed51810d518.png)Response应答数据包里回显了ls的执行结果:
app.py
templates
upload
没有找到flag
尝试ls根目录,看看能否找到flag文件

有两种方法:

1.直接将之前的数据包发送给Repeated,在里边直接修改数据包中的代码

2.修改flag.png的代码,再重新上传(比1麻烦)

import os
os.system('ls /')

因此,直接在Repeated里修改,

os.system('ls /')  ##之前是  os.system('ls') 

得到结果,终于找到flag。
下面就是把他打印出来即可。

依旧是在Repeated内直接把修改代码,重发。

得到flag

因为flag在根目录下,所以是/flag(最后差点功亏一篑)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/700388.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号