针对于PHP代码的开发的网站,最近在给客户做网站安全检测的同时,大大小小的都会存在网
站的后台管理页面被绕过并直接登录后台的漏洞,而且每个网站的后台被绕过的方式都不一样,根
据SINE安全渗透测试多年来经验,来总结一下网站后台绕过的一些详情,以及该如何去防范后台被
绕过,做好网站的安全部署。
后台验证码缺乏安全验证
比如在axublog程序中,网站后台存在一个验证管理员登录的一个函数chkadcookie()。但是在网
站后台的ad/art.php中并没有chkadcookie()此验证函数,因而就造成了普通访问条用户可以越权
访问。这种漏洞的原理也比较简单,一般情况下是经验不足的开发者漏掉了验证函数。Sine安
全公司是一家专注于:服务器安全、网站安全、网站安全检测、网站漏洞修复,渗透测试,安全服
务于一体的网络安全服务提供商。
站后台的ad/art.php中并没有chkadcookie()此验证函数,因而就造成了普通访问条用户可以越权
访问。这种漏洞的原理也比较简单,一般情况下是经验不足的开发者漏掉了验证函数。Sine安
全公司是一家专注于:服务器安全、网站安全、网站安全检测、网站漏洞修复,渗透测试,安全服
务于一体的网络安全服务提供商。
后台验证代码没有做到绝对的安全验证
axublog后台验证函数绕过
后台登录的验证方式
在axublog中的后台验证函数是chkadcookie(),代码如下图所示:
通过对网站代码的详细安全检测,发现了问题中只有$date我们是无法知道,而UA和
REMOTE_ADDR都是客户端可控的验证逻辑是如果在COOKIE中出现了在txtchkad.txt中的值,
那么就认为是登录的。这样的验证逻辑明显存在很大的漏洞问题。
REMOTE_ADDR都是客户端可控的验证逻辑是如果在COOKIE中出现了在txtchkad.txt中的值,
那么就认为是登录的。这样的验证逻辑明显存在很大的漏洞问题。
如何绕过后台验证?
只需要将COOKIE中的chkad设置为_就可以绕过后台的登录了。
网站安全之变量覆盖漏洞详情:
beescms的后台验证函数绕过
后台验证方式
检查登录的函数is_login()的代码为如下图所示:
上述的代码中并没有对$_POST使用fl_value()函数进行过滤,但又使用了extract()这样的函数,
所以就可以通过发送POST参数覆盖掉SEESION中的值,从而绕过验证了。如何绕过后台验证?
Sine安全公司是一家专注于:服务器安全、网站安全、网站安全检测、网站漏洞修复,渗透测试,
安全服务于一体的网络安全服务提供商。
所以就可以通过发送POST参数覆盖掉SEESION中的值,从而绕过验证了。如何绕过后台验证?
Sine安全公司是一家专注于:服务器安全、网站安全、网站安全检测、网站漏洞修复,渗透测试,
安全服务于一体的网络安全服务提供商。
绕过方式很简单,访问随便一个页面,发送POST请求包如下:
index.php
POST:_SESSION[login_in]=1&_SESSION[admin]=1&_SESSION[login_time]=99999999999
此时就成功地创建了SESION变量,包括$SESSION[loginin]=1、$_SESSION[admin]=1、
SESSION[logintime]=99999999999。 之后访问管理员页面,就可以成功地登录后台了。
SESSION[logintime]=99999999999。 之后访问管理员页面,就可以成功地登录后台了。
针对于以上两个绕过网站后台的漏洞,可以看出一个是验证码,一个是变量覆盖漏洞,关于这
2个漏洞的修复方法,根据现有的代码,进行安全过滤加强逻辑判断,以及函数的赋值安全检查。
2个漏洞的修复方法,根据现有的代码,进行安全过滤加强逻辑判断,以及函数的赋值安全检查。