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

SQL注入 01

0x01 用户、脚本、数据库之间的关系

首先客户端发出了ID=36的请求,脚本引擎收到后将ID=36的请求先代入脚本的sql查询语句Select * from A where id = 36 , 然后将此代入到数据库中进行查询,查到后将返回查询到的所有记录给脚本引擎,接着脚本引擎根据自己写的过滤函数和编码特殊字符等,生成一个静态页面返回给客户端,最后将网站返回的网页展示给用户(那这里的意思就是先将查询语句实现进行查询,然后当数据库返回给脚本引擎的时候再进行过滤

0x02  SQL注入的定义

就是通过sql命令插入到web表单递交或输入域名或请求的查询字符串,最终达到欺骗服务器执行恶意代码的过程

具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句

0x02.1 成因

用于未对用户的输入做好过滤,导致用户将恶意代码SQL语句输入进来,带到后端进行查询,查询到本不应该出现的数据

0x03 触发SQL注入

所有的输入只要和数据库进行交互的,都有可能触发SQL注入

常见的包括:

1、GET参数触发SQL注入

2、POST参数触发SQL注入

3、COOKIE 触发SQL注入

4、其他参与sql执行的输入都有可能进行SQL注入

0x04 SQL注入的过程

1、客户端:参数值等数据被修改

2、服务端:未经过检查和过滤就将被修改的数据注入到SQL命令中,SQL命令功能被修改

3、数据库引擎:执行被修改后的数据

4、服务端:将注入结果返回给客户端

5、客户端:根据上一次获取到的敏感信息构造注入语句进行更一步的注入

0x05 SQL注入场景

一切用户可控参数的地方,比如:URL路径、GET/POST请求参数、HTTP请求头

0x06 SQL注入作用

  • 绕过登录验证:使用万能密码登录网站后台
  • 获取敏感数据:获取网站管理员账号、密码等
  • 文件系统操作:列目录,读取,写文件等
  • 注册表操作:读取、写入、删除注册表等
  • 执行系统命令:远程执行命令

http://www.xdnf.cn/news/770.html

相关文章:

  • aws(学习笔记第三十九课) iot-core
  • JavaScript 性能优化
  • 【Java面试系列】Spring Cloud微服务架构中的分布式事务解决方案与Seata实现原理详解 - 3-5年Java开发必备知识
  • 小刚说C语言刷题——1049 汉译英
  • leetcode 1143. Longest Common Subsequence
  • 利用OLED打印调试信息: 控制PC13指示灯点灯的实验
  • Kubernetes相关的名词解释Dashboard界面(6)
  • CentOS stream 中部署Zabbix RPM软件包公钥验证错误
  • Java中订阅消费模式(发布-订阅模式)和观察者模式的区别
  • 进程管理,关闭进程
  • Linux进程管理:进程查看与控制核心指南
  • 硬件电路(25)-过温保护器件ksd9700温控开关
  • 命令行参数·环境变量·进程地址空间(linux+C/C++)
  • 位运算,状态压缩dp(算法竞赛进阶指南学习笔记)
  • Web前端:常用的布局属性
  • 聊一聊接口测试后垃圾数据如何清理?
  • 【Sa-Token】学习笔记05 - 踢人下线源码解析
  • Few-shot medical image segmentation with high-fidelity prototypes 论文总结
  • 计算机网络综合实验指南
  • 【Rust 精进之路之第14篇-结构体 Struct】定义、实例化与方法:封装数据与行为
  • 【操作系统原理06】虚拟存储器
  • CLion编译器中配置ARM嵌入式开发环境教程
  • 面试题:循环引用两个节点相互引用,如何判断哪个用 shared_ptr?哪个用 weak_ptr?
  • ThreadLocal - 原理与应用场景详解
  • 蓝桥杯 二进制问题 刷题笔记
  • 一个旅行攻略需要调用多少个MCP的服务?
  • 松灵Cobot Magic双臂具身遥操机器人(基于ROS的定位建图与协同导航技术)
  • 网工_DHCP协议
  • AI与思维模型【67】——元认知
  • 使用docker任意系统编译opengauss