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

攻防世界免费题库难度三(2)

菜鸟萌新,如有错误还请大佬指正。

一、simple_js

查看页面源代码查看是否真的只是密码爆破。

function dechiffre(pass_enc){ var pass = "70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65"; var tab = pass_enc.split(','); var tab2 = pass.split(',');var i,j,k,l=0,m,n,o,p = "";i = 0;j = tab.length; k = j + (l) + (n=0); n = tab2.length; for(i = (o=0); i < (k = j = n); i++ ){o = tab[i-l];p += String.fromCharCode((o = tab2[i])); if(i == 5)break;} for(i = (o=0); i < (k = j = n); i++ ){ o = tab[i-l]; if(i > 5 && i < k-1) p += String.fromCharCode((o = tab2[i])); } p += String.fromCharCode(tab2[17]); pass = p;return pass; } String["fromCharCode"](dechiffre("\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30")); h = window.prompt('Enter password'); alert( dechiffre(h) );

结果页面源代码中发现存在密码加密方式,审计代码。发现我们无论输入怎样的密码都只会返回“FAUX PASSWORD HAHA”(即“70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65”所对应的ascii码值),那么最后的flag就应该在“\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30”上,十六进制转十进制字符拼接再对应ASCII码表。

"55,56,54,79,115,69,114,116,107,49,50" “786OsErtk12”

所以flag就是Cyberpeace{786OsErtk12}。

二、easytornado

进入网站后是个目录,对三个文件进行查看。

观察url,文件读取方式为filename和fileshash传参,filename为访问文件绝对路径,先尝试一下直接访问/fllllllllllllag。

报错。

filehash结合hints.txt文件得出filehash是cookie值连接MD5加密后的filename再进行MD5加密得出的结果,那么该如何获取cookie?

结合第二个文件和题目来看,Tornado的render()方法其实是其Web框架中用于渲染预定义模板文件的核心函数,通常与RequestHandler配合使用。考虑通过模板注入来获取cookie。

在Tornado中,要渲染一个模板,通常是在RequestHandler类中调用self.render()方法。Tornado为了方便开发者,在渲染模板时,会自动把一些“常用对象”注入到模板的命名空间(Context)中。查阅Tornado的官方源码,模板中默认可以直接使用一个名为handler的变量,指向的就是RequestHandler实例对象(不仅如此,通常还会有一个self变量,和handler是等价的,指向同一个对象)。

在报错页面尝试模板注入测试,发现有响应,百度了下ORZ是个网络梗,那么模板注入点确认。

尝试访问handler.settings。

成功获取cookie,那么接下来就是将/fllllllllllllag进行MD5加密,然后拼接cookie再进行MD5加密,进行访问,获取flag。

三、shrine

进入主页面。

import flask import os app = flask.Flask(__name__) app.config['FLAG'] = os.environ.pop('FLAG') @app.route('/') def index(): return open(__file__).read() @app.route('/shrine/') def shrine(shrine): def safe_jinja(s): s = s.replace('(', '').replace(')', '') blacklist = ['config', 'self'] return ''.join(['{{% set {}=None%}}'.format(c) for c in blacklist]) + s return flask.render_template_string(safe_jinja(shrine)) if __name__ == '__main__': app.run(debug=True)

发现以上python代码,发现:

FLAG存储在Flask应用的配置字典app.config中。

/shrine/<path:shrine>路由接受用户传入的path参数,将其传入safe_jinjia过滤后直接交给render_template_string渲染。

审计过滤规则,所有的“(”“)”都会被替换为空,那么无法通过模板注入执行函数;黑名单“config”、“self”会被提前置为None,无法直接使用。

在Python中,__globals__是Python函数对象的内置属性,返回函数所在模块的全局变量字典。

Flask中,current_app是Flask的应用上下文代理,指向当前运行的Flask应用实例app,是染过黑名单的核心对象。url_for(或get_flashed_messages)是Flask模板内置全局函数,无需调用即可访问其__globals__属性,获取函数所在上下文的全局字典变量。

综合上面知识,构造payload:

/shrine/{{url_for.__globals__['current_app'].config}}
/shrine/{{get_flashed_messages.__globals__['current_app'].config}}

获取flag。

菜鸟萌新,如有错误还请大佬指正。

http://www.jsqmd.com/news/459425/

相关文章:

  • 茅台app多账户自动预约程序系统源码
  • PCL 中 Point-to-Point / Point-to-Plane / GICP / NDT 的区别与联系
  • 2026年评价高的消防服洗涤设备厂家推荐:酒店洗衣房洗涤设备厂家信誉综合参考 - 行业平台推荐
  • 图图的嗨丝造相-Z-Image-Turbo模型解读:为何选择Z-Image-Turbo作为基座
  • 飞舞大学生成为算法糕手Day 7 | 四数相加Ⅱ、赎金信、三数之和、四数之和
  • 第十八章: Kubernetes - Rancher 控制面板使用
  • 深度学习环境搭建与 Hugging Face 本地模型实战全记录
  • 2026年口碑好的税务问题品牌推荐:税务需求/专业税务公司/成都税务公司项目推荐 - 行业平台推荐
  • 2026年比较好的高品质气压棒厂家推荐:电竞椅子气压棒/自动回位气压棒厂家选购参考汇总 - 行业平台推荐
  • computed 的缓存哲学:如何避免不必要的重复计算?
  • 2026年比较好的追背气弹簧品牌推荐:橱柜气弹簧/支架气弹簧/老板椅气弹簧品牌厂商推荐(更新) - 行业平台推荐
  • Big Data Mining and Analytics 2025|GPT-NAS:结合生成预训练模型的进化式神经架构搜索
  • 第十九章: Kubernetes - Rook Ceph 云原生存储
  • 阿里云 H5 一键登录接入实战:前后端完整实现
  • GE IC693PBS201从站通信模块
  • 第一篇文章
  • Spring AI 第 8 篇 ChatMemory 详解:如何让模型记住你的每一次对话
  • 鸿蒙APP开发经验分享:HarmonyOS Location Kit 端侧与云侧双方案落地指南
  • OpenClaw零基础教程:从一键部署,到7*24小时不间断运行!
  • APN(Access Point Name)详解:从基础原理到实际应用场景
  • 数据资产管理——172页详解数据资产管理深度解读【附全文阅读】
  • 用OpenClaw白嫖世界顶级模型,一个月省了2万块!
  • 嵌入式八股文学习-自学长期更新-2026
  • GitHub Browser-Use 部署踩坑实录:从失败到成功的曲折历程
  • Tower I3C Host Adapter 使用范例 (19)
  • 轻量级AI服务落地实战:Qwen2.5-0.5B-Instruct私有化部署与性能调优指南
  • 8集自然纪录片--Our Planet
  • “养虾”热潮的AB面:大厂抢滩、造富神话和万元账单
  • Java基础面试题之===集合篇
  • LoRaWAN协议-MAC帧加密与校验机制深度解析