文档详情

细谈Web系统安装程序安全.doc

发布:2019-04-02约3.77千字共7页下载文档
文本预览下载声明
细谈Web系统安装程序安全 Author:Yaseng [目录] 0x00 前言 0x01 关于程序安装文件 0x02 最土团购直接重复安装 加 getShell 0x03 跳转绕过 phpdisk header bypass getShell 0x04 全局变量覆盖绕过 sdcms 0x05 非主流 dcrcms 的非常重装 0x06 phpweb 安装会员验证绕过 0x07 其他绕过实例 0x08 安全代码的编写 0x09 总结 前言 作为一个Web系统,安装程序是必不可少的。提供安装系统,已连接数据库和初始化网站数据,当首次安装时,系统一般会生成一个lock文件以免非法重装,但我们可以通,导致系统重装,系统数据丢失甚至getShell,本文以多个实例浅谈web系统安装程序的安全。 关于程序安装文件 web系统安装在第一次访问程序入口的会自动安装, 以笔者熟悉的php为例,一般是install.php 或者根目录下的install文件夹,安装流程如下 开始 开始 已安装 已安装 提示 跳转 环境检测 环境检测 提示 连接数据库 连接数据库 提示 提示 初始化网站数据 初始化网站数据 安装成功 图一 围观以上内涵图先,接下来我们用多个案例细谈之。 最土团购直接重复安装 加 getShell 参考 HYPERLINK http://www.0855.tv/post/46.htm http://www.0855.tv/post/46.htm 1.访问/install.php (有的人懒,并没有删除这个文件) 2.填写自己本机搭建好的Mysql帐户和IP,重新安装之。 3.注册一个帐户,第一个注册的默认为管理员。 4.访问/manage/index.php 5.点击 设置--模版---选择about_job.html 添加PHP一句话 6.用菜刀链接/about/job.php Phpdisk header 绕过 参考http://yaseng.me/phpdisk-header-bypass-getshell-exp.html 图二 如图二,已安装检测时,直接 header跳转,而php中的 header 函数跳转之后还可以执行,而为了安装方便去掉gpc,导致重复安装直接getShell. 图三 xdcms 全局变量覆盖绕过重装 参考 HYPERLINK http://yaseng.me/xdcms-open-code-audit.html http://yaseng.me/xdcms-open-code-audit.html 看 install下的 index.php 文件 foreach(Array(_GET,_POST,_COOKIE) as $_request){ foreach($$_request as $_k = $_v) ${$_k} = _runmagicquotes($_v); } 经典的全局变量覆盖,代码的意思是把传入的变量数组遍历赋值,比如 $_GET[‘a’] 赋值为 $a Ok 继续往下看已安装检测代码 $insLockfile = dirname(__FILE__)./install_lock.txt; //在全局数据遍历之前 if(file_exists($insLockfile)){ exit( 程序已运行安装,如果你确定要重新安装,请先从FTP中删除 install/install_lock.txt!); } 这里的 insLockfile是我们可控的(全局变量覆盖),随便传入一个参数 HYPERLINK /install/index.php?insLockfile=1 /install/index.php?insLockfile=1
显示全部
相似文档