美文网首页
Web的攻击技术

Web的攻击技术

作者: 大唐雷恋 | 来源:发表于2019-03-16 10:45 被阅读0次

针对Web的攻击技术:

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

在 Web 应用中,从浏览器那接收到的 HTTP 请求的全部内容,都可以在客户端自由地变更、篡改。所以 Web 应用可能会接收到与预期数据不相同的内容。

在 HTTP 请求报文内加载攻击代码,就能发起对 Web 应用的攻击。通过 URL 查询字段或表单、HTTP 首部、Cookie 等途径把攻击代码传入,若这时 Web 应用存在安全漏洞,那内部信息就会遭到窃取,或被攻击者拿到管理权限。

针对Web应用的攻击模式:

主动攻击/被动攻击

主动攻击:

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

主动攻击模式里具有代表性的攻击是 SQL 注入攻击和 OS 命令注入攻击。

被动攻击:

被动攻击(passive attack)是指利用圈套策略执行攻击代码的攻击模式。在被动攻击过程中,攻击者不直接对目标 Web 应用访问发起攻击。

被动攻击通常的攻击模式如下所示。

步骤 1: 攻击者诱使用户触发已设置好的陷阱,而陷阱会启动发送已嵌入攻击代码的 HTTP 请求。

步骤 2: 当用户不知不觉中招之后,用户的浏览器或邮件客户端就会触发这个陷阱。

步骤 3: 中招后的用户浏览器会把含有攻击代码的 HTTP 请求发送给作为攻击目标的 Web 应用,运行攻击代码。

步骤 4: 执行完攻击代码,存在安全漏洞的 Web 应用会成为攻击者的跳板,可能导致用户所持的 Cookie 等个人信息被窃取,登录状态中的用户权限遭恶意滥用等后果。

被动攻击模式中具有代表性的攻击是跨站脚本攻击跨站点请求伪造

利用被动攻击,可发起对原本从互联网上无法直接访问的企业内网等网络的攻击。只要用户踏入攻击者预先设好的陷阱,在用户能够访问到的网络范围内,即使是企业内网也同样会受到攻击。

因输出值转义不完全应发的安全漏洞:

实施Web应用的安全对策可大致分为两个部分:

客户端的验证

web应用端(服务器端)的验证:输入值验证,输出值转义

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

跨站脚本攻击有可能造成以下影响:

利用虚假输入表单骗取用户个人信息。

利用脚本窃取用户的 Cookie 值,被害者在不知情的情况下,

帮助攻击者发送恶意请求。

显示伪造的文章或图片。

跨站脚本攻击案例

在动态生成 HTML 处发生:

对用户 Cookie 的窃取攻击:

在存在可跨站脚本攻击安全漏洞的 Web 应用上执行上面这段JavaScript 程序,即可访问到该 Web 应用所处域名下的 Cookie 信息。然 后这些信息会发送至攻击者的 Web 网站(http://hackr.jp/),记录在他的登录日志中。结果,攻击者就这样窃取到用户的 Cookie 信息了。

再比如:

https://www.cnblogs.com/dolphinX/p/3391351.html

SQL注入攻击(SQL Injection)是指针对 Web 应用使用的数据库,通过运行非法的 SQL 而产生的攻击。该安全隐患有可能引发极大的威胁,有时会直接导致个人信息及机密信息的泄露。

SQL 注入攻击有可能会造成以下等影响:

非法查看或篡改数据库内的数据

规避认证

执行和数据库服务器业务关联的程序等

sql注入参考样例:https://www.jianshu.com/p/078df7a35671

select * from users where username='123' and password='123'

输入用户名和密码都为:123‘ or 1=1 #

select * from users where username='123' or 1=1 #' and password='123' or 1=1 #'

不要使用拼接来使用动态sql,要使用参数化查询。

注意mybatis中的#和$,

一句话:能用#就不用$,实在万不得已要用了,自己处理sql注入问题。

预编译    变量替换  列名,表名

参考链接:

https://blog.csdn.net/attack_breast/article/details/88039493

https://www.jianshu.com/p/0a70f957c750

https://www.cnblogs.com/mmzs/p/8398405.html

OS命令注入攻击(OS Command Injection)是指通过 Web 应用,执行非法的操作系统命令达到攻击的目的。只要在能调用 Shell 函数的地方就有存在被攻击的风险。

nodejs样例:

vscode写了例子。

https://imnerd.org/web-security-vulnerability-os-command-injection.html

java样例:

https://blog.csdn.net/Hollake/article/details/90633630

怎么防止:白名单,对入参进行各种分析,防止恶意攻击。

HTTP首部注入攻击(HTTP Header Injection)是指攻击者通过在响应首部字段内插入换行,添加任意响应首部或主体的一种攻击。属于被动攻击模式。向首部主体内添加内容的攻击称为 HTTP 响应截断攻击(HTTPResponse Splitting Attack)。

HTTP 首部注入攻击有可能会造成以下一些影响:

设置任何 Cookie 信息

重定向至任意 URL

显示任意的主体(HTTP 响应截断攻击)

HTTP 首部注入攻击案例:

保存用户访问信息时可能遭受到攻击: https://blog.csdn.net/wangyangzhizhou/article/details/51656846

各种获取到的参数保存前都要想下有没有被攻击的可能,是否需要处理。

目录遍历(Directory Traversal)攻击是指对本无意公开的文件目录,通过非法截断其目录路径后,达成访问目的的一种攻击。这种攻击有时也称为路径遍历(Path Traversal)攻击。

https://blog.csdn.net/yuhk231/article/details/54988327

远程命令执行(RCE):

https://www.jianshu.com/p/16f4a473940a

因设置或设计上的缺陷引发的安全漏洞:

强制浏览(Forced Browsing):

定义:强制浏览安全漏洞是指,从安置在web服务器的公开目录下的文件中,浏览那些原本非自愿公开的文件。

这个感觉和目录遍历有点像。

不正确的错误消息处理:

不正确的错误消息处理(Error Handling Vulnerability)的安全漏洞是指,Web应用的错误消息内保安队攻击者有用的信息。与Web应用有关的主要错误信息如下所示:

Web应用抛出的错误消息

数据库等系统抛出的错误消息

开放重定向:

https://www.cnblogs.com/Erik_Xu/p/5497479.html?locationNum=15&fps=1

因会话管理疏忽引发的安全漏洞:

会话管理是用来管理用户状态的必备功能,但如果在会话管理上有所疏忽,就会导致用户的认证状态被窃取。

会话劫持(Session Hijack):

会话劫持是指攻击者通过某种手段拿到了用户的会话ID,并非法使用此会话ID伪装成用户,达到供给的目的。

会话固定攻击(Session Fixation):

对以窃取目标会话ID为主动供给手段的会话劫持而言,会话固定攻击会强制用户使用攻击者指定的会话ID,属于被动攻击

跨站点请求伪造:

防止跨站请求伪造:

expressjs有提供相应的中间件(csurf):https://blog.csdn.net/prufeng/article/details/93316395

asp.net mvc中是通过,在razor引擎中添加:@Html.AntiForgeryToken(),同时,在后端请求的对应action方法上增加[ValidateAntiForgeryToken]注解来实现。本质上就是核对生成在cookie中的token和请求页面的token是否一致。

https://www.cnblogs.com/yechangzhong-826217795/p/7867611.html

java中:

自己写拦截器。

有spring security组件可以防止csrf攻击。

https://www.cnblogs.com/liuroy/p/7366859.html

大部分情况下,跨站请求伪造都是基于form提交的,但现在,很多时候我们是基于ajax提交的,这种情况下,再去验证cookie和表单中的token是否一致就不行了。需要使用http头中自定义token来解决:

https://www.cnblogs.com/hutuzhu/p/5919400.html

其他安全漏洞:

密码破解(Paasword Cracking):

密码破解攻击即算出密码,突破认证。攻击不仅限于web应用,还包括其他的系统(如FTP,SSH等)。

密码破解有以下两种手段:

通过网络的密码试错(穷举法,字典攻击)

对已加密的密码进行破解(穷举法、字典供给    彩虹表  拿到密钥    加密算法的漏洞)

彩虹表(Rainbow Table)是由明文密码以及相对应的散列值构成的一张数据库表,是一种事先制作的庞大的彩虹表,可在字典、穷举等算法的破解过程中缩短消耗时间的技巧,从彩虹表中搜索散列值就可以找到对应的明文密钥。

参考链接https://freerainbowtables.com/

点击劫持:

https://blog.csdn.net/qq_32523587/article/details/79613768

DoS 攻击(Denial of service attack):

Dos攻击是一种让运行的服务呈停止状态的攻击,有时也叫服务停止攻击或拒绝服务攻击。DoS攻击的对象不仅仅限于web网站,网络设备,服务器等都可以成为攻击对象。

DDoS攻击(Distributed Denial of Service attack)。DDoS攻击经常利用那些防御能力弱,易感染病毒的计算机作为攻击者的攻击跳板。

后门程序:

一个开发埋后门,每年修bug赚维护费,最后坐牢的例子。

相关文章

  • 典型网络攻击技术概述

    典型的网络攻击技术主要有:口令攻击技术、Web攻击技术、恶意代码攻击技术、漏洞挖掘与利用技术、拒绝服务攻击技术、网...

  • Web应用程序攻击

    web攻击技术:SQL技术(脚本注入攻击)、XSS攻击(跨站脚本攻击)、上传漏洞(文件上传) 网站结构:登录页面 ...

  • 「 图解HTTP 」 读书笔记 第 十一 章

    Web 的攻击技术 1. 针对 Web 的攻击技术 简单的 HTTP 协议本身并不存在安全性问题。应用 HTTP ...

  • Web 攻击技术

    在 Web 应用中,从浏览器那接收到的 HTTP 请求的全部内容,都可以在客户端自由地变更、篡改。所以 Web 应...

  • web的攻击技术

    嗯......→_→基本为《图解http》笔记 导言: 简单的HTTP协议本身并不存在安全性问题,因此协议本身几乎...

  • Web的攻击技术

    针对Web的攻击技术   简单的HTTP协议本身并不存在安全性问题,因此协议本身几乎不会成为攻击的对象。应用HTT...

  • Web的攻击技术

    针对Web的攻击技术: 简单的 HTTP 协议本身并不存在安全性问题,因此协议本身几乎不会成为攻击的对象。应用 H...

  • web的攻击技术

    因输出值转义不完全引发的安全漏洞 跨站脚本攻击(Cross-Site Scripting ,XSS) 是指通过存在...

  • 图解 HTTP

    常见 Web 的攻击技术 互联网上的攻击大都将 Web 站点作为目标。常见的攻击手段有哪些,以及攻击会造成怎样的影...

  • web前端攻击技术与防范——XSS、CSRF、网络劫持、控制台注

    web攻击技术 我了解到的web安全方面的一些攻击有: XSS攻击CSRF攻击网络劫持攻击控制台注入代码钓鱼 XS...

网友评论

      本文标题:Web的攻击技术

      本文链接:https://www.haomeiwen.com/subject/lesjmqtx.html