sql注入要掌握资料库的哪些部分?要不要把资料库从头到脚学一遍??

目前的水平是SQL注入知道1=1,其余什么select, union之类的ctf题看的迷迷糊糊。


首先插播一句题外话,对于安全知识和技能的学习是永无止境的,并不存在不需要学习的东西。

这里特别提到」资料库」,SQL注入攻击类型和资料库语句成直接关系,资料库语句作为了解注入原理的前提条件,必须熟透于心,譬如,布尔盲注、时间盲注、报错注入、联合查询、堆查询等。反之,如果不了解以上原理,那只能停留在跑脚本的阶段,然而,目前市面上的防火墙对于SQL注入方面的拦截已经做得相对完善,在防火墙的保护下,单单依靠跑脚本是无法检测到SQL注入的。

因此,能熟练了解各种注入类型,并在此基础上运用自身拼接出来的语句绕过防火墙,这种既能分析问题又能解决问题,稳扎稳打的安全人才才是真正被社会所需要的。

发布于 2018-06-08继续浏览内容知乎发现更大的世界打开Chrome继续阿洋阿洋公众号【小狼工具】,学更多黑客技术

先说结论:

当然需要学习资料库

这些其实都是最基本的东西

不管你学不学,只要你深入,肯定是都会用到这个东西的

新手先入门,别一下子啥都碰。感觉高票列那么多书籍,又是来劝退的吧。

MySQL是一门偏向实际应用的课程。和其他语言一样,光靠看书和听课肯定不够,主要还是得靠练习。

对于新手来说,安装环境往往是最困难的。所以就给大家推荐两个网课,免安装,免费,且比较完整的网课。有理论讲解,也有实际练习。一举多得。

学SQL这种技能呢,练习才是王道。

那么怎么来学呢?

简单说下

首先,学习基本的SQL语法。完成这个后,你就可以编写SQL语句了。

这一步推荐:W3Schools的 SQL 教程。

其次,学习资料库的主要功能和使用方法,比如用户相关或者许可权相关等等。

我推荐两本书:

一、《MySQL必知必会》 这本书讲的非常全,从基本概念,到查询到插入新建表,用户的管理,都有具体的例子,非常适合没有任何基础的同学来学习Mysql,总之这本书学习的方法就是:1、十分钟了解下资料库的基本概念 2、找到练手的资料库 3、对照著上面的内容去敲。本书里也有大量的内容是讲sql的,可以结合w3c的sql教程一起,有取舍地看。

二、《资料库系统概念》这本书是dba必看的。

看完这些并且实践+思考之后,可以算入门了。

接下来对于希望深入学习的小伙伴

我推荐几本书(很多大神都这么推荐),《高性能MySQL(第3版)》、 《MySQL技术内幕(第4版)》,《MySQL技术内幕 InnoDB存储引擎》,《深入理解MySQL》还有Mysql的官网。读完这些东西,再加些丰富的经验,理论上来讲就具备DBA的水平了。

十分推荐阅读Planet MySQL上汇总的博客,特别是Perconas MySQL InnoDB performance and scalability blog.

但是,正如我开头所言的。面对问题的时候一定要积极思考!

比如:

我问你,面对一个并发量比较高的场景,如何配置mysql的连接数?

你可能会回答:「哦,就是调高max_connection的数值吧。」

那,你有没有思考过调到多少是最合适的呢?为什么这样设置就最合适呢?

也许你会回答:「恩我知道,可以看系统之前的max_used_connection的数值,然后来设置。也可以调高back_log的值。」

那你有没有思考过,max_connection连接数太高会有什么不好的影响呢?back_log设置的太高有什么不好的地方呢?max_connect的上限其实是取决于mysql能获得的文件描述符的数量,也就是说你就算设置成10000,最后也是没用的,系统会根据机器的情况自动调低。

也许你会回答:「恩我知道,设置太高,会有系统开销...」

那你有没有思考过,这些开销具体是什么呢?是什么工作导致了需要这些内存开销?

也许你还会回答,在连接创建的时候,会立刻为它分配连接缓冲区以及查询缓冲区,这些都会吃内存。

那你有没有思考过,占据的资源具体是多少呢?取决于哪些因素呢?

好了,我们先结束这个问题。回到知乎的问题上来,其实我说了这么多,就是表达要如何自学mysql。

所以的所以,你必须不断思考,才能在工作中面对具体场景的时候,非常淡定地推断:「哦,一定是这里出了问题。应该怎么怎么做。」

面对问题,拿出打破砂锅问到底的精神,先思考一番,给出自己的假设,不要著急地去找度娘,谷歌。思考过后,带著你的推断或者答案,大胆地去搜索吧!去看看别人的见解,去看看官方的描述!

