BugKu:Flask_FileUpload

1.打开此题

通过题目知道这个是一个关于Flask的文件上传的漏洞题目

2.查看网页源代码

Flask是一个使用Python编写的轻量级Web应用框架。

这里又提示说用python来运行结果,那很有可能就是要通过python脚本来抓取flag

3.编辑Python脚本

工具:pycharm

文件类型:在这个文件的路径上找到file文件,然后修改文件后缀为.jpg或.png都可以

代码:为什么是这个代码呢,下面解答!!!

python 复制代码
import os
os.system('ls / ')

4.上传脚本文件

提示文件上传成功,但是没有flag呀,差点就要放弃了,先别着急,查看一下源代码

小结:这里有flag文件说明我们的代码没错,我们来探究其原因。

首先对于这个有flask构建的web文件上传程序,其中包含了一个文件上传的端点 /uploader。当客户端通过 POST 请求发送文件到 /uploader 时,服务器会检查是否有文件被上传,然后将文件保存到指定的上传文件夹中。在文件保存后,os.system(' ls /') 这行代码被执行,它会在服务器上执行 ls / 命令,列出根目录下的所有文件和文件夹。

5.抓取flag文件

修改代码:

python 复制代码
import os
os.system('cat /flag')

文件类型:我这里用的是.jpg,可以体验一下不同文件类型是否也能拿到结果

上传文件,与之前的上传步骤是一样的,拿到flag!!!

6.学有所思

flask框架:

Flask是一个非常小的PythonWeb框架,被称为微型框架;只提供了一个稳健的核心,其他功能全部是通过扩展实现的;意思就是我们可以根据项目的需要量身定制,也意味着我们需要学习各种扩展库的使用。

文件上传漏洞:

文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直接和有效的,"文件上传" 本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果。

相关推荐
ZH15455891315 小时前
Flutter for OpenHarmony Python学习助手实战:模块与包管理的实现
python·学习·flutter
choke2335 小时前
[特殊字符] Python异常处理
开发语言·python
神奇小汤圆5 小时前
浅析二叉树、B树、B+树和MySQL索引底层原理
后端
文艺理科生5 小时前
Nginx 路径映射深度解析:从本地开发到生产交付的底层哲学
前端·后端·架构
千寻girling5 小时前
主管:”人家 Node 框架都用 Nest.js 了 , 你怎么还在用 Express ?“
前端·后端·面试
darkb1rd6 小时前
八、PHP SAPI与运行环境差异
开发语言·网络安全·php·webshell
南极企鹅6 小时前
springBoot项目有几个端口
java·spring boot·后端
Luke君607976 小时前
Spring Flux方法总结
后端
define95276 小时前
高版本 MySQL 驱动的 DNS 陷阱
后端
忧郁的Mr.Li6 小时前
SpringBoot中实现多数据源配置
java·spring boot·后端