轻松理解什么是 SQL 注入

轻松理解什么是 SQL 注入,第1张

所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。

举个简单的例子:

从理论上说,一个验证用户名和密码的功能,会有如下的SQL语句

String sql = "select from user_table where username=

' "+userName+" ' and password=' "+password+" '";

然后在这个语句的username=”后面注入 or 1=1 用户名等于 ” 或1=1 这个条件,上面的SQL语句变成:

SELECT FROM user_table WHERE username=

'’or 1 = 1 -- and password='’

那么不用输入用户名和密码,就可以登陆了。

SQL是 *** 作数据库数据的结构化查询语言,网页的应用数据和后台数据库中的数据进行交互时会采用SQL。而SQL注入是将Web页面的原URL、表单域或数据包输入的参数,修改拼接成SQL语句,传递给Web服务器,进而传给数据库服务器以执行数据库命令。如Web应用程序的开发人员对用户所输入的数据或cookie等内容不进行过滤或验证(即存在注入点)就直接传输给数据库,就可能导致拼接的SQL被执行,获取对数据库的信息以及提权,发生SQL注入攻击。

SQL注入漏洞有什么特点

1、广泛性:任何一个基于SQL语言的数据库都可能被攻击,很多开发人员在编写Web应用程序时未对从输入参数、Web表单、Cookie等接受到的值进行规范性验证和检测,通常会出现SQL注入漏洞。

2、隐蔽性:SQL注入语句一般都嵌入在普通的HTPP请求中,很难与正常语句区分开,所以当前许多防火墙都无法识别予以警告,而且SQL注入变种极多,攻击者可以调整攻击的参数,所以使用传统的方法防御SQL注入效果非常不理想。

3、危害大:攻击者可以通过SQL注入获取到服务器的库名、表名、字段名,从而获取到整个服务器中的数据,对网站用户的数据安全有极大的威胁。攻击者也可以通过获取到的数据,得到后台管理员的密码,然后对网页页面进行恶意篡改。这样不仅对数据库信息安全造成严重威胁,对整个数据库系统安全也有很大的影响。

4、 *** 作方便:互联网上有很多SQL注入工具,简单易学、攻击过程简单,不需要专业的知识也可以自如运用。

资深的开发,一般能猜出来你的表结构和字段名字,一般字段猜出来的和正确结果是大差不差的。第二种就是靠字典暴力去跑,看返回回来的结果。第三种就是数据库有个information_schema这个库,记不太清楚了,里边记录的有你的表结构信息。还有第四种selectdatabase查出来你的库名字,再根据你的库名字这个条件查找表结构,再根据你的表名字查询字段名字。都有sql语句可以查询。我就知道这四种情况。其他的,你看看别人。

以上就是关于轻松理解什么是 SQL 注入全部的内容,包括:轻松理解什么是 SQL 注入、信息安全试题 什么是sql注入漏洞、SQL注入时,攻击人员是怎样知道目标网站的数据库结构的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9609573.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存