资讯

展开

围攻》攻防模式 攻防网页游戏

作者:本站作者

为什么网络攻防要学数据库啊,有什么关系吗?

为什么网络攻防要学数据库啊,有什么关系吗

网络攻防,一个是攻,一个是防为什么在网络攻防里数据库重要?为什么我们要学数据库?下面我从攻击方角度和防守方角度分别来诠释学习数据库的重要性首先我们看看,数据库是什么?数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可视为的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。

简单点说就是网站、应用系统等存储各类信息的一个“仓库”,作为管理者你可以对这些信息进行管理,包括增删改查等,举个最简单的例子,你微信的账号和密码就是存储在微信系统的数据库中的,你登录时输入的值就会和数据库里对应的值就行比对,如果一致那么密码正确允许登录,你修改密码就相当于修改了数据库某一项的值,你就相当于普通用户,而数据库管理员则拥有更高的权限,不同的管理员也有不同的权限,但一般来说是可以对所有普通用户进行管理操作了。

那为什么数据库如此重要?上面我也说了,一般情况下,一个管理员是可以管理所有普通用户数据的,假如你获得了微信系统的一个管理员权限,那么你几乎可以查询这个数据库里所有普通用户,也就是查看所有人的微信信息,包括账号、密码、身份信息、联系信息、好友列表、支付密码等,而且这些数据库管理员是可以执行操作系统指令的,所以,如果拿到数据库管理员权限,那我就相当于获得了所有数据,然后再通过数据库执行操作系统指令,进一步控制电脑服务器,这就是数据库为什么如此重要的原因了!实际上如果是真正做黑产的人,不考虑内网扩散其他服务器的情况下,获得数据库里面的敏感数据得到的收益是远远大于获取一个肉鸡的收益的。

(肉鸡:留下后门可随时控制的电脑)从攻击角度来说首先,我们来想一下,黑客攻击的目的是什么?不就是控制目标服务器或者拿取数据吗?如果最基本的数据库原理都不会,指令都不会,就算给你数据库接口你如何获取数据?而实际攻击过程中,由于网站应用系统的不同,以及数据库的不同,各自可能存在的漏洞不同,我们会存在各式各类的复杂情况,所以实际上我们需要学习的更多攻击数据库以大家最常听见的SQL注入来说,你需要学习SQL注入原理、联合注入、注入类型、别名提升权限、读取文件、html锚点、Mysql布尔注入、延时注入、别名讲解、MYSQL-BUG注入、MYSQL函数报错、修复SQL注入、判断网站是否存在注入、宽字节注入、多语句注入、Values注入、Delete注入、UPdate型注入、注入常用函数、防火墙、其它数据库注入等等!以上只是部分注入技能,你学会了过后不代表你就能利用漏洞获取数据了,就像你只是刚刚学会了走路而已了,实际注入过程中还会遇到防护措施阻拦,包括数据库、网站系统本身的防护、关键字过滤等,以及web防火墙等,你还要学习如何绕过它们,才有可能真正获取到数据!也就是说你不仅要学会走路,还得学会跑,还得会跨栏,你才可能真正到达终点!当然还有其他攻击方式最终也能获取到数据,这里就不扩展探讨了,感兴趣的可以关注我,不定期分享一些网络攻防的技术。

从防守角度来说作为防守者,尤其是你想要做一个优秀的防守者,保护你的数据不被黑客拿到,那么同样的,你也需要了解刚才所说的一些数据库的攻击方式,数据库原理等等,而且你还要学习更多防绕过方式!因为你只有明确知道了如何攻击,你才真正知道如何防御!就像我们房子防御小偷一样,小偷只需要一个窗户就能进来,而我们为了不让小偷进来,我们会看好门,看好窗等所有小偷有可能进来的地方!。

为什么那些攻防教学例子基本都是php网站或者asp之类的?

这个问题这就要从asp和php这二十年多来的各种纠葛说起了。大概97年前互联网基本上是蛮荒之地,全世界大多数网站都是静态的HTML网页,一些科研机构和有技术实力的单位,使用cgi实现网站后台程序,使网站有了交互逻辑。但cgi(通用网关编程接口)实在是太难了,也缺少相关教材,使一般人想做一个动态交互型网站几乎不可能。

