SQL注入漏洞在网站漏洞里面属于高危漏洞,排列在前三,受影响范围较广,像asp、.net、PHP、java、等程序语言编写的代码,都存在着sql注入漏洞,那么如何检测网站存在sql注入漏洞?
SQL注入漏洞测试方法
在程序代码里不管是get提交,post提交,cookies的方式,都可以有随意控制参数的一个参数值,通过使用sql注入工具,经典的sqlmap进行检测与漏洞利用,也可以使用一些国内的SQL代码注入工具,最简单的安全测试方法就是利用数据库的单引号, AND 1=1 AND 1=2等等的字符型注入来进行测试sql注入漏洞。
SQL注入漏洞解剖
在网站的程序代码里,有很多用户需要提交的一些参数值,像get、post的数据提交的时候,有些程序员没有对其进行详细的安全过滤,导致可以直接执行SQL语句,在提交的参数里,可以掺入一些恶意的sql语句命令,比如查询admin的账号密码,查询数据库的版本,以及查询用户的账号密码,执行写入一句话木马到数据库配置文件,执行系统命令提权,等等.
SQL注入漏洞修复
在最底层的程序代码里,进行sql漏洞修补与防护,在代码里添加过滤一些非法的参数,服务器端绑定变量,SQL语句标准化,是防止网站被sql注入攻击的最好办法。Sine安全公司是一家专注于:网站安全、服务器安全、网站安全检测、网站漏洞修复,渗透测试,安全服务于一体的网络安全服务提供商。
一、程序代码里的所有查询语句,使用标准化的数据库查询语句API接口,设定语句的参数进行过滤一些非法的字符,防止用户输入恶意的字符传入到数据库中执行sql语句。
二、对用户提交的的参数安全过滤,像一些特殊的字符(,()*&……%#等等)进行字符转义操作,以及编码的安全转换。
三、网站的代码层编码尽量统一,建议使用utf8编码,如果代码里的编码都不一样,会导致一些过滤被直接绕过。
四 、网站的数据类型,必须确定,是数字型,就是数字型,字符型就是字符型,数据库里的存储字段类型也设置为ini型。
五 、对用户的操作权限进行安全限制,普通用户只给普通权限,管理员后台的操作权限要放开,尽量减少对数据库的恶意攻击。
六、网站的报错信息尽量不要返回给客户端,比如一些字符错误,数据库的报错信息,尽可能的防止泄露给客户端。
七、如果对网站程序代码不熟悉的话建议交给专业做安全的公司专业处理,国内推荐Sinesafe,绿盟,启蒙星辰。