因输出值转义不完全引发的安全漏洞
1. 跨站脚本攻击(XSS):指通过存在安全漏洞的Web网站注册用户的浏览器内运行非法的HTML标签或JavaScript进行的一种攻击。
- 在动态生成HTML出发生
例如:在填写表单时通过写入HTML标签进行攻击
正常情况:
跨站脚本攻击:
- 假如换成script标签则会执行攻击者事先准备好的攻击代码:
正常情况下的URL:
攻击者植入事先准备好的恶意URL,引诱用户点击:
两者的代码区别:
↓↓↓↓↓
攻击者同样也可以使用这种方式获取用户的Cookie信息。
2.SQL注入攻击:是指针对Web应用使用的数据库,通过运行非法的SQL而产生的攻击。
可能会造成的影响:
- 非法查看或篡改数据库内的数据
- 规避认证
- 执行和数据库服务器业务关联的程序
攻击案例:
服务器将URL的查询参数q=上野宣这个值传入到SQL语句中:
SELECT * FROM bookTbl WHERE author='上野宣' and flag=1;
即将满足作者名为上野宣和flag为1的双重条件的数据取出。
SQL注入攻击的操作案例:
则构成的SQL语句为:
SELECT * FROM bookTbl WHERE author='上野宣'--' and flag=1;
即–'后面的SQL语句都被注释了,成为查询只要作者是上野宣的所有数据
使得攻击者可以非法查看本不应显示的数据。
3.OS命令注入攻击:通过Web应用,执行非法的操作系统命令达到攻击的目的。
攻击案例:
4.HTTP首部注入攻击:指攻击者通过在响应首部字段内插入换行,添加响应首部或主体的一种攻击。
可能造成的影响:
- 设置任何Cookie信息
- 重定向至任意URL
- 显示任意的主体(HTTP响应截断攻击)
攻击案例:
攻击者的攻击操作:
因为%0D%0A在经过解析后会变成换行符,因此HTTP首部变成了:
此时首部多了Set-Cookie字段,改变了Cookie信息。
攻击者也可以插入两个%0D%0A并排插入字符串后发送,即可显示伪造的主题,达到攻击目的。这就是HTTP响应截断攻击。
HTTP报文首部与主体之间有分隔的空行,而两个%0D%0A即可达到这个效果。
5.邮件首部注入攻击
目录遍历攻击:指对本无意公开的文件目录,通过非法截断器目录路径后,达成访问目的的一种攻击。
攻击案例:
因会话管理疏忽引起的安全漏洞
1.会话劫持
案例:攻击者通过XSS攻击,利用JavaScript脚本获取用户的Cookie信息和用户的会话ID,然后攻击者将会话ID设置到自己浏览器的Cookie中,从而伪装成用户进行访问网站。
2.会话固定攻击
案例:攻击者事先访问网站登录页面,获取未认证的会话ID,然后将获取的未认证会话ID构造陷阱URL,诱导用户前往认证,用户认证成功后,攻击者便可以使用该会话ID对网站进行访问。
3.跨站点请求伪造(CSRF):指攻击者通过设置好的陷阱,强制对已完成认证的用户进行非预期的个人信息或设定信息等某些状态更新。
其他攻击:
点击劫持:通过在页面上覆盖透明的按钮或链接,用户在点击页面时即会访问链接内容。
DOS攻击:一种让运行中的服务呈停止状态的攻击。
攻击方式:
- 集中利用访问请求造成资源过载,资源用尽的同时,实际上服务也就呈停止状态。
- 通过攻击安全漏洞使服务停止。