1、简介 1.1、含义
在一个应用中,数据的安全无疑是最重要的。数据的最终归宿都是数据库,因此如何保证数据库不被恶意攻击者入侵是一项重要且严肃的问题!
SQL注入作为一种很流行的攻击手段,一直以来都受到网络安全研究者和黑客们的广泛关注。那什么是SQL注入呢?SQL注入是这样一种攻击技术:攻击者通过把恶意SQL命令插入到Web表单的输入域或页面请求的查询字符串中,来达到欺骗服务器执行恶意的SQL命令的一种攻击方式。
想要更好的防御SQL注入,当然要了解攻击者是如何攻击的啦,自己知彼,百胜不殆!
1.2、注入原理SQL注入的本质是恶意攻击者将SQL代码插入或添加到程序的参数中,而程序并没有对传入的参数进行正确处理,导致参数中的数据会被当做代码来执行,并最终将执行结果返回给攻击者
1.3、危害利用SQL注入漏洞,攻击者可以操纵数据库的数据(如得到数据库中的机密数据、随意更改数据库中的数据、删除数据库等等),在得到一定权限后还可以挂马,甚至得到整台服务器的管理员权限。由于SQL注入是通过网站正常端口(通常为80端口)来提交恶意SQL语句,表面上看起来和正常访问网站没有区别,如果不仔细查看WEB日志很难发现此类攻击,隐蔽性非常高。一旦程序出现SQL注入漏洞,危害相当大,所以我们对此应该给予足够的重视。
2、注入知识与例子解析 2.1、注入的常用知识常用函数:
1 system_user() #系统用户名 2 user() #返回MYSQL用户名 3 current_user() #当前用户名 4 session_user() #连接数据库的用户名 5 database() #返回当前数据库名 6 version() #返回当前数据库版本信息 7 load_file() #返回文件的内容【攻击时用于读取本例文件,攻击力大大的】 8 into outfile \'物理路径\' #将结果输出【攻击在利用将恶意脚本注入系统中】