WEB-PUT练习

8 篇文章 0 订阅

HTTP协议中的PUT方法是将指定资源的内容替换为请求中所包含的新内容。PUT方法可以用于上传或更新文件,也可以用于创建新的资源。当PUT方法可用时,客户端可以将文件上传到Web服务器并将其存储为已命名的文件或文件夹。但在某些情况下,PUT方法可能会导致服务器安全漏洞,例如,PUT请求可能会导致服务器存储敏感信息或恶意代码。因此,在一些安全标准中,PUT方法被视为不安全的,很多Web服务器默认情况下是禁用PUT方法的。

[GDOUCTF 2023]EZ WEB

访问页面没事东西,源码提示就在眼前,看到了/src,访问是个py文件

import flask
app = flask.Flask(__name__)
@app.route('/', methods=['GET'])
def index():
  return flask.send_file('index.html')
@app.route('/src', methods=['GET'])
def source():
  return flask.send_file('app.py')
@app.route('/super-secret-route-nobody-will-guess', methods=['PUT'])
def flag():
  return open('flag').read()

这里我访问chat,我太菜了

这是一个使用 Flask 框架编写的 Python 代码,它创建了一个 Web 应用程序,并定义了三个路由:

  1. "/" 路由:使用 GET 方法返回 "index.html" 文件。
  2. "/src" 路由:使用 GET 方法返回 "app.py" 文件。
  3. "/super-secret-route-nobody-will-guess" 路由:使用 PUT 方法打开名为 "flag" 的文件并将其中的内容返回给客户端。

可以看出,第三个路由是一个秘密路由,只有当请求方法为 PUT 并且路径为 "/super-secret-route-nobody-will-guess" 时才能访问。它会打开名为 "flag" 的文件并将其中的内容返回给客户端。这可能是一个漏洞,因为未对该路由进行身份验证或授权检查,攻击者可以通过篡改 HTTP 请求来绕过安全控制,获取敏感信息或执行恶意操作。

PUT请求?用bp抓包,改一下请求方式,然后改文件路径在发包,就返回falg了

[NSSRound#1 Basic]basic_check

Dir没扫出来有用的东西

Nikto扫描扫描出PUT提交

这和上一题也是put提交,那么用bp抓一下,上传个shell?

上传成功

找到NSSCTF{0f3453aa-6199-442e-bb08-04d3cd2a2515}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值