MYSQL注入天书之前言

写在前面的一些内容

请允许我叨叨一顿:

最初看到sqli-labs也是好几年之前了,那时候玩了前面的几个关卡,就没有继续下去了。最近因某个需求想起了sqli-labs,所以翻出来玩了下。从每一关卡的娱乐中总结注入的方式,这就是娱中作乐,希望能保持更大的兴趣学下去。而很多的东西不用就忘记了,有些小的知识点更是这样,网上搜了一下相关资料,基本上同仁前辈写的博客中讲解基础关。脑门一热决定给后面的人留下点东西(或许糟粕或许精华,全在你的角度),遂决定写blog。Blog写完了后决定总结成一个pdf文档,更方便查看。本来想着录制视频,可是时间要求太长了,所以只能先放下,此处看后期时间安排或者需求,可能的话对原作者的视频进行消音重新配音。最后希望能对后面参考该文档的人有帮助,不枉此作。

为什么要写这个?

(1)sql的危害,多少的网站是被此攻破的,危害不必细讲,同样的今天网络安全形势一片大好,依旧有很多的网站存在漏洞。具体不表,可以去各大src看看。

(2)很多的人觉得sql是如此的简单,同时很多的人是华而不实,对sql注入的理解到底有多深,决定了你对此漏洞的利用方式有多么变幻莫测。个人就想着利用自己对sql注入的理解,来完成这一个游戏。当然了,sql注入的内容有很多,这个是真的!因为我写的手酸。。

(3)以前自己在学习的时候太过于痛苦,大部分的人入门的时候通过sql走进来。同时呢,sql注入的世界真的很精彩,当你看到别人用智慧构成的payload时,你会感触颇多。所有形成你自己的理解和使用方法,而不是生搬硬套。此处希望通过该文档帮助到正在学习的人。

这项工作要怎么做?

现在大致的思路分为三个部分,但是不知道有没有时间和精力能够写完。确实写的过程比较耗费时间。

  1. 、通过源码和手工的方式,将所有的注入方式和造成漏洞的原因找出来,并进行学习。此处要求是对每一个类型的注入进行"深刻"的了解,了解其原理和可能应用到的场景。
  2. 通过工具进行攻击,我们此处推荐使用sqlmap。此过程中,了解sqlmap的使用方法,要求掌握sqlmap的流程和使用方法,精力较足的话,针对一些问题会附sqlmap的源码分析。
  3. 自己实现自动化攻击,这一过程,我们根据常见的漏洞,自己写脚本来进行攻击。此处推荐python语言。同时,sql-labs系统是php写的,这里个人认为可以精读一下每关的源码,同时针对有些关卡,可以尝试着添加一些代码来增强安全性。

    Ps:工具注入和自动化注入可能延后,见第二个版本。请关注博客。

    你该怎么去学?

  4. 安装环境后,动手实验。实践中遇到问题才能更大的激发起兴趣。
  5. 遇到不会查资料,可以在我的博客(www.cnblogs.com/lcamry)中找到一些资料。或者可以请教别人,虚心请教,不耻下问。三人行必有我师焉!
  6. 书山有路勤为径,勤奋是唯一的一条路。

    我的相关介绍

    Blog:www.cnblogs.com/lcamry

    联系QQ:646878467

    课余时间和工作之外时间来写,时间仓促,同时个人实力有限,望各位批评指正。

时间: 2024-12-26 08:50:36

MYSQL注入天书之前言的相关文章

MYSQL注入天书之开天辟地

MYSQL注入天书 ---------Sqli-labs使用手册 ? MYSQL注入天书????1 写在前面的一些内容????1 SQLI和sqli-labs介绍????2 Sqli-labs下载????2 Sqli-labs安装????2 第一部分/page-1 Basic Challenges????3 Background-1 基础知识????3 Less-1????10 Less-2????14 Less-3????15 Less-4????16 Background-2 盲注的讲解??

MYSQL注入天书之基础知识

第一部分/page-1 Basic Challenges Background-1 基础知识 此处介绍一些mysql注入的一些基础知识. (1)注入的分类---仁者见仁,智者见智. 下面这个是阿德玛表哥的一段话,个人认为分类已经是够全面了.理解不了跳过,当你完全看完整个学习过程后再回头看这段.能完全理解下面的这些每个分类,对每个分类有属于你的认知和了解的时候,你就算是小有成就了,当然仅仅是sql注入上. 基于从服务器接收到的响应? ▲基于错误的SQL注入 ▲联合查询的类型 ▲堆查询注射 ▲SQL