这才是一个工程师应有的态度。

最后我想给出一些有价值的学习资料。可以省去一些时间。

-电子书:

我认为多看书还是有好处的。有些书值得反复看许多遍,有时候只看一遍无法深刻理解吸收,思考也不够充分。

电子书下载传送门

  • 《mysql必知必会》
  • 《高性能mysql第三版》
  • 《资料库系统概念》
  • 《深入理解MySQL》
  • 《MySQL性能调优与架构设计--全册》《SQL Antipatterns》
  • 《MySQL技术内幕 InnoDB存储引擎》

-学习mysql的网站:

MySQL Tutorial - Learn MySQL Fast, Easy and Fun.

可以快速,简单和有趣的学习MySQL。以简单易懂的方式为您提供完整的MySQL教程。每个教程都有SQL脚本和可用屏幕截图的实际示例。

mysql学习资料 | mysql深入学习笔记 深度笔记

有很多mysql的资料可以看,还可以看网友做的学习笔记。

W3Schools SQL 教程

可以学习基础的sql语句

-阅读官方手册

无论英文好不好,看英文手册的能力是一定要有,也一定要培养的。

mysql官方手册:14 The InnoDB Storage Engine

-大牛的博客

领域专家的博客是十分具有学习价值的,下面列举几个比较好的:

何登成的技术博客 何登成的技术博客

淘宝丁奇 追风刀·丁奇 - ITeye技术网站

周振兴@淘宝 花名:苏普 一个故事@MySQL DBA

阿里云资料库高级专家彭立勋为 MariaDB Foundation 正式成员,负责全球Replication模块相关补丁的Review。彭立勋也成为首位被MariaDB基金会引入的中国程序员。

想要提高自己的技术水平,永远要记得,多动手,多实战


先说结论:

当然需要学习资料库

这些其实都是最基本的东西

不管你学不学,只要你深入,肯定是都会用到这个东西的

新手先入门,别一下子啥都碰。感觉高票列那么多书籍,又是来劝退的吧。

MySQL是一门偏向实际应用的课程。和其他语言一样,光靠看书和听课肯定不够,主要还是得靠练习。

对于新手来说,安装环境往往是最困难的。所以就给大家推荐两个网课,免安装,免费,且比较完整的网课。有理论讲解,也有实际练习。一举多得。

学SQL这种技能呢,练习才是王道。

那么怎么来学呢?

简单说下

首先,学习基本的SQL语法。完成这个后,你就可以编写SQL语句了。

这一步推荐:W3Schools的 SQL 教程。

其次,学习资料库的主要功能和使用方法,比如用户相关或者许可权相关等等。

我推荐两本书:

一、《MySQL必知必会》 这本书讲的非常全,从基本概念,到查询到插入新建表,用户的管理,都有具体的例子,非常适合没有任何基础的同学来学习Mysql,总之这本书学习的方法就是:1、十分钟了解下资料库的基本概念 2、找到练手的资料库 3、对照著上面的内容去敲。本书里也有大量的内容是讲sql的,可以结合w3c的sql教程一起,有取舍地看。

二、《资料库系统概念》这本书是dba必看的。

看完这些并且实践+思考之后,可以算入门了。

接下来对于希望深入学习的小伙伴

我推荐几本书(很多大神都这么推荐),《高性能MySQL(第3版)》、 《MySQL技术内幕(第4版)》,《MySQL技术内幕 InnoDB存储引擎》,《深入理解MySQL》还有Mysql的官网。读完这些东西,再加些丰富的经验,理论上来讲就具备DBA的水平了。

十分推荐阅读Planet MySQL上汇总的博客,特别是Perconas MySQL InnoDB performance and scalability blog.

但是,正如我开头所言的。面对问题的时候一定要积极思考!

比如:

我问你,面对一个并发量比较高的场景,如何配置mysql的连接数?

你可能会回答:「哦,就是调高max_connection的数值吧。」

那,你有没有思考过调到多少是最合适的呢?为什么这样设置就最合适呢?

也许你会回答:「恩我知道,可以看系统之前的max_used_connection的数值,然后来设置。也可以调高back_log的值。」

那你有没有思考过,max_connection连接数太高会有什么不好的影响呢?back_log设置的太高有什么不好的地方呢?max_connect的上限其实是取决于mysql能获得的文件描述符的数量,也就是说你就算设置成10000,最后也是没用的,系统会根据机器的情况自动调低。

也许你会回答:「恩我知道,设置太高,会有系统开销...」

