HTTP请求报文内加载URL查询字段或表单、HTTP首部、Cookie等将攻击传入;
若Web应用存在安全漏洞,那么内部信息就会遭到窃取,或被攻击者拿到管理权限;
对Web应用的攻击模式:
- 主动攻击;
- 被动攻击;
【主动攻击】:指攻击者通过直接访问Web应用,把攻击代码传入的攻击模式;
直接针对服务器上的资源进行攻击;
有SQL注入攻击和OS命令注入攻击;
【被动攻击】:利用圈套策略执行攻击代码的攻击模式;
攻击者不直接直接对目标Web应用访问发起攻击;
利用被动攻击,可对原本从互联网无法直接访问的企业内网的攻击,只要用户踏入攻击者设好的陷阱,
在用户能够访问到的网络范围内,企业内网也会受到攻击;
Web应用的安全对策:
- 客户端的验证;
- Web应用端的验证:
输入值验证:检查是否符合系统业务逻辑的数值或检查字符编码等预防对策;
输出值转义;
多数情况下采用JS在客户端验证数据,保留客户端验证只是为了尽早地辨识输入错误,起到提高UI体验的作用;
通过存在安全漏洞的Web网站注册用户的浏览器内运行非法的HTML标签或JS进行的一种攻击;
【攻击】:
- 利用虚假输入表单骗取用户个人信息;
- 利用脚本窃取用户的Cookie值,被害者在不知情的情况下,帮助攻击者发送恶意请求;
- 显示伪造的文章或图片;
跨站脚本攻击案例
在动态生成HTML处发生,浏览器把用户输入的解析生成HTML标签,然后显示删除线;
【XSS时攻击者利用预先设置的陷阱触发的被动攻击】
在网站的地址栏中,隐藏着可执行跨站脚本攻击的漏洞;
如:隐藏值入实先准备号的欺诈邮件中或Web页面内,诱使用户去点击该URL;
同样能够以跨站脚本的攻击方式,窃取用户的Cookie信息;
在脚本中,指定以下编码;
当访问到Web应用所处域名下的Cookie信息,即可将该信息发送到攻击者的Web网站;
是指针Web应用使用的数据库,通过运行非法的SQL而产生的攻击;
【造成以下影响】:
- 非法查看或篡改数据库内的数据;
- 规避认证;
- 执行和数据库服务器业务关联的程序等;
SQL注入攻击破坏SQL语句结构的案例
攻击者将SQL语句改变成开发者意想不到的形式以达到破坏结构的攻击;
通过Web应用,执行非法的操作系统命令达到攻击的目的;
从Web应用中通过调用Shell来调用操作系统命令;
程序open会调用sendmail到$adr的值中;攻击者将指定以下值作为邮件地址;
当用户接收到后命令将被组合成;
其中的分号会被解析为分隔多个执行命令的标记;将会把/passwd内的文件发送到该邮件;
通过在响应首部字段内插入换行,添加任意响应首部或主体的一种攻击;
【HTTP响应截断攻击】:向首部主体内添加内容的攻击;
【该攻击的影响】:
- 设置任何Cookie;
- 重定向至任意URL;
- 显示任意的主体;
该set-Cookie已生效,故攻击者可指定修改任意的Cookie信息,通过和会话固定攻击组合;
HTTP响应截断内容
即要%0D%0A%0D%0A并排插入字符串后发送,以此来显示伪造主体;
利用该攻击,已触发陷阱的用户浏览器会显示伪造的Web页面,在让用户输入自己的个人信息等,可到达和跨站脚本攻击相同的下效果;
指Web应用中的邮件发送功能,攻击者通过向邮件首部To或Subject内任意添加非法内容发起的攻击;
是指对本无意公开的文件目录,通过非法截断其目录路径后,达成访问目的的一种攻击;
指当部分脚本内容需要从其他文件读入时,攻击者利用指定外部服务器的URL充当依赖文件,脚本读取后,就可运行任意脚本;
主要是PHP;
【造成影响】:
- 泄漏客户的个人信息等;
- 泄露原本需要具有访问权限的用户才可查阅的信息内容;
- 泄露未外连到外界的文件;
【主要错误信息】:
- Web应用抛出的错误消息;
- 数据库等系统抛出的错误消息;
是一种指定的任意URI作重定向跳转的功能;
会话管理用来管理用户状态的必备功能,若所有疏忽,将会导致用户的认证状态被窃取等后果
指攻击者通过某种手段拿到了用户的会话ID,并非法使用此会话ID伪装成用户,达到攻击的目的;
【获取会话ID的途径】:
- 通过非正规的生成方法推测会话ID;
- 通过窃听或XSS攻击盗取会话ID;
- 通过会话固定攻击强行获取会话ID;
对以窃取目标会话ID为主动攻击手段的会话劫持而言,会话固定攻击攻击会强制用户使用攻击者指定的会话ID,属于被动攻击;
攻击者准备陷阱,先访问Web网站拿到会话ID,但该ID在服务器上仍是为认证的;攻击者设置好强制用户使用该会话ID的陷阱,
并等待用户拿取去认证,一旦用户触发并完成认证,该ID在服务器上的状态变为已认证,会被记录;
故攻击者作为该用户的身份顺利登录网站;
【跨站点请求伪造的影响】:
- 利用已通过认证的用户权限更新设定信息等;
- 利用已通过认证的用户权限购买商品;
- 利用已通过认证的用户权限在留言板上发表言论;
案例
攻击者算出密码,突破认证;
【破解方法】:
- 通过网络的密码试错;
- 对已加密密码的破解(指攻击者入侵系统,已获得加密或散列处理的密码数据的情况);
通过网络进行密码试错
【密码尝试】:
- 穿举法:
用所有可行的候选密码对目标的密码系统试错;
- 字典攻击:
指利用事先收集好的候选密码(经过各种组合方式后存入字典),枚举字典中的密码,尝试通过认证的一种攻击手法;
Web保持密码时,一般不会直接以明文的方式保存,通过列函数做散列处理或加salt的手段对要保存的密码本身加密;
【加密的数据导出明文的方法】:
- 通过穷举法·字典攻击进行类推;
- 彩虹表;
- 拿到密钥;
- 加密算法的漏洞;
彩虹表
由明文密码及与之对应的散列值构造的一张数据库白表,是一种通过事先制作庞大的彩虹表;
拿到密钥
加密算法的漏洞
是指利用透明的按钮或链接做成陷阱,覆盖在Web页面之上。然后诱使用户在不知情的情况下,点击那个链接访问内容的一种攻击手段。又称为界面伪装;
是一种让运行中的服务呈停止状态的攻击。DoS攻击的对象不仅限于Web 网站,还包括网络设备及服务器等;
【攻击方式】:
- 集中利用访问请求造成资源过载,资源用尽的同时,实际上服务也就呈停止状态;
- 通过攻击安全漏洞使服务停止;
是指开发设置的隐藏入口,可不按正常步骤使用受限功能,利用后门程序就能够使用原本受限制的功能;
【类型】:
- 开发阶段作为Debug调用的后门程序;
- 开发者为了自身利益植入的后门程序;
- 攻击者通过某种方法设置的后门程序