- 论坛徽章:
- 39
|
1、请阐述漏洞与bug的区别?
个人觉得漏洞和bug还是有挺大区别的.漏洞不一定是bug,放过来,bug也不一定会成为漏洞.为什么这么说呢,漏洞,是被利用的程序处理异常,或一些罗辑处理,bug只是其中的一种---程序异常.很多罗辑不严谨,并不一定就是bug,当然从广义上来说,当然可以归到bug里.比如设计问题,程序是按设计来编写的,设计中的罗辑引发的漏洞,并不能算是程序的bug,要归到bug也要归到设计的bug里,这里就有了一个bug的归属问题.而bug并不一定就能成为漏洞,比如显示的bug,只是显示偏移错误,影响到视觉效果的bug,常常不能成为可以利用的bug,也就是漏洞了.
2、常见的linux rootkit对自身隐藏方法,及列出你所知道的rootkit后门?
伪装成系统命令,或系统服务是常见的手法.不容易被查出,还不敢随意处理.
linux下的rootkit后门不太清楚,windows下有发现过一些蠕虫病毒,远程控制木马利用rootkit的例子
3、端口复用的理解,以及哪些常见恶意软件会使用该技术?
我的理解就是多个进程使用同一个端口.最常见的应该是远程控制类木马,这类木马需要长期联网同服务端通信,为了伪装,会找一些可以复用端口的进程注入.
4、请简述你对sql注入的理解?
sql注入危害挺大的,这个主要是编码的时候对sql传递的参数没有检查,或检查不严导致的.常见的是查询sql,利用sql中的分隔符和注释符,原本是拼接参数成一个完整的查询语句,结果参数是被有意构造过的,拼接之后成了 多条查询,或已经完全偏离本意的查询语句了.
比如(Mysql): String sql = "select * from a where id = " + id;
本身id可能就是一个整形字符串,如果把id改成`1; show database;`如果没对id做任何检查就拼接去查询的话,结果不光查询了id=1的结构,还把当前用户可以查询的数据库全部显示出来了.危害还是及其厉害的.
5、请简述缓冲区溢出原理?
就是对内存操作没有做边界检查,引发内存违规写入的bug.这个危害也挺大的,但是要利用挺复杂的.需要对内存,汇编都要非常熟悉.
因为内存违规写入,并不一定已发程序崩溃,程序还会继续执行,如果执行到这块覆写的内存上,刚好是被精心构造好的代码快,就可以达到利用者的目的. |
|