从业渗透测试服务已经有十几年了,在对客户网站进行漏洞检测,安全渗透时,尤其网站用户登录功能上发现的漏洞很多,想总结一下在渗透测试过程中,网站登录功能上都存在哪些网站安全隐患,下面就有请我来给大家总结一下,让大家都有更好的了解网站,在对自己网站进行开发的过程中,尤其用户登录功能上做好网站安全防护,防止网站被攻击。
网站登录有安全验证与效验,从分支上又可以分出其他代码功能,包括用户注册,忘记密码,用户登录框,修改密码,验证码(图片以及短信验证码,邮箱验证码等功能),用户登录信息安全提示,密码错误还是输入的账号不对,以及账号频繁登录的锁定安全机制功能,大大小小的功能组成了网站的登录功能。那么我们在对客户网站进行渗透测试服务的时候,在网站登录功能里到底发现那些致命的漏洞?下面我们来详细的举例说明:
第一我们从最简单的一个用户登录框上来说,很多客户网站并没有对用户前端输入的参数值进行安全过滤,导致账户名字与密码里可以插入恶意的参数值,导致SQL注入漏洞的发生,再一个就是使用万能的密码进行登录,可以绕过数据库,直接登录网站。是如何帮用户修复这个SQL注入漏洞呢?针对SQL注入的修复办法是:对用户登录的账号密码字段的参数值进行预编译,不允许特殊字符的输入与传输,在代码里写入get,post,cookies提交方式的安全拦截,发现恶意的字符包括<,>,,/,,,",select,update,@,等等进行拦截,并返回错误提示,对特定的sql语句在代码里进行预编译,禁止多余的参数插入到账号与密码字段中。
用户ID与密码被暴力破解,很多客户网站并没有对网站的登录进行安全判断,导致攻击者可以随意的对其进行任意的账号密码尝试登录,有些甚至有密码字典,可以不断去猜解用户的ID与密码,导致网站用户被恶意登录,资料恶意篡改等情况发生。对这种渗透中发现的漏洞我们的修复办法是:增加验证码功能(图片验证码,或者是短信验证码),每次登录都必须输入对的验证码,如果验证码不对那就不允许登录,也可以将验证码做时间的限制,30秒才能重新获取。 再一个对用户ID输入错误的提示,可以混淆攻击者的视线,提示是密码错误。在用户登录次数达到6次以上直接锁定该账户的登录。
XSS跨站攻击漏洞也会在用户登录框中发生,比较常见的就是用户名的参数值中,有些客户网站没有对XSS恶意代码进行安全效验,导致可以输入错误的账号进行登录,当错误登录的时候,后台有可能会有错误的用户登录记录,包括post数据包里网站来源都会插入XSS攻击代码,导致管理员在查看用户登录错误日志的时候触发XSS漏洞。XSS跨站漏洞可以获取用户的cookies值,以及网站后台的地址,并可以将浏览器打开后台进行截图等功能,如何修复XSS跨站漏洞?对get,post,cookies的提交方式进行安全过滤,拦截掉<,>,,img,"",等字符。
任意用户注册漏洞也会在网站登录功能上发生,可以用来猜测网站是否有注册过该用户名,进行批量的暴力枚举。对注册使用的验证码进行绕过,使用正确的短信验证码提交注册即可绕过注册,手机以及邮箱的验证码过于太短,导致暴力破解,针对于这样的网站漏洞我们的修复建议是对验证码和注册信息进行同步请求,对验证码进行验证是否正确,然后再来确定注册的信息是否与验证码是一体的。
还有很多网站功能在渗透测试过程中出现的漏洞,这里总结的是上部分,下一部分我们将会在下一篇文章中跟大家揭晓,也希望这些的渗透测试分享能让大家对网站的安全有所了解,只有真正的了解了自己的网站,才能把安全做好,知彼知己百战不殆。在网站上线以及发生安全问题后,一定要做渗透测试服务,提前检测网站存在的漏洞,以及模拟攻击者的手法去查找漏洞根源,防患于未然,有需要的小伙伴可以咨询专业的网站安全公司来处理解决。