黑客与攻击

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_39289876/article/details/102576706

NAND镜像

如果可以碰到计算机硬件,可以往内存接几根线,复制整个内存,复制之后,暴力尝试密码直到设备让你等待,这是你只要报复制内容覆盖内存,本质上重置了内存,就不用了等待了,可以继续尝试密码了。这个方法在iphone 5c上管用。更新设备爱有机制阻止。

缓冲区溢出

如果无法物理接触,就必须通过互联网,通过漏洞来获取某些能力或访问权限,这叫漏洞利用
一种常见漏洞利用叫缓冲区溢出,缓冲区是一种概称,指预留一块内存空间
在这里插入图片描述
在幕后,系统用缓冲区输入的值,缓冲区大小是10。两个文本缓冲区看起来像这样
在这里插入图片描述
当然操作系统记录远不止用户名和密码,所以缓冲区前后,肯定有其他数据。
当用户输入用户名和密码,这些值会复制到缓冲区,然后验证是否正确,缓冲区溢出正如名字暗示,它会溢出缓冲区
在这个·例子中若超过10个字符,会覆盖掉相邻数据,有时只会让程序崩溃
在这里插入图片描述

边界检查

攻击者可以利用这个漏洞,注入有意义新值,到程序中吧is_admin改为true,有了任意改内存的能力,黑客可以绕过系统登入。有许多办法防止缓存溢出,最简单方法是复制前先检查长度。,这叫边界检查。现代许多语言有边界检查,程序也会随机存放变量在内存的位置,比如之前假设的is_admin,这样黑客不知道该覆盖内存哪里,导致更容易让程序崩溃,而不被控制。
程序也可以在缓冲区后,留一些不用的空间,然后追踪里面值,看是否变化,如果变化,说明有攻击者。
这些不用内存空间叫金丝雀

代码注入

最常用来哦攻击数据库的网站,几乎所有大网站都用数据库
我们会用结构化查询语言,也叫SQL,一种流行的数据库API
在这里插入图片描述
服务器运行代码,检查用户是否存在,如果存在,看密码是否匹配,为了做检查,服务器会执行SQL查询代码
首先要指定从数据库查什么数据
从这个例子我们相查密码(select password)
还要指定那张表(from users)
在这个例子中,我们假设所有用户数据都存在users表里。
最后服务器不想每次都去出一个巨大密码列表包含所有密码
所以用username=“”用户名“”代表这个用户
用户值会复制到SQL查询
如何破解?
把SQL命令输入到用户名里
在这里插入图片描述
正如之前提的,分号用于分隔命令,所以第一行执行
如果用户叫whatever ,数据库将返回密码,当然我们不知道密码,所以会出错,服务器会拒绝
在这里插入图片描述
如果没有一个用户叫whatever,数据库会返回空密码或直接错误,服务器也会拒绝我们
我们关心下一条SQL命令
drop table users 意思删掉user这张表
在这里插入图片描述
解决方法,不让你输入特殊字符或分号括号

僵尸网络

如果黑客拿下很多电脑,这些电脑可以组成僵尸网络,可以用于很多目的,比如大量垃圾邮件,用别人的计算机算力和电费挖比特币,或发起拒绝服务攻击distributed denial of service(DDOS)

DDOS

僵尸网络里所有电脑发一大堆垃圾信息,堵塞服务器,迫使别人交钱消灾

猜你喜欢

转载自blog.csdn.net/weixin_39289876/article/details/102576706