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

sqli-labs靶场通关笔记:第1-4关 联合注入

第1关:单引号闭合

1.这是第1关的界面,让我们以id作为参数输入,方式为数值,这里输入?id=1看一下。

2.显示了id=1的用户名和密码。

分析:

在sql注入漏洞中,第一步是要寻找注入点,即可以输入参数的地方,这里URL栏就是。

第二步通过输入特殊字符串来判断服务器的响应结果是否存在异常,如果回显异常,则存在sql注入的可能。

第三步构造语法或者利用工具进行攻击。

3.输入?id=1'后,页面回显报错。再输入注释符,页面恢复正常。

分析:

注释符为什么是--+而不是--,因为标准注释符是--后面跟一个空格,在URL传输中会将空格编码成+号。

这里输入单引号报错,注释后正常,说明闭合方式是单引号。

4.知道闭合方式后,利用order by 判断字段数。order by是数据库查询中的排序语句,它的作用是确定返回的字段数(列数),是联合查询注入的前提。

这里输入 order by 3 回显正常,order by 4 回显错误,说明存在3个字段。

5.利用union联合查询判断回显位。这里id=-1的作用是让原始查询结果返回一个空集,确保联合查询的结果能够显示到页面上。这里我们得出结论,第1列的数据显示不了,第2,3列会显示出来。

6.构造语法进一步查询。这里我们查询出了当前的数据库名称。

7. 继续查询,步骤为查询数据库,查询表,查询字段,查询字段数据。

 information_schema 是mysql中内置的重要数据库,它储存了其他所有数据库的元数据信息。

group_concat()函数的作用是将查询的值合并为一个字符串,用来更完整提取信息。

-- 查询所有数据库
SELECT SCHEMA_NAME FROM information_schema.SCHEMATA;
-- 查询当前数据库所有表SELECT TABLE_NAMEFROM information_schema.TABLESWHERE TABLE_SCHEMA = DATABASE();

查询当前数据库所有表:

group_concat(table_name) from information_schema.tables where table_schema=database();

 这里查询到几张表,猜测重要的表可能是users,这可能是一张用户表,里面储存了用户的相关信息。

查询当前表的字段:

group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users';

得到了用户名表中的三个字段,即用户ID,用户名,密码。

查询字段数据:

group_concat(username,password) from users;

到这里就完成了。

第2关是数字型注入,第3关是')闭合,第4关是")闭合。

判断闭合方式:第一步输入字符串xx报错,第二步输入xx--+正常回显,验证为xx闭合。

总结:

1.寻找注入点;

2.利用特殊字符串判断闭合方式;

3.利用order by判断字段数;

4.利用union联合注入判断回显位;

5.构造语法依此查询数据库,表,字段,数据。

http://www.dtcms.com/a/274680.html

相关文章:

  • ros topic和service的使用
  • 深入浅出Redis:一文掌握Redis底层数据结构与实现原理
  • Java Stream流介绍及使用指南
  • GIC控制器 (三)
  • 猿人学js逆向比赛第一届第十八题
  • 【一起来学AI大模型】微调技术:LoRA(Low-Rank Adaptation) 的实战应用
  • Linux kernel regcache_cache_only()函数详解
  • pytest中mark的使用
  • SpringCloud之Feign
  • 深入探讨大模型的记忆机制及其前沿技术
  • 数据结构与算法——从递归入手一维动态规划【2】
  • 极端高温下的智慧出行:危险检测与救援
  • AI介入电商内容生产,会颠覆品牌运营吗?
  • 打破内网壁垒,轻松实现安防视频的云端汇聚与P2P超低延迟播放
  • 史上最详细Java并发多线程(面试必备,一篇足矣)
  • 进制转换小题
  • 5 大人工智能知识管理工具
  • 冒泡排序和快速排序
  • 云成本优化完整指南:从理论到实践的全方位解决方案
  • 聚焦数据资源建设与应用,浙江省质科院赴景联文科技调研交流
  • Python 异常处理机制详解:try-except 捕获异常
  • 奇哥面试:RabbitMQ工作模式深度剖析与Spring整合MQ
  • C++ auto与 for循环
  • 2022 年 12 月青少年软编等考 C 语言七级真题解析
  • Linux驱动(input子系统)
  • 使用Python将目录中的JPG图片按后缀数字从小到大顺序纵向拼接,很适合老师发的零散图片拼接一个图片
  • 垂直和领域 Agent 的护城河:上下文工程
  • python16——匿名函数
  • 基于RUP的软件过程深度解析:架构师的高效工程框架
  • 73、【OS】【Nuttx】【启动】深入理解 caller-saved 和 callee-saved(上)