SQL注入的检测方法与防护方案发布时间:2020/12/16 15:56:51 阅读次数:

  

凯文·米特尼克在《反欺骗的艺术》中曾提到,人为因素才是安全的软肋。很多企业、公司在信息安全上投入大量的资金,最终导致数据泄露的原因,往往却是发生在人本身。


你们可能永远都想象不到,对于黑客们来说,通过一个用户名、一串数字、一串英文代码,社会工程师就可以通过这么几条的线索,通过社工攻击手段,加以筛选、整理,就能把你的所有个人情况信息、家庭状况、兴趣爱好、婚姻状况、你在网上留下的一切痕迹等个人信息全部掌握得一清二楚。虽然这个可能是最不起眼,而且还是最麻烦的方法。一种无需依托任何黑客软件,更注重研究人性弱点的黑客手法正在兴起,这就是社会工程学黑客技术。


这就不得不说到常见的系统漏洞SQL注入了,SQL注入是指攻击者利用SQL注入漏洞,可以获取数据库中的多种信息(例如:管理员后台密码),从而脱取数据库中内容(脱库)。在特别情况下还可以修改数据库内容或者插入内容到数据库,如果数据库权限分配存在问题,或者数据库本身存在缺陷,那么攻击者可以通过SQL注入漏洞直接获取web shell或者服务器系统权限。

摄图网_500999722_wx_黑客互联网安全(企业商用).jpg


检测方法:


识别用户输入。SQL注入漏洞可能在系统输入参数中,这些参数执行数据库操作。


GET、POST参数中。


COOKIE参数中。


http请求头。主机头、引用站点(referer)、User-Agent和X-Forwarded-For等。


检测SQL注入。使用SQL注入测试语句对输入参数进行测试。


特殊符号:单引号,分号,web服务器响应报错。


条件响应:and 1=1、and 1=2、' or '1'='1、' or '1'='2,两次web服务器响应不同。


时间延时:sleep(5)、waitfor delay '0:0:5',系统服务器延迟响应。


参数相加:对数字类型进行加减运算,字符类型使用数据库连接符号进行连接。系统服务器响应与原来的响应相同。


利用SQL注入。对以上测试进一步利用,手工构造SQL注入语句或者使用SQLMAP检测脚本构造注入语句。


防护方案:对输入参数进行过滤、校验或者采用参数预处理的方式。


20200929140452664_conew1.png