免费教程_免费网赚教程_破解版软件-寂涯网络学习基地

当前位置: 主页 > 系统综合 > 各类编程 > 程序动态分析与软件漏洞利用(2)

程序动态分析与软件漏洞利用(2)

时间:2012-02-14 18:10来源:未知 整理:寂涯网络 点击:


污染信息越多,传播就越广,我们就需要花费更多的资源来追踪它。在fuzzing环境下, 使用污染数据来反馈程序行为,甚至服务端配置也可标记为污点(为了避免采用各种配置方 式来测试服务端软件【22】)。当从非污染源或者污染源接收到任务后,污染信息仅仅会被删 除,同时生成一攻击者不可控制的常数值。很多程序指令将会污染到数据,因此在进行程序 分析时,污染数据会增多。
上例是一个很清晰的程序执行流,因为定义值在一些独立条件下将接收到程序所使用的 污染值。当条件确定后,程序调用的执行流就很明确了,例如下面: if (x == 1) y=0;
这个在后面笔者会有所分析,对于条件语句就需要一种特殊的分析方式,分析它时一些工具 确实很有用,比如町沾8&插件。
在追踪数据时存在两种特殊情况,一种是部分污染(当非污染源并不能完全控制污染数
据时),另一种是混合污染(当来自某数据的两种不同非污染源被使用时)。总的来说,结果 还是被污染了。当一个数据域被某操作数引用时,它就“被使用” 了;而当数据被修改时, 它被“定义” 了。纯粹完成某些任务的指令是很容易追踪的,如果污染地址被用来定义其它 地址,那么这一新地址也将被污染。字符串操作在以下情况会被污染到:
參使用污染地址去计算字符串大小,例如:
E. g: a = strlen(tainted(string));
当字符串被污染后,我们就可以认定攻击者也控制了&值。
參使用污染地址去搜索特定字符,并通过设置打明标志来定义是否找到,例如: pointer = strchr(tainted(string), some_char); if (pointer) flag=l;
当字符串被污染后,我们就可以认定攻击者也部分控制了 Hag,如果攻击者控制 了其它8(»^_0^^:值也有类似效果。
当执行的指令已经使用了至少一个污染数据,那么通常都会得到一个被污染的结果,因为攻 击者起码已经部分控制了结果。这些指令可简单地使用中间语言来映射成布尔操作,并遵循以下规则: 
0r truth table:
X Y X or Y
0 0 0 
0 1 1 
1 0 1 
1 1 1 
And truth table
X Y X and Y
0 0 0 
0 1 0 
1 0 0 
1 1 1 
Xor truth table
X Y X xor Y
0 0 0 
0 1 1 
1 0 1 
1 1 0 

假设使用了一处污染数据:
參在执行(^操作的情况下,如果使用的未污染数据是1,那么我们就无法重新定义新的 操作结果,因此我们无法篡改数据结果。但如果是o的话,那么就可构造出任意值的 污染数据,也就是说操作结果被污染了。
參当执行and操作时,在另一方面,如果使用未污染数据的寄存器的值为0,那么就无法篡改结果,因此也就无法污染到其它数据。如果值为1,那么我们完全是可以控制 结果的,因此数据是可污染的。
參在操作中存在一种特殊情况,那就是当对自身进行异或操作时,若使用的是受污染的数据进行自身异或,那么得到的结果(0)是不受污染的。
通过追踪EFLAGS寄存器来判断攻击者何时篡改了数据(后面用于判断它对数据流操作的影 响度),这也不失为一种好办法。
在由町沾80插件生成的追踪分析信息中,应该多注意其中的条件分支,这可使用单步调试来追踪。WinDBG提供有当前指令的反汇编代码,我们可通过分析它们来追踪被污染的 数据。为了解决工具的限制问题,需要去分析未被原始崩溃数据所创建的条件跳转情况,这 时我们就需要仔细地去分析各类条件跳转以及标志寄存器:
參如果攻击者能够确定£?1八&3,同时有个跳转依赖于打&8,那么攻击者就可控制分支结 果(这在!61口10^&1316中会被认为unknown,因为它存在各种可能性_简单地控制 EIP并不能完全去确定其可利用性,因为控制EIP指向的内存地址也是必要的)。 Ret-into-lib技术需要控制各个参数,而ROP技术则需要多次返回到满足要求的指令 地址(gadget) o
參控制分支跳转即意味着污染£正,因为攻击者至少能够部分地控制进程的执行流。
參为了确定£正值,我们必须确定:
*跳转后的地址;
*下一条指令的地址(未发生跳转);
*打&8寄存器值(0或1);
*然后:%eip <-(下一条指令的地址)+打&8寄存器值* (|跳转后的地址-下一 条指令的地址|)。

本页地址 http://www.jybase.net/biancheng/20120214772.html

百度搜索更多

谷歌搜索更多

顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------

评价:
昵称: 验证码:点击我更换图片
推荐内容
赞助商
赞助商


关于本站免责声明视频更新google百度地图视频地图RRS订阅

如有什么问题请在本站留言,或发邮件到 hxt167#foxmail.com