那你有没有思考过,这些开销具体是什么呢?是什么工作导致了需要这些内存开销?

也许你还会回答,在连接创建的时候,会立刻为它分配连接缓冲区以及查询缓冲区,这些都会吃内存。

那你有没有思考过,占据的资源具体是多少呢?取决于哪些因素呢?

好了,我们先结束这个问题。回到知乎的问题上来,其实我说了这么多,就是表达要如何自学mysql。

所以的所以,你必须不断思考,才能在工作中面对具体场景的时候,非常淡定地推断:「哦,一定是这里出了问题。应该怎么怎么做。」

面对问题,拿出打破砂锅问到底的精神,先思考一番,给出自己的假设,不要著急地去找度娘,谷歌。思考过后,带著你的推断或者答案,大胆地去搜索吧!去看看别人的见解,去看看官方的描述!

这才是一个工程师应有的态度。

最后我想给出一些有价值的学习资料。可以省去一些时间。

-电子书:

我认为多看书还是有好处的。有些书值得反复看许多遍,有时候只看一遍无法深刻理解吸收,思考也不够充分。

电子书下载传送门

  • 《mysql必知必会》
  • 《高性能mysql第三版》
  • 《资料库系统概念》
  • 《深入理解MySQL》
  • 《MySQL性能调优与架构设计--全册》《SQL Antipatterns》
  • 《MySQL技术内幕 InnoDB存储引擎》

-学习mysql的网站:

MySQL Tutorial - Learn MySQL Fast, Easy and Fun.

可以快速,简单和有趣的学习MySQL。以简单易懂的方式为您提供完整的MySQL教程。每个教程都有SQL脚本和可用屏幕截图的实际示例。

mysql学习资料 | mysql深入学习笔记 深度笔记

有很多mysql的资料可以看,还可以看网友做的学习笔记。

W3Schools SQL 教程

可以学习基础的sql语句

-阅读官方手册

无论英文好不好,看英文手册的能力是一定要有,也一定要培养的。

mysql官方手册:14 The InnoDB Storage Engine

-大牛的博客

领域专家的博客是十分具有学习价值的,下面列举几个比较好的:

何登成的技术博客 何登成的技术博客

淘宝丁奇 追风刀·丁奇 - ITeye技术网站

周振兴@淘宝 花名:苏普 一个故事@MySQL DBA

阿里云资料库高级专家彭立勋为 MariaDB Foundation 正式成员,负责全球Replication模块相关补丁的Review。彭立勋也成为首位被MariaDB基金会引入的中国程序员。

想要提高自己的技术水平,永远要记得,多动手,多实战


web安全肯定是要学习资料库的。

根据你所提的这个问题,觉得题主是刚刚接触web安全,有一定基础但没有深入了解。在这里提一些基础的建议。

1. 语言的学习,web安全会涉及到很多语言,你需要有一定的语言基础,才能更加深入的理解目标网站,以至找到它漏洞所在。Web安全所需要的语言:php(大部分网站开发所用的语言),python(flask、dinggo框架、编写web脚本),java(web开发语言),go(web开发语言)。

2. 基础的web安全知识。如计算机网路基础、http协议、php弱类型、sql注入漏洞、xss漏洞、文件包含漏洞等。其中sql注入漏洞,就需要结合资料库相关的知识进行攻击。

3. 更进一步的学习。关注一些web安全相关的公众号,获取最新的web安全信息。如最新的cve、最新的绕过方式等。

4. 推荐一个web安全学习的网址:https://github.com/CHYbeta/Web-Security-Learning。在这个网址你可以自主学习到web安全知识。另外你也可以通关打ctf比赛来提高自己web安全水平。

了解最新「智驭安全」产品、技术与解决方案,欢迎关注微信公众号:丁牛科技(Digapis_tech)

发布于 2019-01-08继续浏览内容知乎发现更大的世界打开Chrome继续CarrierCarrierWeb安全/CTFer/机器学渣/想转二进位

注入这辈子是不可能注入的,手工注又不会,sqlmap命令又记不住,只有看看师傅们的wp,才能照著做做题这样子,实验吧i春秋里个个都是人才,做题又厉害,我有超喜欢在里面........


注入这辈子是不可能注入的,手工注又不会,sqlmap命令又记不住,只有看看师傅们的wp,才能照著做做题这样子,实验吧i春秋里个个都是人才,做题又厉害,我有超喜欢在里面........


个人见解:肯定是要学习的,举个栗子:如果遇到工具无法进行SQL 注入的时候只能手工来,在构造查询语句时自然要理解其意!so,资料库肯定是要学习的!


推荐阅读:
相关文章