黑客渗透测试笔记之溢出攻击

溢出攻击:

什么是溢出攻击?
溢出攻击,就是意外的数据写入。
溢出分类:
按照溢出特点,分为本机溢出和远程溢出。常见溢出攻击:sql溢出、iis溢出。两种溢出的基本原理:内存溢出和缓冲区溢出。

0x01:

内存溢出:
内存溢出为啥会发生在c/c++?
1.语言缺陷:这两种语言不会检查数组的边界。
2.c++开发出来的程序非常的接近内核,弄够直接访问内存和寄存器。
我们举个列子:
char sy[32];
char hh[10];
sy=[“sds”,“eeff”,“weew”];
strcpy(hh,sy)
我们可以看出sy数组的长度是32,sy这个参数他并不在乎数据的来源,以及数据的可靠性。如果数据来自一个文件等其他不可靠的数据时。数据的大小超过了32个长度。呢么就会导致内存缓冲区溢出。溢出的字符就会代替内存缓冲区后面的数据。
缓冲区溢出:
缓冲区溢出是用户为程序运行时候在计算机中申请的一段连续的内容,他保存了给定类型的数据。
溢出攻击的前提是机器上没有打过补丁。(溢出程序所在的目录:c:\windows\temp)。

0x02:

远程溢出:
在了解远程溢出之前我们先了解一下RPC:
即远程过程调用协议的缩写,它是一种进程间通信(ipc)方法,客户端和服务器可使用这种方法进行相互之间的通信。简单的说,rpc可被程序(通常是客户端计算机上的程序)用来执行服务器上的程序,并且rpc服务设计到两个重要的端口,那就是135和445端口。
如果目标没有开放这两个端口,并且存在防火墙拦截的话,溢出攻击是不会成功的。

猜你喜欢

转载自blog.csdn.net/weixin_43803070/article/details/89960909
今日推荐