bugku simple_ssti1及flask_fileup相关

一.模板引擎

Smarty:

https://blog.csdn.net/xingzhishen/article/details/78834160?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162273715616780264095785%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162273715616780264095785&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-78834160.first_rank_v2_pc_rank_v29&utm_term=Smarty&spm=1018.2226.3001.4187

Mako:https://blog.csdn.net/cdnight/article/details/43730371?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162273786316780265466050%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162273786316780265466050&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-43730371.first_rank_v2_pc_rank_v29&utm_term=Mako&spm=1018.2226.3001.4187

Jinja2:https://blog.csdn.net/weixin_30727835/article/details/97804395?ops_request_misc=&request_id=&biz_id=102&utm_term=jinja2&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-8-.nonecase&spm=1018.2226.3001.4187

Twig:https://blog.csdn.net/yanyanforest/article/details/76572919?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162279484216780357239008%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162279484216780357239008&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-76572919.first_rank_v2_pc_rank_v29&utm_term=twig%E8%AF%AD%E6%B3%95&spm=1018.2226.3001.4187

Freemaker:https://blog.csdn.net/zhangdaiscott/article/details/77505453?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162279490316780366565211%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162279490316780366565211&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-77505453.first_rank_v2_pc_rank_v29&utm_term=freemaker%E8%AF%AD%E6%B3%95&spm=1018.2226.3001.4187

Velocity:

https://blog.csdn.net/tanga842428/article/details/53014814?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162279496216780255215782%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162279496216780255215782&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-53014814.first_rank_v2_pc_rank_v29&utm_term=velocity%E8%AF%AD%E6%B3%95&spm=1018.2226.3001.4187

Jade:https://blog.csdn.net/joyce_lcy/article/details/94467287?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162279427716780264095267%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162279427716780264095267&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-5-94467287.first_rank_v2_pc_rank_v29&utm_term=jade%E8%AF%AD%E6%B3%95&spm=1018.2226.3001.4187

二.Flask/jinja2模板注入

1.Flask是一个使用 Python 编写的轻量级 Web 应用框架。模板引擎是jinja2

2.在jinja2中,存在三种语法:

(1)控制结构 {% %}

{% if user %}

Hello,{{user}} !

{% else %}

Hello,Stranger!

{% endif %}

(2)变量取值 {{ }}

(3)注释 {# #}

jinja2模板中使用 {{ }} 语法表示一个变量,它是一种特殊的占位符。当利用jinja2进行渲染的时候,它会把这些特殊的占位符进行填充/替换,jinja2支持python中所有的Python数据类型比如列表、字段、对象等。

更多语法参考

https://blog.csdn.net/qq_33287645/article/details/81910688?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162273892316780265451593%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162273892316780265451593&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-6-81910688.first_rank_v2_pc_rank_v29&utm_term=jinja2&spm=1018.2226.3001.4187

 

3.模板注入

模板可被操控,修改输入内容,执行python内部函数进而执行系统命令

在jinja2中是可以直接访问python的一些对象及其方法的,如字符串对象及其upper函数,列表对象及其count函数,字典对象及其has_key函数如何利用python函数需要了解沙盒逃逸参考https://blog.csdn.net/JBlock/article/details/82938656?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162273858516780261983817%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162273858516780261983817&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-82938656.first_rank_v2_pc_rank_v29&utm_term=python%E6%B2%99%E7%9B%92%E9%80%83%E9%80%B8&spm=1018.2226.3001.4187

4.沙盒逃逸

(1)内建空间名称builtins:在启动Python解释器之后,即使没有创建任何的变量或者函数,还是会有许多函数可以使用,这些函数就是内建函数,称空间在python是从名称到对象的映射,在python程序的执行过程中,至少会存在内建名称空间和全局名称空间两个名称空间始的builtins模块提供内建名称空间到内建对象的映射
2)dir()函数能够返回由对象所定义的名称列表。 如果这一对象是一个模块,则该列表会包括函数内所定义的函数、类与变量。 该函数可以如果参数是模块名称,函数将返回这一指定模块的名称列表。 如果没有提供参数,函数将返回当前模块的名称列表

(3)Import函数:__import__(name[, globals[, locals[, fromlist[, level]]]])用于导入模块

使用import引用函数库有两种方法:

【1】import <函数库名称>

这样引用是调用了函数库中的所有函数使用库中某个函数时格式如下。

<库名>.<函数名>(<函数参数>)

【2】form <库名> import <函数名,函数名,…>

也可以是 from <库名> import * 这样是调用库中所有函数,函数的使用方法是<函数名>(<函数参数>)

(4)类继承:python中对一个变量应用__class__方法从一个变量实例转到对应的对象类型后,类有以下三种关于继承关系的方法

__base__ 对象的一个基类,一般情况下是object,有时不是,这时需要使用下一个方法

__mro__ 同样可以获取对象的基类,只是这时会显示出整个继承链的关系,是一个列表,object在最底层故在列表中的最后,通过__mro__[-1]可以获取到

__subclasses__() 继承此对象的子类,返回一个列表

有这些类继承的方法,我们就可以从任何一个变量,顺藤摸瓜到基类中去,再获得到此基类所有实现的类,就可以获得到很多的类啦,当然,这些类还只是直接继承object的,如果我们顺着子类往下摸说不定还能找到更多

python中一切均为对象,均继承object对象,python的object类中集成了很多的基础函数,我们想要调用的时候也是需要用object去操作的,总结了两种创建object的方法

(5)两个魔术方法:从变量->对象->基类->子类遍历->全局变量 这个流程中,找到我们想要的模块或者函数两种魔术方法能够以字符串的形式调用属性,提供了一些字符绕过的可能

在Python的世界中:

  • object是父子关系的顶端,所有的数据类型的父类都是它
  • type是类型实例关系的顶端,所有对象都是它的实例的

也就是说这里不同于我们之前学到的类与对象的关系,这里有两条线,一个是类的关系,一个是实例的关系。也就是说:

object和type都既是类又是实例

object是type的一个实例

type是object的子类

__base__:子类找父类

__subclasses__():父类找子类

__class__:子实例找父实例  

三.Bugku  simple--ssti1及flask-fileup注入题wp

1.Bugku simple sst1:提示在secret_key下可以拿到flag   

在config.py文件配置secret_keyhttps://blog.csdn.net/qq_33722246/article/details/89026126?utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control

直接访问URL+?flag={{ config.SECRET_KEY}}得到flag

2.bugku flask—fileup:根据提示他可以执行python语句但网页源代码中只接受jpg或jnp文件,新建一个python文件写入python请求代码更改文件后缀上传。

import os

os.systema('cat /flag')

Cat后面有个空格!

四.ssti注入

https://blog.csdn.net/qq_43431158/article/details/105322894?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162273697116780366540287%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162273697116780366540287&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-105322894.first_rank_v2_pc_rank_v29&utm_term=ssti%E6%B3%A8%E5%85%A5&spm=1018.2226.3001.4187

 

bugku simple_ssti1及flask_fileup相关_第1张图片

 

 

 

 

你可能感兴趣的:(ctfweb)