69魔方寸星位套装:VB程序漏洞

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 17:32:46
我用的VB 6.0,早就听说了程序都会有Bug有漏洞什么的,但是我用VB做了一些小程序,像自己找找漏洞,可不知道如何找啊?它究竟是什么?如何找到呢?一些漏洞利用,都是什么概念呢?谢谢

一般我们写的一些小程序我们大可可以放心,我们担心漏洞的问题主要是

关注我们的程序是否会遭到破坏,我们知道我们写的东西一般是依附在一定的

操作系统的,而公布出来的漏洞主要是针对操作系统或者是和系统一起

捆绑的应用程序,或者一些大的常用的一些行业软件,漏洞的发现很大程度

上是一些专业安全公司的高级人员,他们可能会首先分析一些协议,看看会

不会发现协议上的一些漏洞,还有就是一些代码溢出的漏洞。

不过这些都是要花费大量的时间的。具体你可以到百度上面进行查择相关主题

如何发现程序的安全漏洞 !!

如果一个程序有错误,并且只在某些特殊的情况下面出现,它并不是什么大问题。通常,你能够避开这些特殊的情况,使得程序中的错误故障不会发生危害。你甚至可以按照你的意愿,在你的程序中加入这些小小的“臭虫”。
但是,有时有些程序处于安全界限的边缘位置。他们从另外的程序作为输入,但不是按照程序本来的存取方法。
我们常见的一些例子:你从的邮件阅读器读取任何人给你发的邮件,然后显示在你的显示器上,而它们本不应当这样做的。任何被接在因特网上的计算机的TCP/IP栈都从因特网上的获得任何人的输入信息,并且能够直接存取你的计算机,而你的网上邻居们确不能这样。
任何具有这种功能的程序都必须小心对待。如果在其中有任何的小错误,它就能在允许任何人-未被授权的人做任何的事情。具有这种特性的小“臭虫”被叫做“漏洞”或者更正式地被叫做“弱点”。

这里有一些漏洞的共同特点。

心理学上问题

当你写软件的正常部分的时候,如果用户的*作是正确的,那你的目的是完成这件事。当你写软件的安全敏感部分的时候,你一定要使得任何没有被信任的用户都不可能完成*作。这意味着你的程序的很大部分必须在很多情况下功能正常。

编制加密和实时程序的程序员精于此道。而最其程序员则由于他们的通常的工作习惯使得他们的于使他们的软件从未考虑安全的因素,换而言之,他们的软件是不安全的。

变换角色漏洞

很多漏洞是从不同的运行着的程序中发现的。有时是一个极小的错误或者及其普通的错误也会造成安全漏洞。

例如,假设你有本来打算让你在打印你的文档之前想通过PostScript解释器预览它。这个解释器不是安全敏感的程序;如果你不用它,它一点也不会成为你的麻烦。但是一旦你用它来处理从别人那里得到的文件,而那个人你并不知道也不值得信任。这样你就可能招致很多麻烦。他人可以向你发送能删除你所有文件或者复制你所有文件到他人可以得到的地方的文档。

这是大部分Unix TCP/IP栈的脆弱性的根源-它是在网络上的每个人都值得信任的基础上开发的,而被应用在这个并不如当初所想象安全的环境中。

这也是Sendmail所发生的问题的根源。直到它通过审查,它一直是很多是漏洞的根源。

再更进一步讲,当函数在合理的范围内使用时是安全的,如果不这样的话,他们将造成无法想象的灾难。

一个最好的例子就是gets()。如果你在你控制输入使用gets()函数,而你正好输入比你预定输入大得多的缓冲区,这样,你就达到了你的目的。对付这个得最好的补丁就是不要做类似这样的事或者设定比原先大的多的缓冲区,然后重新编译。

但是,当数据是来自非信任的数据源的时候,gets()能使缓冲器溢出,从而使程序能做任何事情。崩溃是最普通的结果,但是,你通常能地精巧地安排使得数据能象代码一样执行。

这就是它所带给我们的...

缓冲区溢出漏洞

漏洞也就是通常说的BUG,他不是天生具有的,是由于在编写代码时,设计人员考虑问题不全面而导致逻辑混乱,以至于产生意料之外的错误。

举个例子,现在数据库里有一张表,要你写个程序去向表中添加一条记录。
主键是不可被修改的,所以这个时候如果你没留意主键重复问题的话,系统会抛出一个错误,这个错误也就是我们通常说的BUG,因为你没有自己去捕获并处理他,而是有系统代替你去做这件事。

世上本无BUG,BUG是设计人员设计不合理的客观体现。越大的程序BUG越多,越小的也就越少,比如一个HELLO WORLD,你要出个BUG还真不容易。-