4种软件漏洞
漏洞从大的方面分为以下4种
- DOS攻击
也成为拒绝服务攻击,是指妨碍软件正常运行(服务的执行)的网络攻击。能够引起软件异常终止的程序错误,可以说全部都是引发DOS攻击的安全性程序错误。
比如说一种,大量的Web访问,导致流量太大,处理来不及。从众多Web浏览器同事,反复进行重新载入这种单纯攻击(重新载入键是F5,所以也称为F5攻击),使服务器负荷变得过重。
- 信息泄露
是指不愿公开的信息被公开了,比如用户名被公开,或者密码被看到等问题
- 权限夺取
是指夺取软件控制权,随心所欲的操纵计算机
- 权限升格
是指一般用户权限的入侵者,获取了管理者权限
安全问题的根源
安全问题的3种情况
- 恶意软件
- setuid/setgid
- 服务器
多样化的攻击手段
代表性的攻击手段有以下几种
- 缓冲区溢出
- 整数溢出
- 跨站点脚本攻击(XSS)
- SQL注入
- 跨站点伪造请求(CSRF)
缓冲区溢出
指向固定长的缓冲区(buffer)输入了比假定的长度要长很多的数据,使程序异常终止。或者是更改对战的跳转地址,劫持程序。
整数溢出
与缓冲区溢出相似,但是更难被发现。
因为在C语言中整数是有范围的如果超过了限制的范围,如果只有32位那么只会有9mb的空间。这样写入的数据超过了所分配的空间,最终会导致程序异常终止,发生不测
SQL注入
当我们要输入sql语句的value值的时候可以在后面后面添加多余造成杀伤性的sql语句
INSERT INTO 表名
("属性1", "名",......)
VALUES ("值1", "值2", .....)
INSERT INTO 表名
("姓", "名",......)
VALUES ("Smith", "Robert"; DROP TABLE Students;--')
本来Robert开始直到“--”为止都应当是名字,但名字中含有“’”,INSERT语句到此结束,分号之后接着又执行了DROP TABLE语句(数据库删除),“--”是SQL中注释的开始剩下的“’)”部分作为注释而被忽略。
Shell注入
与SQL注入原理相同
system("ls #{input}")
如果input的值是data; rm -rf
那么就可能整个丢失。
跨站点脚本攻击
比如说我们有一个评论的系统如果一个用户输入遗传js代码一直跳出提示框那么可以说这个网站已经收到了攻击因为他已经不能正常工作
跨站点伪造请求
比如用户获取站点A中的某一页,该页有不正当的连接,如果点击了这个有问题的连接那么会获取到恶意站点B的某一页,站点B虽然返回了HTML但其中含有想<img>这种能够自动装在的标签,标签里内嵌有能够攻击站点A的URL。
网友评论