第十一章、针对WEB的攻击技术
----《图解HTTP》阅读笔记
攻击目标---Web简单的HTTP协议本身并不存在安全性 问题,协议本身并不会成为被攻击的对象,应用HTTP的服务器和客户端,以及运行在服务器上的web应用才是被攻击的目标。 攻击漏洞: 1、HTTP不具备必要的安全技术,(不像远程登录使用的SSH可以构建安全等级高的服务):即使HTTP以及架设好服务器,但是在其上搭建Web应用时又需要重新自己搭载认证和回话管理功能,此时在用户自行设计重新搭载的过程中隐藏很多安全漏洞可以攻击。 2、在客户端篡改请求:web服务器在等待服务器回应时,请求经过客户端时客户端可以自由修改返回的报文,返回报文可能包含了恶意的攻击信息(通过URI查询字段、表单、HTTP首部或cookie等途径传入攻击代码),那么攻击者就会收到内部信息或管理权限。 攻击模式: 1、主动攻击:针对服务器上的资源信息,通过直接访问Web应用把攻击代码传入的攻击模式。 代表:SQL注入攻击和OS命令注入 2、被动攻击:不直接通过WEB应用发起攻击,而是利用圈套策略执行攻击代码的攻击模式。 安全对策 1、客户端的验证:不合适做安全防范对策,只是为了尽早辨识输入错误,提高UI体验。 2、Web应用端(服务器端)的认证: --输入值验证:检查是否符合系统业务逻辑的数值或检查字符编码等预防对策 --输出值转义:指从数据库、HTML、文件系统、邮件等地方输出Web应用数据之际转义输出数据。这是一项至关重要的安全对策,转义不完全会触发攻击者传入的攻击代码,损害输出对象。、 验证数据的地方:客户端(验证);——HTTP请求——Web应用端(验证){输入&处理&输出};-——HTTP响应&访问DB&访问文件系统-------------------------------------------------------------------------------------------------------------------
跨站脚本攻击XSS——通过在存在安全漏洞的Web网站注册用户的浏览器内运行非法的HTML或JavaScript进行的一种攻击 1、利用虚假输入表单骗取用户个人信息。(创建嵌入恶意URI代码的页面---欺诈网页/欺诈邮件) 2、利用脚本窃取用户的Cookie值,使用户在不知情的情况下,帮助攻击者发送恶意请求。 3、显示伪造的文章或图片
SQL注入攻击——针对Web应用使用的数据库,通过运行非法的SQL而产生的攻击。
1、非法查看或篡改数据库内的数据,例如加入"--"SQL注释掉后面的命令数据 2、规避认证 3、执行和数据库带我去业务关联的程序等 OS命令注入攻击——指通过web应用,执行非法的操作系统命令达到攻击的目的(注意:只要在能使用shell命令的地方都存在风险),OS命令注入攻击通过OS命令注入可以执行OS上安装的程序。 HTTP首部注入攻击——攻击者在HTTP首部字段内插入换行,添加任意响应首部或主体的一种攻击(被动攻击模式)BTW,向HTTP首部添加内容的攻击称为HTTP响应截断攻击。Web应用有时会把从外部接收到的数值赋给响应字段Location和Set-Cookie。 1、设置任何Cookie信息 2、定向到任意URI 3、显示任意的主体(HTTP响应截断攻击) HTTP响应截断攻击在HTTP首部字段内并排插入两个换行符字符串(%0D%0A%0D%0A)后发送,制造出一个首部和主体分割的空行来伪造主体。 邮件首部注入攻击:在Web应用的邮件发送功能中,通过向邮件首部To或Subject内任意添加非法内容来攻击,以发送广告邮件或病毒邮件。 目录遍历攻击/路径遍历攻击:通过非法截断目录路径,访问本无意公开的文件目录的一种攻击。 远程文件包含漏洞:指当部分脚本内容需要从其他文件读入时,利用外部服务器的URL充当依赖文件,脚本读取后就可以运行任意脚本的攻击。(主要是PHP存在的漏洞:PHP的include和required可以设定指定外部服务器URL作为文件名) ---------------------------设计缺陷类安全漏洞强制浏览不正确的错误消息处理开放重定向 ---------------------------会话管理疏漏类安全漏洞会话劫持会话固定攻击跨站点请求伪造 ------------------------------其他密码破解: 1、通过网络的密码试错(穷举法/字典攻击) 2、对已加密密码的破解(通过密码试错进行类推/彩虹表/拿到密钥/加密算法的漏洞) 点击劫持(透明的按钮或按键)Dos攻击/服务停止攻击/拒绝服务攻击(集中大量访问请求/安全漏洞)后门程序