前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL注入漏洞基础原理(脱水版)

SQL注入漏洞基础原理(脱水版)

作者头像
网络安全自修室
发布2021-11-25 14:16:44
4210
发布2021-11-25 14:16:44
举报

一、SQL注入简介

SQL 注入攻击是通过将恶意的 SQL 查询或添加语句插入到应用的输入参数中,再在后台 SQL 服务器上解析执行进行的攻击,它目前黑客对数据库进行攻击的最常用手段之一。

二、SQL 注入漏洞详解

SQL 注入产生条件及危害:

注入攻击的本质,是把用户输入的数据当做代码执行

这里有两个关键条件

  • 第一个是用户能够控制变量输入
  • 第二个是原本程序能够执行代码

正常访问网站操作流程是用户提交参数给网站,并将数据库查询结果返回给用户,提交正常的参数一般不会有危险。但实际情况是黑客可以提交恶意构造的参数,并拼接成恶意查询语句,如果用户输入的数据被构造成恶意代码,Web 应用又未对动态构造的 SQL 语句使用的参数进行审查,将会执行该恶意数据查询语句,则会带来意想不到的危险。

SQL 注入漏洞产生的危害

  • 猜解后台数据库,这是利用最多的方式,盗取网站的敏感信息,甚至删除数据。
  • 绕过认证,例如绕过验证登录网站后台。
  • 注入可以借助数据库的存储过程进行提权等操作

三、判断 SQL 是否存在 SQL 注入漏洞

通常情况下,可能存在 SQL 注入漏洞的地方一定是动态网页且此网页访问了数据库,同时不管是GET或者POST请求方式,其一定是可以带参数(一个或者多个)传入参数值,

如GET请求方式时,如下,其中id为参数,1为传入参数的值

代码语言:javascript
复制
# GET方式访问网址地址:
http://localhost/arts.php?id=1

判断存在SQL 注入最直观的表现主要有以下方式:

  • 传入特殊字符有报错回现
  • 页面显示查询语句
  • 传入的函数能够执行,且页面有明显差异

最为经典的单引号判断法: 在参数后面加上单引号,比如:

代码语言:javascript
复制
http://xxx/abc.php?id=1'

如果页面返回错误,则存在 SQL 注入。原因是无论字符型还是整型都会因为单引号个数不匹配而报错。

  • 当输入 and 1=1时,后台执行 SQL 语句,页面返回正常:
代码语言:javascript
复制
select * from <表名> where id = x and 1=1 
  • 当输入 and 1=2时,后台执行 SQL 语句,页面返回不正常:
代码语言:javascript
复制
select * from <表名> where id = x and 1=2

综上可以初步判断存在注入漏洞,因为可以确定数据库对我们传入的语句能够执行,且页面有差异。

四、 SQL 注入漏洞的类型

通常注入主要分为数字型和字符型,但在不断实践中根据不同地方产生参数点、不同的编码、不同的执行代码返回的方式,常遇到如下注入类型,总结如下:

注入类型

条件

关键

union注入

显示查询结果

order by , union select

布尔注入

只返回False或者True

length、ord函数、二分法

报错注入

返回错误信息

updatexml、group_concat等函数

时间盲注

无返回信息判断可执行sleep

sleep、if等函数

宽字节注入

数据库为GBK编码、使用了addslashes函数转义

%df'可以吃掉单引号

堆叠注入

执行多条查询语句

使用分号分隔多条查询语句

Cookie注入

在请求头中cookie参数异常

可用 sqlmap -r cook.txt - p 参数

base64注入

有base64编码过的参数

将payload进行base64编码,可用tamper

XFF注入

PHP中有getenv函数获取环境配置

x-forward-for、http_client_ip等请求头参数

二次注入

用户注册功能等

在注册中插入恶意代码,在登录中执行

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-08-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 网络安全自修室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、SQL注入简介
  • 二、SQL 注入漏洞详解
    • SQL 注入产生条件及危害:
    • 三、判断 SQL 是否存在 SQL 注入漏洞
      • 四、 SQL 注入漏洞的类型
      相关产品与服务
      数据库
      云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档