渗透之sql注入----二次注入

news2024/11/20 13:42:41

目录

二次注入的原理:

实战:

第一步:找注入点

找漏洞:

注入大概过程:

第二步:开始注入


二次注入的原理:

        二次注入是由于对用户输入的数据过滤不严谨,导致存在异常的数据被出入数据库中;当我们从数据库中二次使用该数据时就会产生注入行为。

        二次注入也是较为常见的注入方式。

实战:

我们在sql靶场进行操作,本次的实战是sql靶场的第二十四关:

第一步:找注入点

我们通过查看源码可知,此关卡共有一下几个php页面。

经过大致的解读代码,这几个页面中可能存在注入点的php页面为pass_change.php,login.php,login_create.php三个页面。这三个页面的功能分别为修改密码,登录,创建新用户。

找漏洞:

我们观察这三个页面的php关键代码:

login.php:

login_create.php:

pass_change.php:

我们发现在我们输入的关键字段都被函数:mysql_real_escape_string()过滤了。这个函数的意思是对用户输入的敏感字符进行转义(在关键字符上连接一个反斜线进行转义),我们去php官网查看:

缺陷:该函数虽然可以对用户输入的进行过滤,但是在写入数据库中时并不会将其一并代入数据库。那么我们就可以从此点入手。

列子:我们注册一个用户,用户名为admin'#

去数据库中查看:发现特殊字符一并存入了数据库。

我们继续观察,发现在pass_change.php中的sql语句中会使用用户名来筛选并修改密码,但是该用户名是直接从数据库中取出的,并没有使用mysql_real_escape_string()函数进行过滤,那么我们就可以发现本次的注入点就在这里。

注入大概过程:

我们可以找到一个用户的用户名,但是我们并不知道它的密码。之后进入注册页面注册新的用户名,在进入密码修改界面修改密码。这就是本次注入的大概流程。

第二步:开始注入

1):假设我们已经知道了一个用户,叫做secure

2):进入注册页面:

注册一个用户名叫:secure'#    的用户

3):我们使用自己注册的用户登录,进入密码修改界面:

修改新密码为:aaaaaa

pass_change.php代码分析:

本次执行的sql代码为:

$sql = "UPDATE users SET PASSWORD='$pass' where username='$username';

这里的用户名为本次登录的用户名,并且直接从数据库中读取,没有进行过滤,当前的用户名为:

secure。

实际执行的代码为:如下

通过sql语句可以看到,我们实际上修改的为secure用户的密码。

4):使用我们修改的密码aaaaaa,来进行登录secure用户。

成功的登入了secure用户。

5):说明我们成功的使用sql注入,利用漏洞拿到了secure用户的密码,本次实验圆满成功。本次实验就是典型的二次注入。

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

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

相关文章

树和二叉树的定义和基本术语

文章目录 前言一、树的定义二、树的基本术语三、二叉树的定义总结 前言 T_T此专栏用于记录数据结构及算法的(痛苦)学习历程,便于日后复习(这种事情不要啊)。所用教材为《数据结构 C语言版 第2版》严蔚敏。 一、树的定义…

HTTP请求三方接口绕过https证书检查

问题:在http请求https接口过程中经常会遇到SSL证书检查或者证书过期 ** sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: validity check failed ** 解决办法:绕过证书检查…

Vue--》从零开始打造交互体验一流的电商平台(一)

今天开始使用 vue3 ts 搭建一个电商项目平台,因为文章会将项目的每处代码的书写都会讲解到,所以本项目会分成好几篇文章进行讲解,我会在最后一篇文章中会将项目代码开源到我的github上,大家可以自行去进行下载运行,希…

了解tensorflow.js

1、浏览器中进行机器学习的优势 浏览器中进行机器学习,相对比与服务器端来讲,将拥有以下四大优势: 不需要安装软件或驱动(打开浏览器即可使用);可以通过浏览器进行更加方便的人机交互;可以通过…

#内部类#

1,概念 如果一个类定义在另一个类的内部,这个内部类就叫做内部类。内部类是一个独立的类,它不属于外 部类,更不能通过外部类的对象去访问内部类的成员。外部类对内部类没有任何优越的访问权限。重点:内部类是一个独立的类 注意&…

分位数回归的基本原理和特点

基本模型及解释 分位数回归经典模型是由Koenker和Bassett (1978b)引入的,它从位置模型中的普通分位数(也称为“百分位数”)的概念扩展到更一般的一类线性模型,其中条件分位数具有线性形式。为了简单地回忆一下普通分位数,考虑一个实数随机变…

【通信】为什么用复形式表示信号