MYSQL注入天书之宽字节注入

Background-7 宽字节注入 Less-32,33,34,35,36,37六关全部是针对'和\的过滤,所以我们放在一起来进行讨论. 对宽字节注入的同学应该对这几关的bypass方式应该比较了解.我们在此介绍一下宽字节注入的原理和基本用法. 原理:mysql在使用GBK编码的时候,会认为两个字符为一个汉字,例如%aa%5c就是一个汉字(前一个ascii码大于128才能到汉字的范围).我们在过滤 ' 的时候,往往利用的思路是将 ' 转换为 \' (转换的函数或者思路会在每一关遇到的时候介绍)

MYSQL注入天书之导入导出介绍

Background-3 导入导出相关操作的讲解 load_file()导出文件 Load_file(file_name):读取文件并返回该文件的内容作为一个字符串. 使用条件: A.必须有权限读取并且文件必须完全可读? ? ? ? ? ? and (select count(*) from mysql.user)>0/* 如果结果返回正常,说明具有读写权限. ? ? ? and (select count(*) from mysql.user)>0/* 返回错误,应该是管理员给数据库帐户降权

MYSQL注入天书之盲注讲解

Background-2 盲注的讲解 何为盲注?盲注就是在sql注入过程中,sql语句执行的选择后,选择的数据不能回显到前端页面.此时,我们需要利用一些方法进行判断或者尝试,这个过程称之为盲注.从background-1中,我们可以知道盲注分为三类 ?基于布尔SQL盲注 ?基于时间的SQL盲注 ?基于报错的SQL盲注 Ps:知识点太多了,这里只能简单列出来大致讲解一下.(ps:每当看到前辈的奇淫技巧的payload时,能想象到我内心的喜悦么?我真的想细细的写写这一块,但是不知道该怎么写或者小伙伴

MYSQL注入天书之stacked injection

第三部分/page-3 Stacked injection Background-8 stacked injection Stacked injections:堆叠注入.从名词的含义就可以看到应该是一堆sql语句(多条)一起执行.而在真实的运用中也是这样的,我们知道在mysql中,主要是命令行中,每一条语句结尾加 ; 表示语句结束.这样我们就想到了是不是可以多句一起使用.这个叫做stacked injection. 0x01 原理介绍 在SQL中,分号(;)是用来表示一条sql语句的结束.试想一

MYSQL注入天书之后记

后记 对于工具的看法: 我之所以在每个例子中只写了几个示例,是因为我希望你能通过这一两个示例举一反三将其他的列出来.如果让我来完成每一次完整的注入,应该在知道原理的情况下,必然使用工具或者自己写代码实现自动化.为什么不拿着工具直接上,想必大多数的人开始的时候都是使用别人的工具,其实这种习惯已经侵蚀着你的思维和学习方式,所以为了改变,为了不让别人总说你是script kids,完成上述的原理理解是必须的. 对整项工作我的看法: 我没有写工具注入和代码自动化,(因为只有部分关卡做了这两项工作,没脸写

MYSQL注入天书之数据库增删改介绍

Background-4 增删改函数介绍 在对数据进行处理上,我们经常用到的是增删查改.接下来我们讲解一下mysql 的增删改.查就是我们上述总用到的select,这里就介绍了. 增加一行数据.Insert 简单举例 insert into users values('16','lcamry','lcamry'); ? 删除 ? 2.删数据:?? delete?from?表名;?? delete?from?表名?where?id=1;?? ? 删除结构:?? 删数据库:drop?database

MYSQL注入天书之服务器(两层)架构

Background-6 服务器(两层)架构 首先介绍一下29,30,31这三关的基本情况: 服务器端有两个部分:第一部分为tomcat为引擎的jsp型服务器,第二部分为apache为引擎的php服务器,真正提供web服务的是php服务器.工作流程为:client访问服务器,能直接访问到tomcat服务器,然后tomcat服务器再向apache服务器请求数据.数据返回路径则相反. 此处简单介绍一下相关环境的搭建.环境为ubuntu14.04.此处以我搭建的环境为例,我们需要下载三个东西:tomc