搭建
http://down.chinaz.com/soft/28180.htm
PHPSSO是用PHP开发的单点登录系统。在接入PHPSSO的多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
漏洞点一 —— 后台内网端口探测
该漏洞点需要登录后台
在phpcms\modules\search\searchadmin.php
文件内有个public_test_sphinx()
方法
post传入参数sphinxhost
和sphinxport
,并没有对该参数进行过滤,105行的fsockopen()
函数:
打开一个网络连接或者一个Unix套接字连接
fsockopen ( string $hostname , int $port = -1 , int &$errno = ? , string &$errstr = ? , float $timeout = ini_get("default_socket_timeout") ) : resource
参数:
hostname
如果安装了OpenSSL,那么你也许应该在你的主机名地址前面添加访问协议ssl://或者是tls://,从而可以使用基于TCP/IP协议的SSL或者TLS的客户端连接到远程主机。
port
端口号。如果对该参数传一个-1,则表示不使用端口,例如unix://。
errno
如果传入了该参数,holds the system level error number that occurred in the system-level connect() call。
如果errno的返回值为0,而且这个函数的返回值为false,那么这表明该错误发生在套接字连接(connect())调用之前,导致连接失败的原因最大的可能是初始化套接字的时候发生了错误。
errstr
错误信息将以字符串的信息返回。
timeout
设置连接的时限,单位为秒。
这样我们可以通过这个函数进行内网端口探测
当端口存在且开放时,页面返回1
不存在且出现以下报错信息
漏洞不够?请看下一篇
GOT IT!
******************************************************
具体利用方式需根据具体实践场景~