当前位置: 首页 > article >正文

SQL与数据库

在原有结构基础上填充新的内容,引发结构逻辑变化,称之为注入

SQL(结构化查询语言),以此做为关系型数据库管理系统的标准语言,使用该语言标准的数据库有MySQL等

数据库是什么?

程序是需要有数据交互的,一些数据存储在内存中,另外一些存储在硬盘上,数据量比较少的时候,可以直接将数据存储在文件中,按固定的换行格式来保存即可,但是,数据量比较大时,系统先将整个大文件读取进内存中,然后才能开始检索需要的数据,效率变低了,有一个方法:将大文件拆分为多个小文件,在拆分,记录检索目标位于哪个文件中,数据库技术就应运而生了

数据库技术提供了一项数据存储和检索的服务,通过数据库存入数据,当需要获得某项数据时,可以找数据库来取出

SQL语言就是存货物与取货物的人与仓库管理员交流所需要使用的语言,而MySQL等这些不同的数据库服务软件都是基于SQL标准实现的

SQL注入漏洞诞生于静态网站转向动态网站的年代,所谓静态网站是指网页在开发完成之后内容已经固定,无论是哪个用户浏览器内容都是固定的,没有参数化的交互,而动态网站只需要在页面上提交不同的参数参数可以使网站动起来,增加了用户的交互性,同时也带来了安全问题

用户提交的数据进行数据库查询,在这个数据流过程会带来信息泄露,篡改,伪造等问题

攻击者在读取数据库内容时,利用数据库函数将内容转化为ASCII码,再进行猜测,猜测的方式就是一次次的提交带有SQL注入攻击语句的请求,最终的答案就是存储在数据库中的敏感数据

1.       

输入ID=1可以验证输入的内容是否会拼接进入SQL语句,输入ID=1 and 1=1和ID=1 and 1=2是进行布尔逻辑探测,可以知道输入正确与错误分别是什么页面

id=1 and(select ascii(mid(username,1,1))from user limit 1)<97

这是在询问username字段存储的第一条记录的第一个字母是什么?是不是比97小?用97来判断是因为小写字母的ASCII大于97,大写字母的ASCII小于97,方便缩小范围,是一个技巧

通过这样的一个不断尝试,脚本遍历就可以读取数据库关键表中的关键信息了,比如管理员信息表中的管理密码字段,这是SQL注入攻击最普遍的一种攻击过程,利用此获得数据库库中所有的数据库名称,表名称,表结构,表中的数据,这种攻击行为称作拖库攻击

2.

delete操作,清空数据库

输入ID=1 or 1=1,整个表都会被清空

有人会想到,用脚本循环遍历,但是为了防止遍历,网站架构会将ID设置成毫无规律的字符串

所以在对具有删除功能的接口要慎用or语句进行测试,防止严重的损失

 


http://www.kler.cn/a/379710.html

相关文章:

  • C#属性 Property
  • 代码随想录第十五天| 110.平衡二叉树 、 257. 二叉树的所有路径 、404.左叶子之和、222.完全二叉树的节点个数
  • Vue3版本的uniapp项目运行至鸿蒙系统
  • 微服务系列二:跨微服务请求优化,注册中心+OpenFeign
  • 深入理解 Spring Boot 中的 @PathVariable 注解
  • 在Mac下安装时间序列软件Hector
  • C++设计模式结构型模式———组合模式
  • 【系统架构设计师】2022年真题论文: 论区块链技术及应用(包括解题思路和素材)
  • Vue:模板 MVVM
  • 为什么说高级工程师研究的不仅是器件的稳态,模拟器件的开关过程
  • PostgreSQL 触发器的深入探讨
  • 【高等数学】3-2多元函数积分学
  • flutter 专题七 Flutter面试之渲染流程
  • 硬件在环仿真建模之电路拓扑建模与数学建模
  • java-智能识别车牌号_基于spring ai和开源国产大模型_qwen vl
  • oceanbase V4.2.2社区版集群离线部署
  • 图像边缘算法复现研究
  • 详解:枚举类
  • 【力扣专题栏】K个一组对链表进行翻转,如何实现分组翻转链表?
  • 东方通TongWeb替换Tomcat的踩坑记录
  • VLAN间通信以及ospf配置
  • 2024年第六届全球校园人工智能算法精英大赛——【算法挑战赛】钢材表面缺陷检测与分割 比赛复盘
  • aws(学习笔记第十课) 对AWS的EBS如何备份(snapshot)以及使用snapshot恢复数据,AWS实例存储
  • 深度学习-如何计算神经网络的输出?
  • 重学SpringBoot3-整合 Elasticsearch 8.x (二)使用Repository
  • 为什么说模拟电路的难点就在开通过程和关断过程?难在什么地方?