0


Bugku -----Web-----全题目解析 (一) 超详细步骤

目录

————————————————————分割线————————————————————

1.Simple_SSTI_1

**SSTI是服务器端模板注入 **

F12查看下源码

在 Flask 中,双大括号 {{ }} 用于表示动态内容的占位符,该内容将由模板引擎渲染。这被称为模板语法。 当你在 Flask 模板中使用双大括号把变量或表达式括起来时,它告诉模板引擎去计算该表达式并将其值插入到渲染后的 HTML 文档中。 例如,你提供的代码 flag={{config.SECRET_KEY}} 将会在 HTML 文档中的该位置渲染 Flask 应用程序的秘密密钥。

在Flask项目的配置中都是通过app.config对象来进行配置的。比如要配置一个项目的SECRET_KEY,可以使用app.config['SECRET_KEY'] = "xxx"来进行设置。

所以综上所诉 我们直接尝试去在url试着访问 config

注意语法格式 ?flag={{config}}

也可用查询语法?flag={{config.SECRET_KEY}}

2.Simple_SSTI_2

打开题目让传入一个flag参数 我们试着看看config文件里

但是好像没有有用的东西 我们试着用模板注入看看怎么个事

?flag={{ config.__class__.__init__.__globals__['os'].popen('ls ../').read() }}

**使用了模板引擎的功能来访问Python的

config

对象,通过链式属性访问(

__class__

,

__init__

,

__globals__

)来获取对Python标准库的

os

模块的访问权。一旦获得对

os

模块的访问,攻击者就可以通过

popen

方法执行任意的系统命令。**

_class_:用来查看变量所属的类,根据前面的变量形式可以得到其所属的类。

init :初始化类,返回的类型是function。

globals[]:使用方式是函数名.__globals__获取function所处空间下可使用的module、方法以及所有变量。

os.popen()方法:用于从一个命令打开一个管道。

open() 方法:用于打开一个文件,并返回文件对象。

结果发现app 这个文件 好像不是常见的内部文件名字 我们试着去访问看看 发现了flag文件

cat一下获取flag

3.Flask_FileUpload

‌Flask是一个轻量级的‌Python ‌Web框架,主要用于构建和维护Web应用程序。它提供了一组工具和功能,使开发者能够快速轻松地创建动态Web应用程序

一个提交框 查看下网页源码 提示 说是要上传个文件 并且固定了上传文件类型 需要时jpg和png的图片

于是写一段python的脚本文件 并且将后缀名改成jpg

  1. import os: 这一行导入了Python的内置模块osos模块提供了许多与操作系统交互的功能,比如读写文件、更改和识别路径等。
  2. os.system('ls / '): 这一行使用os模块中的system函数来执行一个外部命令。这里执行的是ls /命令。在Unix和类Unix系统中,ls是一个用于列出目录内容的命令,而/代表系统的根目录。因此,ls /会列出根目录下的所有文件和子目录。

上传成功后 页面没有什么特别的回显 我们看一下源代码 发现了我们要找的flag

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

所以我只需要利用这个漏洞再去修改下我们的python代码重新上传一下我们的文件即可

import os
os.system('cat /flag ')

4.滑稽

进入环境 右键查看源代码

5.计算器

让输入验证 但发现只能数一个字 打开源代码发现有输入长度限制是1

将源代码中限制从1改一下 再次输入 正确验证即可获得flag

标签: 前端 web安全 安全

本文转载自: https://blog.csdn.net/qq_48368964/article/details/140802003
版权归原作者 A 八方 所有, 如有侵权,请联系我们删除。

“Bugku -----Web-----全题目解析 (一) 超详细步骤”的评论:

还没有评论