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

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注入作用

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

相关文章:

  • 机器学习专栏(4):从数据饥荒到模型失控,破解AI训练的七大生死劫
  • 实现对象之间的序列化和反序列化
  • Kubernetes控制平面组件:调度器Scheduler(一)
  • Java 软件测试开发相关资源
  • DSA数据结构与算法 6
  • 快速从S32K358切换到328
  • 在阿里云和树莓派上编写一个守护进程程序
  • NLP 梳理03 — 停用词删除和规范化
  • Python 深度学习实战 第11章 自然语言处理(NLP)实例
  • 嵌入式芯片中的 SRAM 内容细讲
  • 4.20刷题记录(单调栈)
  • 非参数检验题目集
  • 将 JSON 字符串转化为对象的详细笔记 (Java示例)
  • 使用安全继电器的急停电路设计
  • TCP常见知识点整理
  • 关于TCP三次握手和四次挥手过程中的状态机、使用三次握手和四次挥手的原因、拥塞控制
  • Matlab 五相电机仿真
  • Pandas的应用
  • 栈和队列(C语言)
  • Windows 10 下安装 PHP 问题解决指南
  • 融入长三角一体化发展,苏南名城镇江的优势和机遇何在
  • 福建一改造项目1人高处坠亡且事故迟报41天,住建厅约谈相关责任单位
  • 广汽全域赋能,领程皮卡概念车重磅登陆上海车展
  • 上海优化餐企发展环境:装修拓展门店最高奖50万,建立问题协调机制
  • 西安雁塔区委书记王征拟任市领导班子副职,曾从浙江跨省调任陕西
  • 美元指数跌破98关口,人民币对美元即期汇率升值至4月3日来新高