奥运会网球比分规则|雪缘网网球比分直播|
歡迎來到 黑吧安全網 聚焦網絡安全前沿資訊,精華內容,交流技術心得!

PHP Parametric Function RCE

來源:本站整理 作者:佚名 時間:2019-04-04 TAG: 我要投稿

最近做了一些php無參數函數執行的題目,這里做一個總結,以便以后bypass各種正則過濾。
大致思路如下:
1.利用超全局變量進行bypass,進行RCE
2.進行任意文件讀取
什么是無參數函數RCE
傳統意義上,如果我們有:
eval($_GET['code']);
即代表我們擁有了“一句話木馬”,可以進行getshell,例如:

但是如果有如下限制:
if(';' === preg_replace('/[^\W]+\((?R)?\)/', '', $_GET['code'])) {   
    eval($_GET['code']);
}
我們會發現我們使用參數則無法通過以下正則的校驗:
/[^\W]+\((?R)?\)/
而該正則,正是我們說的無參數函數的校驗,其只允許執行如下格式函數:
a(b(c()));
a();
但不允許如下格式:
a('123');
這樣一來,失去了參數,我們進行RCE的難度則會大幅上升。
而本篇文章旨在bypass這種限制,并做出一些更苛刻條件的Bypass。
法1:getenv()
查閱php手冊,有非常多的超全局變量:
$GLOBALS
$_SERVER
$_GET
$_POST
$_FILES
$_COOKIE
$_SESSION
$_REQUEST
$_ENV
我們可以使用:
$_ENV
對應函數為:
getenv()[object Object]
雖然getenv()可獲取當前環境變量,但我們怎么從一個偌大的數組中取出我們指定的值成了問題。
這里可以使用方法:

效果如下:

但是我不想要下標,我想要數組的值,那么我們可以使用:

兩者結合使用即可有如下效果:

我們則可用爆破的方式獲取數組中任意位置需要的值,那么即可使用getenv(),并獲取指定位置的惡意參數。
法二:getallheaders()
之前我們獲取的是所有環境變量的列表,但其實我們并不需要這么多信息。僅僅http header即可。
在apache2環境下,我們有函數getallheaders()可返回。
我們可以看一下返回值:
array(8) {
    ["Host"]=> string(14) "106.14.114.127"
    ["Connection"]=> string(10) "keep-alive"
    ["Cache-Control"]=> string(9) "max-age=0"
    ["Upgrade-Insecure-Requests"]=> string(1) "1"
    ["User-Agent"]=> string(120) "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"
    ["Accept"]=> string(118) "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3"
     ["Accept-Encoding"]=> string(13) "gzip, deflate" ["Accept-Language"]=> string(14) "zh-CN,zh;q=0.9"
}
我們可以看到,成功返回了http header,我們可以在header中做一些自定義的手段,例如:

此時我們再將結果中的惡意命令取出:
var_dump(end(getallheaders()));

這樣一來相當于我們將http header中的sky變成了我們的參數,可用其進行bypass無參數函數執行。
例如:

那么可以進一步利用http header的sky屬性進行rce。

法三:get_defined_vars()
使用getallheaders()其實具有局限性,因為他是apache的函數,如果目標中間件不為apache,那么這種方法就會失效,我們也沒有更加普遍的方式呢?
這里我們可以使用get_defined_vars(),首先看一下它的回顯。

發現其可以回顯全局變量有如下幾種:
$_GET
$_POST
$_FILES
$_COOKIE
我們這里的選擇也就具有多樣性,可以利用$_GET進行RCE,例如:

[1] [2]  下一頁

【聲明】:黑吧安全網(http://www.nddver.tw)登載此文出于傳遞更多信息之目的,并不代表本站贊同其觀點和對其真實性負責,僅適于網絡安全技術愛好者學習研究使用,學習中請遵循國家相關法律法規。如有問題請聯系我們,聯系郵箱[email protected],我們會在最短的時間內進行處理。
  • 最新更新
    • 相關閱讀
      • 本類熱門
        • 最近下載
        奥运会网球比分规则
        17149期胜负彩任九奖金 养奶牛和肉牛哪个赚钱 福建36选7中奖规则表 江苏十一选五开奖图 吉林十一选五 时时彩能赚钱吗永诚彩票-线路检测 河北燕赵风采排列七 北京pk10开奖结果上盛世 万博ag真人坑人 nba比分网即时比分