随后98年WindowsNT系统已经出来一年多以后慢慢被国人接受,发现他配套的IIs带的asp语言是如此的简单高效,熟悉一点vb语法基本就能上手,微软还提供了大量的学习资料,甚至在Windows95上安装一款pws的微软插件也能运行asp程序,这对早期只能做静态页面的小鸟们,是一个绝对的福音。于是第一代互联网程序员(我也是其中一员),就在这个时代成长起来了,化学反应就是真奇妙,一个asp语言带动了一个产业——大家发现asp程序如果要让全世界人看到,那就得买服务器拉一根专线(在那个年代这是天价),后来好事者把一台物理服务器,拆成不同的文件夹出售(这就是最早虚拟主机的雏形)这样广大爱好者就可以以极低的成本,把自己的网站程序部署上线。

没过多久,一个好事的程序员忽然灵光一现,浏览别人网页的时候,在用户名密码的位置,不输入用户名了,改输了一串SQL语句,不出意外的他就绕过了密码验证而进入了某个网站的后台,这就是SQL注入,也是早期黑客的雏形。可悲是这在当时此类问题并未引起广泛关注,反而黑客被渲染成电脑高手的形象,深受追捧。后来这个好事的程序员发现,他可以上传一个程序,批量的把服务器资源(尤其是同服务器大量的虚拟主机网站)copy下来,然后以极低的价格卖给当时很火爆的源码下载站。

这就形成了一个恶性循环,新入行的站长买一个虚拟主机,去源码站下载一套源码,换换页面风格就上线了,黑客一扫描发现某网站还是之前的某程序的换皮版本,不费吹灰之力,又黑了你的网站,得到了源码继续卖给别人。又有些黑客黑了你的网站,挂恶意链接,事实上这一波黑客是seo黑帽行业的黑客。有些黑客挂恶意木马,这属于盗号圈的黑客。

一个服务器被攻陷以后,黑客会像分尸一样,把各类资源卖给不同的商家。(形成了多种产业链)这就把服务器运营商坑了个半死,后来Windows2000出来,安全性大大提升,虚拟主机各个网站的文件夹也基本做到了隔离(一个网站被黑,不会殃及同服务器其他网站),这个问题才逐渐得到改善。但现在已经二十多年过去了,很多下载站仍然充斥着大量有漏洞的源码,有些源码看似很新,那不过是界面设计的新颖而已,核心程序很多都是很多年前流传下来的老程序改的。

第一代网络程序员,对SQL注入、网络安全问题不是很敏感,导致后来很长一段时间,后续很多代码都有这个问题。php语言和asp类似,都是在这个时期以这种形态出现,jsp和asp.net相对问题少一点,但仅仅是因为那个年代会Java和.net的人少而已,但同样的SQL注入问题一样存在。php那些年一直都是asp的小弟,直到Windows2003以后,微软宣布停止支持和后续开发asp引擎后,asp成了没娘的孩子,php才逐渐超过asp,由于编程风格类似(都是HTML里嵌程序)很多asp程序员转投php阵营,大约2005年以后至今php风光无二。

“php是最好的语言”这句话不管你承不承认,php的程序员基数绝对够大,因为他继承了asp很多程序员加入。【题外话】php程序员整体素质不如Java和.net(当年很多asp程序员,基本都是面向过程的思想,不知面向对象为何物,不知道类和方法为何物。)但老的php和asp程序员很多又都是多面手,即是美工又是程序员。

这就让当代前后端分工明确的Java和.net程序员望尘莫及。近五六年,网络安全作为一个独立行业崛起,加上新一代程序员接受了更完善的技能教育,比起老一代自学出身的草根程序员而言,新人活更好、做出的东西也更安全。这一切都得益于行业的进步,和一代代程序员的不懈努力。2006年有一次黑客把我服务器黑的很惨,我哭了好几个小时,都是在一次次事故中成长的。

文章TAG:围攻》攻防模式  攻防网页游戏  围攻  攻防  模式  
相关教程
猜你喜欢