各位新朋友~记得先点蓝字关注我哦~
SQL注入原理
当Web应用程序未对用户输入的数据进行足够的安全处理(如危险字符过滤或者语句过滤),而直接拼接SQL语句执行时,攻击者可以精心构造参数值,使服务器执行非预期的SQL语句并返回结果,造成数据库信息泄露。利用SQL注入漏洞,攻击者可获取数据库的增、删、改、查权限,甚至执行系统命令,上传后门文件等。
SQL注入示例

SELECT * FROM youdian_admin WHERE AdminName ='$name' and AdminPassword = '$pass' limit 0,1
举例示意张三登录时,数据库执行语句(数据库满足则登录成功,这里没添加所以失败)
SELECT * FROM youdian_admin WHERE AdminName = ‘zhangsan’ and AdminPassword = ‘zhangsang123’ limit 0,1

当恶意攻击者尝试登录时,会尝试构造数据库的执行语句
SELECT * FROM youdian_admin WHERE AdminName = ‘hacker’ or 1=1 # and AdminPassword = ‘hacker’ limit 0,1





当然也不是所有的数据库都有information这个库,很多情况下无法直接获取到数据库名、表名、字段名,但是可以进行暴力枚举。比如对库名、表名、列名进行分割为单独的字符串进行字符枚举。
加固方法
针对SQL注入漏洞,需要对网站所有参数中提交的数据进行过滤,禁止输入"'"、"xor"、"or"、"--"、"#"、"select"、"and"等特殊字符; 所有的查询语句都使用数据库提供的参数化查询接口,SQL语句使用参数化处理后的数据作为输入,而不是将用户输入变量嵌入到SQL语句中; 严格限制网站用户对数据库的操作权限,给此用户提供仅仅能够满足其工作的权限,从而最大限度的减少注入攻击对数据库的危害; 避免网站显示SQL错误信息,比如类型错误、字段不匹配等,防止攻击者收集这些错误信息进行判断进而执行SQL注入攻击。
美创运维中心数据库服务团队拥有PG ACED 1名、Oracle&PG ACE 3名、OCM 十数名、数十名Oracle OCP、MySQL OCP、TDSQL TCP、OceanBase OBCP、TiDB PTCP、达梦 DCP、人大金仓、红帽RHCA、中间件weblogic、tuxedo等认证工程师 ,著有《攻坚指南:左手Oracle,右手MySQL》,《Oracle数据库性能优化方法和最佳实践》,《Oracle内核技术揭秘》,《Oracle DBA实战攻略》等多本数据运维优化书籍。目前运维各类数据库合计5000余套,精通Oracle、MySQL、SQLServer、DB2、PostgreSQL、MongoDB、Redis、TDSQL、OceanBase、达梦、人大金仓等主流商业和开源数据库。并成为首批国内达梦战略合作伙伴之一,拥有海量经验和完善的人员培养体系。并同时提供超融合,私有云整体解决方案。

文章转载自新运维新数据,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。





