SQL注入的实现原理和防范



       SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。SQL注入的手法相当灵活,在注入的时候需要根据具体情况进行分析,构造巧妙的SQL语句,从而成功获取想要的数据.

   SQL注入攻击的总体思路是:
   1. 发现SQL注入位置;
   2. 判断后台数据库类型;
   3. 确定XP_CMDSHELL可执行情况
   4. 发现WEB虚拟目录
   5. 上传ASP木马;
   6. 得到管理员权限;

   一般来说,SQL注入一般存在于形如:HTTP://xxx.xxx.xxx/abc.asp?id=XX等带有参数的ASP动态网页中,有时一个动态网页中可能只有一个参数,有时可能有N个参数,有时是整型参数,有时是字符串型参数,不能一概而论。总之只要是带有参数的动态网页且此网页访问了数据库,那么就有可能存在SQL注入。如果ASP程序员没有安全意识,不进行必要的字符过滤,存在SQL注入的可能性就非常大。
为了全面了解动态网页回答的信息,首选请调整IE的配置。把IE菜单-工具-Internet选项-高级-显示友好HTTP错误信息前面的勾去掉。

   如过网站存在注入漏洞,黑客即可使用正常URL后面跟随入侵代码的方式执行任何操作,比如以下列出系统盘目录的命令:
HTTP://xxx.xxx.xxx/abc.asp?p=YY;insert into temp(id)&nbs ... cmdshell 'dir c:\';


  为了防止注入攻击,最基本的方法是进行关键字过滤,现在推荐两种典型代码,可以全局调用或加在每个动态网页之中.
原文地址:https://www.cnblogs.com/yhb199/p/1235315.html