信息安全意义上的0Day
信息安全意义上的0Day是指在系统商在知晓并发布相关补丁前就被掌握或者公开的漏洞信息。
缓冲区溢出原理
通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,造成程序崩溃或使程序转而执行其它指令,以达到攻击的目的。造成缓冲区溢出的原因是程序中没有仔细检查用户输入的参数。
下面通过一个示例来详细看看什么是缓冲区溢出。程序的缓冲区就像一个个格子,每个格子中存放不同的东西,有的是命令,有的是数据,当程序需要接收用户数据,程序预先为之分配了4个格子(下图1中黄色的0~3号格子)。按照程序设计,就是要求用户输入的数据不超过4个。而用户在输入数据时,假设输入了16个数据,而且程序也没有对用户输入数据的多少进行检查,就往预先分配的格子中存放,这样不仅4个分配的格子被使用了,其后相邻的12个格子中的内容都被新数据覆盖了。这样原来12个格子中的内容就丢失了。这时就出现了缓冲区(0~3号格子)溢出了。
当然,随便往缓冲区中填东西造成它溢出一般只会出现“分段错误”(Segmentation fault),而不能达到攻击的目的。最常见的手段是通过制造缓冲区溢出使程序运行一个用户shell,再通过shell执行其它命令。如果该程序有root或者suid执行权限的话,攻击者就获得了一个有root权限的shell,可以对系统进行任意操作了。
Cookie欺骗
修改cookie的值