网站渗透测试是指在没有获得网站源代码以及服务器的情况下,模拟入侵者的攻击手法对网站进行漏洞检测,以及渗透测试,可以很好的对网站安全进行全面的安全检测,把安全做到最大化。在挖掘网站漏洞的时候我们发现很多网站存在域名跳转的情况,下面我们来详细的讲解一下。
域名劫持跳转,也可以叫做url重定向漏洞,简单来讲就是在原先的网址下,可以使用当前域名跳转到自己设定的劫持网址上去。URL跳转漏洞,大多数被攻击者用来进行钓鱼获取用户的账号密码,以及COOKIES等信息。我们在对客户网站进行安全检测的时候,很多公司网站在登录接口,支付返回的页面,留言的页面,充值页面,设置银行卡等操作的页面都存在着域名跳转的漏洞。
我们来模拟下真实的渗透测试,本地搭建一个网站环境,域名地址http://127.0.0.1/ 最简单的也是最容易通俗易懂的,我们在用户登录网站的时候,进行跳转劫持,将我们设计好的钓鱼页面伪造成跟客户网站一模一样的,然后代码是:http://127.0.0.1/login.php?user=&pswd=&url=http://我们构造好的钓鱼地址/websafe.php,我们把这个地址发给用户,让他们去登录即可。 如下图所示:
从上面的2个图中,可以看出URL跳转漏洞被利用的淋漓尽致,有些网站可能会对跳转的代码进行防护,但是我们可以利用免杀的特征码进行绕过。比如@号,问号?,#,斜杠绕过,反斜线绕过,https协议绕过,XSS跨站代码绕过。充值接口绕过以及跳转劫持漏洞,大部分的平台以及网商城系统都会有充值的页面在充值成功后都会进行跳转到商户的网站上去,在跳转的过程中,我们需要充值一部分金额才能测试出漏洞导致存在不存在,只要你勇敢的去尝试,渗透测试漏洞,都会有收获的,针对充值的漏洞我们前端时间测试成功过。如下图:
利用域名跳转漏洞,我们将可以获取到客户登录的cookies以及管理员的cookies值,使用管理员的cookies值进行登录网站后台,对网站上传webshell,进一步的对网站篡改,以及控制。
关于如何修复网站跳转漏洞,我们建议在程序代码上进行漏洞修复,加强域名后输入的字符长度,以及URL地址后的http以及.com.cn等域名字符的限制与安全过滤,对以及特殊的字符以及参数值也加强过滤,比如:redirect,jump,redurl,等参数值的过滤。时刻提醒网站用户,不要随意的打开其他人发过来的网站链接地址,将网站安全做到最大化。