Web安全——攻击与防护

1. 针对 Web 应用的攻击模式:

(1)主动攻击:以服务器为目标的主动攻击:SQL 注入攻击、OS 命令注入攻击,主动攻击指的是攻击者直接访问 Web 应用,把攻击代码传入的攻击模式,需要攻击者能够访问到那些资源。

(2)被动攻击:以服务器为目标的被动攻击:利用圈套策略执行攻击代码的攻击模式,攻击者不直接访问目标 Web 应用。大概流程是:攻击者诱使用户触发设置好的陷阱,陷阱触发后会发送已经注入攻击代码的 HTTP 请求,请求到达 Web 应用执行攻击代码,可能导致用户信息被窃取等等。

被动攻击模式比较典型的两种就是:XSS 跨站脚本攻击CSRF 跨站点请求伪造

2. XSS【Cross-Site Scripting】:【XSS部分参考资料:https://blog.csdn.net/b954960630/article/details/78705512】

(1)对于名称的一点小知识:为何缩写不是 CSS,而是 XSS ?这是为了避免与 层叠样式表 名称起冲突,因此叫做 XSS.【我好闲得慌,居然有空搜这种东西......】

(2)简单介绍:XSS 的漏洞成因是 Web 应用对用户提交的表单参数未经过全面的检查过滤,允许用户在提交参数中插入 JavaScript 代码,未经编码的发送到目标站点,导致在目标站点这些恶意 JavaScript 代码被用户的浏览器执行。

举个简单的例子:我们正常在访问一个网站时,URL 大概是这样子的:http://localhost/test.php?name=Sam    

我再次申明:XSS 部分转载自 https://blog.csdn.net/b954960630/article/details/78705512,我只是个搬运工,博主写的太好了...】

非正常情况是这样子:http://localhost/test.php?name=<script>alert("My name is Sam");</script>

如果后台没有对 URL 中的查询字符串做过滤处理,那么这段 JavaScript 代码就会被执行。

 (3)XSS 生效方式:

  [ 1 ] 构造 URL 式:就像刚才看到的例子一样,在 URL 中添加 JavaScript 代码,构建一个有问题的链接,将这个链接广为传播,诱导普通用户点击这个链接,从而执行攻击代码。可以进行两种非法操作,一种是窃取用户信息,另一种是代用户操作。如下图:

   [ 2 ] 发布内容式:在微博、博客、贴吧等我们都会见到留言板,正常情况下用户输入的信息都可以发布,但如果被攻击者在留言内容中写上一行:

<script>alert("Hello");</script>

  若有用户浏览此条留言,则会自动弹出:

 

   [ 3 ] 蠕虫式:这种方式传播最快,大概来讲就是攻击者发布一篇有问题的文章,在文章页面阅读过的人,会被执行恶意代码也会自动发布一篇文章,当其他人阅读后,同样自动发布一篇文章,一直进行下去,将攻击铺满整个网络。

  Eg:早在2011年新浪就曾爆出过严重的 XSS 漏洞,导致大量用户自动关注某个微博号并自动转发某条微博。(蠕虫式)它以吸引人眼球的方式,让当微博用户主动点击攻击链接。之后微博网友会立刻执行一段有害代码,造成三个结果:发布一条微博;成为攻击发起人的粉丝;向其他好友发送含同样链接地址的私信。新浪微博很快发现这个漏洞,删除了含攻击链接的微博内容,并将攻击发起人ID删除。

(4)XSS 攻击实例:窃取 Cookie、偷取用户信息、蠕虫攻击

(5)XSS 破坏方式:1. 破坏页面结构,使页面内容分布错乱  2. 破坏显示内容,可能插入单引号或多引号,与网站原脚本的引号发生错误匹配

(6)如何绕过过滤进行 XSS 攻击:

  [ 1 ] 改变 JS 代码大小写

  [ 2 ] 过滤之后代码仍是攻击代码,例如双层 script 标签

  [ 3 ] 有些服务器是对 alert 等关键字进行过滤,我们可以将其编码,绕过过滤之后通过 eval 解码成攻击代码执行

  [ 4 ] 不使用 script 标签,而是使用 img 等标签进行攻击

(7)如何防范 XSS 攻击:

  [ 1 ] http-only:防止窃取 Cookie,在设置 Cookie 时加入此值则使得在客户端无法通过 document.cookie 访问到 Cookie 字段信息。

  [ 2 ] CSP:

posted @ 2021-10-07 17:15  TwinkleG  Views(219)  Comments(0)    收藏  举报