这两天在边学边改的学习过程中,在网上搜资料的时候看到了一篇关于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注入漏洞,目前支持的数据库是MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase和SAP MaxDB。采用五种独特的SQL注入技术,分别是:
1)基于布尔的盲注,即可以根据返回页面判断条件真假的注入。
2)基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。
3)基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。
4)联合查询注入,可以使用union的情况下的注入。
5)堆查询注入,可以同时执行多条语句的执行时的注入。
这是一个控制台sql注入工具,下面是一些常用的命令,还有一个失败的案例(因为没有成功过,所以.....嘿嘿嘿)。
了解了这么多的sql注入方法,感觉自己的应用也会被爆,所以赶紧又查了一下防止sql注入的一些方法,大体有以下几种: