sql注入

  这两天在边学边改的学习过程中,在网上搜资料的时候看到了一篇关于sql注入的文章,sql注入以前也有听说过,但不是很了解。便去了解了一下下。

  SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。

  可以看出sql注入对于应用项目是有很大威胁的。操作者通过一些注入软件和手法测试该应用是否存在sql注入漏洞,如若存在便通过注入sql语句来达到获取数据库中数据的目的,然后通过管理入口的扫描获取到应用后台的入口。

这是我在网上找到的一款十多年前sql注入工具,但是功能还是没有过时。可以用来测试自己的应用,扫扫人家的后台,嘿嘿。

自己手动检测,在例如此种后面带参数的url中进行以下操作 https://i.cnblogs.com/EditPosts.aspx?opt=1

and也可以换成or

  还了解到一款比啊D更强大的sql检测注入工具是sqlmap,sqlmap使用python开发,一个开源的sql注入工具,

  sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL的SQL注入漏洞,目前支持的数据库MySQLOracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase和SAP MaxDB。采用五种独特的SQL注入技术,分别是:

     1)基于布尔的盲注,即可以根据返回页面判断条件真假的注入。
     2)基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。
     3)基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。
     4)联合查询注入,可以使用union的情况下的注入。
     5)堆查询注入,可以同时执行多条语句的执行时的注入。

  这是一个控制台sql注入工具,下面是一些常用的命令,还有一个失败的案例(因为没有成功过,所以.....嘿嘿嘿)。

 

  了解了这么多的sql注入方法,感觉自己的应用也会被爆,所以赶紧又查了一下防止sql注入的一些方法,大体有以下几种:

    1.永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和双"-"进行转换等。
    2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。
    3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。
    4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。
    5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装
    6.sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky,网站平台就有亿思网站安全平台检测工具。MDCSOFT SCAN等。采用MDCSOFT-IPS可以有效的防御SQL注入,XSS攻击等。
 
   这告诉我们在进行开发的时候,多于从外界获得数据一定要保持应有的警惕,不要吝啬几段校验代码,现在信息安全越来越重要,在开发的时候一定要注意数据的安全性。
   仅此自我提醒,感谢阅读。
 
                                                                                                        参考资料:sql注入百度百科
原文地址:https://www.cnblogs.com/Jia-Heng-He465/p/6518037.html