1.打开此题
2.查看网页源代码
Flask是一个使用Python编写的轻量级Web应用框架。
这里又提示说用python来运行结果,那很有可能就是要通过python脚本来抓取flag
3.编辑Python脚本
工具:pycharm
文件类型:在这个文件的路径上找到file文件,然后修改文件后缀为.jpg或.png都可以
代码:为什么是这个代码呢,下面解答!!!
import os
os.system('ls / ')
4.上传脚本文件
提示文件上传成功,但是没有flag呀,差点就要放弃了,先别着急,查看一下源代码
小结:这里有flag文件说明我们的代码没错,我们来探究其原因。
5.抓取flag文件
修改代码:
import os
os.system('cat /flag')
文件类型:我这里用的是.jpg,可以体验一下不同文件类型是否也能拿到结果
上传文件,与之前的上传步骤是一样的,拿到flag!!!
6.学有所思
flask框架:
是一个非常小的,被称为微型框架;只提供了一个稳健的核心,其他功能全部是通过扩展实现的;意思就是我们可以根据项目的需要量身定制,也意味着我们需要学习各种扩展库的使用。
文件上传漏洞:
是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直接和有效的,“文件上传” 本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果。