sql注入基础知识

devtools/2024/11/17 19:03:14/

 sql注入原理

web页面通常会根据用户输出的内容生成动态的sql查询语句,如果数据库没有对用户输的语句进行合适的过滤导致攻击者可以通过特殊的sql语句来操作查询内容。

sql注入的形式

基础字符串解析:

table_schema代表数据库

table_name代表表名

column_name代表列名

information_schema.tables可以获取关于 MySQL 实例中所有数据库和表的结构化信息
information_schema.columns可以获取关于 MySQL 实例中所有数据库和列的结构化信息

information_schema.schemata里面储存了所有的库名

group_concat()将多个行的值合并成一个单一的字符串,方便展示

extractvalue,updatexml函数在mysql数据库中处理 XML 数据的两个函数

-- 是SQL中常用的单行注释符号,后面的内容会被视为注释

#表示对后面的语句进行注释

1.联合注入

示例语句:

sql">-1' union select 1,(select group_concat(column_name) from information_schema.columns where table_schema= 'security' and table_name='users'),3

查询security数据库中的users表中的所有列

2.宽字节注入

利用不同的字符所占的字节数不同(编码之间的差异),在sql查询中插入特殊字符达到绕过过滤的目的。

sql">-1%df%27 union select 1,database(),user()--+

%df是β的url编码

3.跨库注入

在具有root权限的情况下,绕过常规安全限制通过sql语句对同一服务器上的不同数据库进行查询。

4.二次注入

先写入一次攻击语句,然后再找到合适的点位写入sql数据库中的语句进行拼接,以达到可以注出内容的操作。恶意的SQL注入代码并不会在第一次输入时立即被执行,而是存储在数据库中,并在后续的请求或操作中被执行。通过数据库的存储和后续操作的特点来进行绕过。

5.延时注入

通过页面回显的时间变化来判断,利用sleep函数进行一个延迟,正确会延迟设置的时间返回内容,不正确立马返回内容。

6.布尔盲注

布尔盲注是在没有回显的时候进行注入的一种方式,攻击者通过向SQL查询注入布尔表达式,并根据网页响应的变化来判断条件的真假,从而推测出敏感信息。

7.报错注入

sql数据库中的代码会返回错误的信息,我们就可以利用extractvalue,updatexml函数穿插查询语句来使数据库故意报错并返回数据内容。

常规手段被禁止的替换手段

禁止空格:

sql">/**/  /*!*/  %20 %09 %0a %0b %0c %0d %a0 %00

通常用于替代空格

禁止=:

使用like 、rlike 、regexp 或者 使用< 或者 >,char(61)

禁止order:

使用group替代order

禁止select:

使用handler命令进行查看,预编译的方法来拼接关键字

靶场推荐

1.sqli-libs靶场
2.pikachu靶场


http://www.ppmy.cn/devtools/134763.html

相关文章

内网安全-代理技术-socket协议

小迪安全网络架构图&#xff1a; 背景&#xff1a;当前获取window7 出网主机的shell。 1.使用msf上线&#xff0c;查看路由 run autoroute -p 添加路由&#xff1a; run post/multi/manage/autoroute 使用socks模块开启节点&#xff0c;作为流量跳板 msf6 exploit(multi/ha…

计算机视觉 1-8章 (硕士)

文章目录 零、前言1.先行课程&#xff1a;python、深度学习、数字图像处理2.查文献3.环境安装 第一章&#xff1a;概论1.计算机视觉的概念2.机器学习 第二章&#xff1a;图像处理相关基础1.图像的概念2.图像处理3.滤波器4.卷积神经网络CNN5.图像的多层表示&#xff1a;图像金字…

Python从0到100(七十二):Python OpenCV-OpenCV实现手势音量控制(文末送书)

前言&#xff1a; 零基础学Python&#xff1a;Python从0到100最新最全教程。 想做这件事情很久了&#xff0c;这次我更新了自己所写过的所有博客&#xff0c;汇集成了Python从0到100&#xff0c;共一百节课&#xff0c;帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…

鸿蒙next版开发:相机开发-元数据(ArkTS)

在HarmonyOS 5.0中&#xff0c;ArkTS提供了对相机元数据的访问能力&#xff0c;这对于开发者在相机应用中获取图像的详细信息非常有用。元数据&#xff08;Metadata&#xff09;是对相机返回的图像信息数据的描述和上下文&#xff0c;比如照片或视频中识别人像的取景框坐标等信…

【Mysql】Mysql的多表查询---多表联合查询(中)

1、外连接查询 外连接 查询分为左外连接&#xff08;left outer join&#xff09;, 右外连接查询&#xff08;right outer join&#xff09; &#xff0c;满外连接查询&#xff08;full outer join&#xff09;. 注意&#xff1a;oracle 里面有full join &#xf…

python 爱心邮件代码

import smtplib import time from email.mime.text import MIMEText import requests from lxml import etree import datetime from requests.exceptions import RequestException# 邮件配置 sender_maile # 发件人地址 sender_pass # 邮件授权码 boy_name # 发件人姓…

rust逆向初探

rust 逆向葵花宝典 rust逆向技巧 rust逆向三板斧&#xff1a; [!NOTE] 快速定位关键函数 (真正的main函数)&#xff1a;观察输出、输入&#xff0c;字符串搜索&#xff0c;断点等方法。定位关键 加密区 &#xff1a;根据输入的flag&#xff0c;打硬件断点&#xff0c;快速捕获…

GRE做题笔记(零散的个人经验)

locomotive机车By 1813, the Luddite resistance had all but vanished. all but表示“几乎完全”的程度&#xff0c;或者表示排除piston活塞attributed to 归因于how a sportsperson accounted for their own experience of stress 运动员如何解释自己的压力经历 &#xff0c;…