亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > PHP中一個有趣的preg_replace函數(shù)詳解

PHP中一個有趣的preg_replace函數(shù)詳解

熱門標(biāo)簽:萍鄉(xiāng)商鋪地圖標(biāo)注 電信外呼系統(tǒng)多少錢一個月 神龍斗士電話機(jī)器人 太原400電話申請流程 代理打電話機(jī)器人 合肥企業(yè)外呼系統(tǒng)線路 企業(yè)400電話辦理多少費用 桂陽公司如何做地圖標(biāo)注 宿州正規(guī)外呼系統(tǒng)軟件

0x01 起因

事情的起因是下午遇到了 preg_replace 函數(shù),我們都知道 preg_replace 函數(shù)可能會導(dǎo)致命令執(zhí)行。現(xiàn)在我們來一些情況。

0x02 經(jīng)過

踩坑1:

測試代碼大概是這樣的:

foreach ($_GET as $regex => $value) {
 preg_replace('/(' . $regex . ')/ei','strtolower("\\1")',$value);
}

測試過程中發(fā)現(xiàn)通過瀏覽器的方式傳入數(shù)據(jù)的時候,會將 . + 等特殊字符轉(zhuǎn)換為 _ 。

這里涉及到了php的一個特性

php自身在解析請求的時候,如果參數(shù)名字中包含空格、.、[等字符,會將他們轉(zhuǎn)換成_。

?php
$a = $_GET;
var_dump($a);
?>

經(jīng)過我的fuzz,結(jié)果如下圖:

踩坑2:

那我們知道 preg_replace 的 /e 修正符會將 replacement 參數(shù)當(dāng)作 php 代碼,并且以 eval 函數(shù)的方式執(zhí)行,前提是 subject 中有 pattern 的匹配。既然是這樣我們看一張圖。

圖中實際上通過 eval 執(zhí)行的是 strtolower 函數(shù)。分別實際執(zhí)行的是:

strtolower("JUST TEST");
strtolower("PHPINFO()");
strtolower("{${PHPINFO()}}");

第三個之所以可以執(zhí)行代碼,是因為我們通過復(fù)雜(花括號)語法的方式來讓其代碼執(zhí)行。

踩坑3:

回到源代碼中,我們再理解一下:

foreach ($_GET as $regex => $value) {
 preg_replace('/(' . $regex . ')/ei','strtolower("\\1")',$value);
}

這里的 replacement 是 strtolower(“\\1”) ,著重理解一下 \\1 。

每個這樣的引用將被匹配到的第n個捕獲子組捕獲到的文本替換。 n可以是0-99,\0和\$0代表完整的模式匹配文本。

假設(shè)一個正則表達(dá)式是這樣的:

preg_replace('/(.*)(\&;|)' . $key . '=[^]+?()(.*)/i', '$1$2$4', $url . '');

這里的 \$1\$2\$4 等同于上面的 \1\2\4 的作用,因此我們看一下是怎么選擇匹配的。

 $1 $2   $3 $4
'/(.*)(\&;|)' . $key . '=[^]+?()(.*)/i'

0x03 解決

好了上面都已經(jīng)鋪墊完坑了,這里要開始解決了。

foreach ($_GET as $regex => $value) {
 preg_replace('/(' . $regex . ')/ei','strtolower("\\1")',$value);
}

我們想要讓這部分代碼達(dá)到代碼執(zhí)行的效果需要達(dá)到幾個條件:

  • pattern 部分的表達(dá)式需要命中 \$value 中的數(shù)據(jù)
  • \1 中取出的數(shù)據(jù)復(fù)雜(花括號)語法的特征,來保證在雙引號的包含下達(dá)到代碼執(zhí)行的效果
  • 由于php的特性url會將 . 、 [ 、 + 等特殊字符轉(zhuǎn)換為 _ 。

我們知道這里是通過 get 方式獲取到 \$regex 和 \$value 的,要想在 replacement 部分通過 \1 截取到 pattern 正則匹配命中 \$value 中的數(shù)據(jù),并且攜帶 \$ 、 { 、 ( 這里就涉及到正則表達(dá)式的使用了。

這里我選擇了 \S ,也就是匹配任意的非空白字符,那么最后的payload長這樣

\S*()={${phpinfo()}}

0x04 后記

其實還有點小問題,我這邊沒有寫,不過大家可以看看這個深入研究preg_replace與代碼執(zhí)行。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • PHP 字符串正則替換函數(shù)preg_replace使用說明
  • PHP正則替換函數(shù)preg_replace和preg_replace_callback使用總結(jié)
  • php正則之函數(shù) preg_replace()參數(shù)說明
  • PHP 正則表達(dá)式之正則處理函數(shù)小結(jié)(preg_match,preg_match_all,preg_replace,preg_split)
  • php中preg_replace_callback函數(shù)簡單用法示例
  • php中使用preg_replace函數(shù)匹配圖片并加上鏈接的方法
  • php正則preg_replace_callback函數(shù)用法實例
  • PHP正則替換函數(shù)preg_replace()報錯:Notice Use of undefined constant的解決方法分析
  • PHP5.2下preg_replace函數(shù)的問題

標(biāo)簽:衡陽 白銀 綏化 鄂州 廊坊 崇左 辛集 太原

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP中一個有趣的preg_replace函數(shù)詳解》,本文關(guān)鍵詞  PHP,中,一個,有趣,的,preg,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP中一個有趣的preg_replace函數(shù)詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于PHP中一個有趣的preg_replace函數(shù)詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    国产视频在线免费观看| 欧美日本免费| 高清一级做a爱过程不卡视频| 四虎久久精品国产| 国产国语在线播放视频| 美国一区二区三区| 中文字幕一区二区三区 精品| 成人免费福利片在线观看| 久久久久久久男人的天堂| 成人免费观看的视频黄页| 精品视频在线看| 日韩专区亚洲综合久久| 国产视频一区在线| 日韩欧美一及在线播放| 欧美日本免费| 亚飞与亚基在线观看| 人人干人人插| 国产成人啪精品| 国产精品1024永久免费视频| 91麻豆精品国产片在线观看| 天天做人人爱夜夜爽2020| 午夜久久网| 国产福利免费视频| 日本伦理网站| 日韩中文字幕一区| 韩国三级视频网站| 欧美国产日韩一区二区三区| 国产伦精品一区三区视频 | 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产视频在线免费观看| 一a一级片| 精品久久久久久影院免费| 日本伦理片网站| 色综合久久久久综合体桃花网| 国产成a人片在线观看视频| 久久国产精品永久免费网站| 欧美激情一区二区三区视频 | 国产91丝袜在线播放0| 欧美激情一区二区三区在线播放| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 天天做日日干| 日韩一级精品视频在线观看| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 一本高清在线| 美国一区二区三区| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 九九精品影院| 亚洲精品久久久中文字| 日韩av片免费播放| 国产不卡在线观看| 日本免费看视频| 二级特黄绝大片免费视频大片| 欧美国产日韩一区二区三区| 国产伦理精品| 国产不卡在线播放| 成人免费观看的视频黄页| 99久久精品国产高清一区二区 | 国产成a人片在线观看视频| 亚洲不卡一区二区三区在线| 999久久狠狠免费精品| 91麻豆国产级在线| 四虎影视精品永久免费网站| 999久久狠狠免费精品| 色综合久久天天综线观看| 精品国产亚洲一区二区三区| 精品视频在线观看一区二区| 日本特黄特色aaa大片免费| 日韩免费在线观看视频| 天天做日日干| 91麻豆精品国产片在线观看| 国产一区精品| 欧美激情中文字幕一区二区| 欧美日本免费| 一级毛片视频免费| 国产视频在线免费观看| 国产91视频网| 台湾美女古装一级毛片| 精品久久久久久综合网| 久久国产影视免费精品| 日韩专区亚洲综合久久| 国产成人精品综合在线| 99色视频在线| 可以免费看毛片的网站| 国产成人精品一区二区视频| 韩国三级视频在线观看| 九九热精品免费观看| 天天色成人| 国产视频一区二区三区四区| 国产美女在线一区二区三区| 日本在线不卡免费视频一区| 日本在线不卡免费视频一区| 青青久热| 午夜欧美福利| 99热热久久| 欧美激情影院| 欧美一级视频免费| 黄视频网站免费| 99色精品| 亚洲天堂在线播放| 国产精品123| 天天做人人爱夜夜爽2020毛片| 欧美激情一区二区三区视频高清| 亚州视频一区二区| 国产一区二区精品久久91| 青青久久精品国产免费看| 日日夜人人澡人人澡人人看免| 999精品视频在线| 日日日夜夜操| 免费国产在线观看| 国产麻豆精品免费视频| 国产a视频| 韩国三级视频在线观看| 国产精品自拍在线观看| 亚欧乱色一区二区三区| 亚洲精品永久一区| 国产综合91天堂亚洲国产| 欧美另类videosbestsex| 色综合久久天天综合绕观看| 欧美激情在线精品video| 免费毛片播放| 九九九在线视频| 毛片高清| 青草国产在线观看| 台湾美女古装一级毛片| 国产成人啪精品视频免费软件| 黄色免费网站在线| 日韩专区亚洲综合久久| 国产精品12| 欧美大片aaaa一级毛片| 日本特黄特黄aaaaa大片| 精品视频在线看 | 精品久久久久久中文| 精品国产香蕉在线播出 | 久久国产影院| 999久久66久6只有精品| 97视频免费在线观看| 黄视频网站在线免费观看| 九九热精品免费观看| 精品视频在线观看一区二区三区| 日韩专区在线播放| 国产网站免费在线观看| 国产不卡福利| 欧美激情一区二区三区视频 | 国产视频在线免费观看| 精品毛片视频| 韩国毛片 免费| 成人影视在线播放| 成人a级高清视频在线观看| 欧美另类videosbestsex视频| 成人av在线播放| 午夜欧美成人久久久久久| 国产福利免费视频| 久久久久久久男人的天堂| 国产极品精频在线观看| 国产极品精频在线观看| 一级毛片视频播放| 欧美a级成人淫片免费看| 天堂网中文字幕| 国产网站免费| 青青久热| 日本在线www| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 99色吧| 国产一区二区精品尤物| 精品美女| 天天做人人爱夜夜爽2020毛片| 国产成人精品综合在线| 亚洲女人国产香蕉久久精品| 国产一区免费在线观看| 四虎久久精品国产| 精品国产一区二区三区久久久狼 | 国产一区二区高清视频| 黄色免费三级| 国产a网| 欧美激情影院| 日韩在线观看视频黄| 亚洲精品久久久中文字| 美女免费精品视频在线观看| 亚洲www美色| 国产极品白嫩美女在线观看看| 亚洲www美色| 99久久精品国产高清一区二区 | 午夜激情视频在线观看| 麻豆网站在线免费观看| 国产一区二区精品久久91| 亚洲女人国产香蕉久久精品| 亚久久伊人精品青青草原2020| 日本免费看视频| 一级女性全黄久久生活片| 精品久久久久久中文| 国产网站免费视频| 麻豆午夜视频| 99热精品在线| 欧美国产日韩在线| 欧美a级大片| 99久久精品国产免费| 91麻豆精品国产自产在线观看一区| 国产一区二区精品久久91|