引入: 一个实例反映复信号和实信号对应关系(幅度与相位) 复信号的意义 在实际工程中,没有数学意义上的复数信号。再信号与系统中引入复数是为了: ①简化公式,特别是三角函数 ②复数的实部和虚部实际上代…

TCP 连接,一端断电和进程崩溃有什么区别?

TCP 连接,一端断电和进程崩溃有什么区别? 前言主机崩溃进程崩溃有数据传输的场景客户端主机宕机,又迅速重启客户端主机宕机,一直没有重启 总结 前言 有的小伙伴在面试腾讯的时候,遇到了这么个问题: 这个属…

云手机:海外舆情监控的新工具

在数字化时代,海外舆情监控对于企业、品牌和政府机构来说,已经变得至关重要。传统的舆情监控方法往往受限于地域、设备和技术,而云手机的出现,为海外舆情监控带来了全新的解决方案。 一、云手机与海外舆情监控的完美结合 云手机作…

RisingWave基本操作

什么是RisingWave RisingWave 是一款基于 Apache 2.0 协议开源的分布式流数据库。RisingWave 让用户使用操作传统数据库的方式来处理流数据。通过创建实时物化视图,RisingWave 可以让用户轻松编写流计算逻辑,并通过访问物化视图来对流计算结果进行及时、…

银行卡OCR识别接口快速对接

银行卡OCR识别接口又叫银行卡卡面信息识别接口、银行卡文字信息识别API接口,指的是传入银行卡照片,精准识别静态银行卡图像上的文字信息,包括银行卡号、卡类型、银行名称等。那么银行卡OCR识别接口如何快速对接呢? 首先我们找到一…

【新版系统架构】知识点背诵默写本

前言 系统架构考试在即,想要考试的人肯定感受到了沉甸甸的压力和紧迫感,脑海中不断闪过知识点的画面,却让人有些头昏脑胀,发现很难完全记住,这个考试很难,知识点很多。这次我在准备考试的同时,…

VBA技术资料MF152:列出工作表中所有单元格的注释

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套,分为初级、中级、高级三大部分,教程是对VBA的系统讲解&#…

最全网络安全学习路线!涵盖所有知识点,看这一篇掌握网安技能!

目录 零基础小白,到就业!入门到入土的网安学习路线! 建议的学习顺序: 一、夯实一下基础,梳理和复习 二、HTML与JAVASCRIPT(了解一下语法即可,要求不高) 三、PHP入门 四、MYSQL…

【备战软考(嵌入式系统设计师)】10 - 软件工程基础

这一部分的内容是概念比较多,不要理解,去感受。 涉及的知识点是嵌入式系统开发和维护的部分,也就是和管理相关的,而不是具体如何进行嵌入式系统开发的细节。 系统开发生命周期 按照顺序有下面几个阶段,我们主要要记…

【双曲几何-05 庞加莱模型】庞加来上半平面模型的几何属性

文章目录 一、说明二、双曲几何的上半平面模型三、距离问题四、弧长微分五、面积问题六、python实现 一、说明 我们知道,双曲几何的著名模型有四种:微分解析模型、庞加莱盘、庞加莱半平面、克莱因盘。庞加莱圆盘模型是表示双曲几何的一种方法&#xff0c…

全网最详细教学如何部署JVS-无忧企业文档

无忧企业文档项目直达地址 项目的简单介绍 JVS是面向软件开发团队可以快速实现应用的基础开发框架,采用微服务分布式框架,提供丰富的基础功能,集成众多业务引擎,它灵活性强,界面化配置对开发者友好,底层容…

兄弟DCP-7057激光打印机报错误代码EC检修及分析

故障描述: 兄弟DCP-7057激光打印机屏幕显示无法打印EC关闭电源,然后重新打开打印机。 故障检修及分析: 1、定影单元风扇的插线连接不良 检查定影单元风扇的插线连接并重新连接; 2、定影单元风扇故障 更换定影单元风扇&#xff1b…

宏集Panorama SCADA软件获BACnet BTL认证

Panorama 获得BACnet BTL认证 建筑物的组件(空调系统、照明传感器等)能否使用共同通讯协议?这正是标准化 BACnet协议(Building Automation and Control Networks)所提供的功能。该协议旨在实现建筑物中各种设备和系统…

JavaEE 多线程详细讲解(2)

1.线程不安全分析 (1)线程不安全的主要原因就是,系统的抢占式执行,对于内核设计者来说,这是非常方便的一个执行方式,但是这却却导致线程不安全的问题,也有不抢占执行的系统,但是这种…