https://www.jb51.net/article/22304.htm 如下正则: $a='2<span><nobr>tóng<span class="h">dòng</span></nobr><br>垌</span>3';echo preg_replace('/<span class="h">[^<]*?</s
<?php highlight_file(__FILE__); error_reporting(0); $file = "1nD3x.php"; $shana = $_GET['shana']; $passwd = $_GET['passwd']; $arg = ''; $code = ''; echo "<br /><font color=red><B
捞到代码,在本地搭建,源码(rce.php): <?php error_reporting(0); if(isset($_GET['code'])){ $code=$_GET['code']; if(strlen($code)>40){ die("This is too Long.");
知识点1: preg_match()只匹配单行数据,利用%0a绕过,看一个例子: <?php $a=urldecode('%0aflag'); if(preg_match('/^.*(flag).*$/',$a)){ echo '匹配到了'; } else echo "没匹配到"; ?> 运行会输出没匹配到,这适合传参是get传参,因为%0a经过urldecode后会变成换行符,preg_ma
这道题的思路是使用githack工具扫描目标ip/.git,得到index.php,进行代码审计,得到flag git源码泄露的原因: 开发人员在开发时,常常会先把源码提交到远程托管网站(如github),最后再从远程托管网站把源码pull到服务器的web目录下,如果忘记把.git文件删除,就造成此漏洞。利用.git文件恢复处
function matchAll (data, exp) { var regex = exp; var Regex = new RegExp(regex, 'mg'); var Matches = data.match(Regex); matchesArray = new Array(); for (var i in Matches) { ngRegex = new RegExp(regex); ngMatche
漏洞详情: 使用了危险函数:preg_replace的/e模式匹配路由: preg_replace 函数执行一个正则表达式的搜索和替换。 preg_replace ( mixed $pattern , mixed $replacement , mixed $subject ) preg_replace(‘正则规则’,‘替换字符’,‘目标字符’) $pattern: 要搜索的模式,可以是字符
[GXYCTF2019]Ping Ping Ping 打开靶场 就只有一个提示,直接按照提示进行测试 会返回ping ip的结果,联想到另外一道题,里面介绍了管道符的使用 [ACTF2020 新生赛]Exec 尝试直接使用管道符 使用ls查看目录下的文件,尝试访问flag.php 根据提示,应该是空格被过滤了,需要绕过空格 命
知识点 目录扫描 关键字绕过 无参RCE 做题经过 看到题目一脸懵,只有一句话:flag在哪里呢?,随便输入flag.php发现没有404,说明flag就在当前目录下,然后就没思路啦。看WP发现要进行目录扫描,使用dirsearch进行目录扫描,由于出现大量429,所以加上-s 2(这个数字视情况可大可小),扫描出git目录,存
珍惜现在,活在当下,行在今日。 Less-21 1.直接用我们知道的用户名密码都为:admin的进行尝试,发现: 2.发现Cookie为:uname = YWRtaW4= 说明对其进行了base64编码,那就编码看看:在线编码解码 YWRtaW4=就是admin,确实是base64编码,那就是说构造的语句也要进行base64编码。 还是在Cookie中构
SQL注入 绕过and和or过滤 1.基础知识介绍 1.MySQL中的大小写不敏感,大写与小写一样。 2.MySQL中的十六进制与URL编码 3.符号和关键字替换and – &&、or–|| 4.内联注释与多行注释 /*! 内联注释*/ /*多行注释*/ 2.去除and和or的代码分析 preg_replace(mixed $pattern,mixed $
因为/ 斜线是特殊字符需要转义/ $url = $request->get('url'); $path = dirname(APP_PATH).'/data/monitor_hosts.txt'; $b = File::someRow($path, function($host) use ($url) { $pat = '/^http(s)?:\/\/'.$host.'.*$/'; preg_match($p
ics-05 打开没有任何显示和可操作的点 先dirsearch没结果 后来发现上方的选项卡竟然是可以点的 有一个跳转 http://111.200.241.244:49357/index.php?page=index 终于可以勇敢get提交参数了 由于知道的东西太少了 故而试试可不可以通过伪协议读取 http://111.198.29.45:4474
(PHP 4, PHP 5, PHP 7, PHP 8) preg_match — 执行匹配正则表达式 说明 preg_match( string $pattern, string $subject, array &$matches = null, int $flags = 0, int $offset = 0 ): int|false 搜索subject与pattern
(PHP 4, PHP 5, PHP 7, PHP 8) preg_match_all — 执行一个全局正则表达式匹配 说明 preg_match_all( string $pattern, string $subject, array &$matches = null, int $flags = 0, int $offset = 0 ): int|false|null
preg_match $url = "https://www.baidu.com/api/users"; if (preg_match('/api/', $url)) { return "包含"; } else { return "不包含"; } strpos $url = "https
public function filterNickname($nickname){ $nickname = preg_replace('/[\x{1F600}-\x{1F64F}]/u', '', $nickname); $nickname = preg_replace('/[\x{1F300}-\x{1F5FF}]/u', '', $nickname);
<?php error_reporting(0); if(!isset($_GET['code'])){ highlight_file(__FILE__); }else{ $code = $_GET['code']; if(preg_match("/[A-Za-z0-9_$@]+/",$code)){ die('fighting!'); } eval($code)
//平假名输入检查 if(!preg_match('/^[ぁ-ん]+$/u', $val)){ //error処理 } //片假名输入检查 if(!preg_match('/^[[ァ-ン]|ー]+$/u', $val)){ //error処理 } //邮件 if(!preg_match('/^[a-zA-Z0-9_\.\-]+@(([a-zA-Z0-9_\.\-]+\.)+[a-zA-Z0-9]+$)/', $val)){ /
[GXYCTF2019]禁止套娃 <?php include "flag.php";//执行并包含flag.php echo "flag在哪里呢?<br>"; if(isset($_GET['exp'])){//以get方式提交exp,非空且为字符串 if (!preg_match('/data:\/\/|filter:\/\/|php:\/\/|phar:\/\//i', $_GE
首先以题为例 进来后是这个界面 题目告诉我们用json格式所以我们输入{"cmd":"ls"}查看有啥文件 发现有index.php这个文件里面有源码,这个题目一开始是就给了源码 <?php putenv('PATH=/home/rceservice/jail'); if (isset($_REQUEST['cmd'])) { $json = $_REQUEST['cmd'];
查看源代码、network,什么都没有 直接输入/.git/时返回403,输入/.git/head可以下载文件,发现git泄漏 使用GitHack下载源码 <?php include "flag.php"; echo "flag在哪里呢?<br>"; if(isset($_GET['exp'])){ if (!preg_match('/data:\/\/|filter:\/\/|php:\/
最近参加羊城杯,遇到了一道题本来的思路是绕过preg_match()函数读取secret.php文件,然后从secret.php中给的函数构造pop链使用反序列化的知识点进行命令执行,从而得到flag 但是问题是第一步就出现了问题,绕过preg_match()就绕不过去记录一下:我搜索到的常用的绕过方法有:1.数组绕过,即传
Less-25: 核心语句: 各种回显也均有。 通过blacklist,我们可以发现,本题屏蔽了and和or。 preg_replace函数中正则表达式后面的i是一个修饰符,代表正则匹配时不区分大小写。 我们也发现,该函数未进行重复替换。所以,我们
thinkphp-2x-rce 代码执行 漏洞描述 ThinkPHP框架 - 是由上海顶想公司开发维护的MVC结构的开源PHP框架,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。 ThinkPHP ThinkPHP 2.x版本中,使用preg_replace的/e模式匹配路由导致用户的输入参数被插入双