SQL注入攻击的原理是什么

54次阅读
没有评论

共计 1185 个字符,预计需要花费 3 分钟才能阅读完成。

自动写代码机器人,免费开通

丸趣 TV 小编给大家分享一下 SQL 注入攻击的原理是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

sql 注入攻击的原理

恶意用户在提交查询请求的过程中将 SQL 语句插入到请求内容中,同时程序本身对用户输入内容过分信任而未对恶意用户插入的 SQL 语句进行过滤,导致 SQL 语句直接被服务端执行。

SQL 注入攻击分类

(1) 注入点的不同分类

数字类型的注入字符串类型的注入

(2) 提交方式的不同分类

GET 注入 POST 注入 COOKIE 注入 HTTP 注入

(3) 获取信息的方式不同分类

基于布尔的盲注基于时间的盲注基于报错的注入

SQL 注入攻击案例:

1、查看文章的注入案例:

查看某篇文章的 url 参数为:?id=1

则通过注入命令:?id=1 or 1=1,则可以列出整个数据表里面的所有文章。

如果查看用户是通过 user_id 来访问,如:?uid=1

则通过注入命令:?id=1 or 1=1, 则可以把整个用户表的记录全部显示出来

SQL 命令如下:

通过?id= 1 的 SQL 命令为:select * from article where id=1,此语句查询到 1 条结构

通过?id=1 and 1= 1 的 SQL 命令为:select * from article where id=1 or 1=1,此语句查询到整个表的记录

2、用户登录的注入案例:

登录表单有 user_name 字段,查询语句为:select * from users where nickname= {user_name}

则可以在 user_name 文本框填入:(or 1= 1),这样可以构造出注入的 SQL 命令:select * from users where user_name= or 1= 1,这样很容易就进入系统了。

3、SQL 注入猜表:

在登录页面的用户名字段填入:(or 1=(select count(0) from t_porg_document) or 1= 1),可以构造出注入的 SQL 命令:select * from users where user_name= or 1=(select count(0) from recharge) or 1= 1

这样就可以猜测是否 recharge 表存在. 存在则语句正常执行,否则就报错了。

猜中表名后,就可以对数据表进行增删改查的操作,如:

在登录页面的用户名字段填入:(delete from users),可以构造出危险的 SQL 命令:select * from users where user_name= delete from users;

通过加分号,可以构造出任意增删改查 sql 语句,整个数据库就被攻击者随意控制了。

以上是“SQL 注入攻击的原理是什么”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-16发表,共计1185字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)