暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

运维日记丨Web安全之认识跨站脚本(XSS)

新运维新数据 2022-06-18
953

各位新朋友~记得先点蓝字关注我哦~

XSS跨站脚本攻击

跨站脚本攻击是通过在网页中加入恶意代码,当访问者浏览网页时恶意代码会被执行,攻击者可利用该漏洞窃取或操纵客户会话和 cookie,用来模仿合法用户,从而使攻击者获得管理员权限,控制整个网站。

人们经常将跨站脚本攻击(Cross Site Scripting)缩写为CSS,但这会与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆。因此,有人将跨站脚本攻击缩写为XSS。

XSS注入利用示例

比较简单的理解攻击与触发情况:植入的恶意脚本→给客户端浏览器反馈数据→浏览器解析数据发现脚本→客户端浏览器执行脚本。

XSS脚本类型具有三种:反射型、Dom型、存储型(长期)

挑反射型XSS代码来讲危害(偷懒)

PHP写的代码如下:

解释下上面两个红框内容,第一个为表单内容前端显示,第二个为后端处理部分,由访问者在输入框中填写数据,点击提交后,转至后端处理,后端通过echo的方式直接将输入的内容返回到页面中。

这样会造成什么问题?实际上浏览器在接收到我们的返回文本是有解析顺序的,识别对应的脚本,一步步解析后进行输出,所以当我们输入的文本能够被解析器识别后,会作为解析后的样式返回。

例如,当你输入html的标签,他并不会返回,实际他会给你返回一个输入框,而不是纯文本返回,原因是他被浏览器当成代码解析了而不是字符串。


那么它能够做什么?可通过JS代码,来执行一些操作,获取环境信息例如cookie,或者引用远程JS代码实现复杂的脚本(做更多操作),下面通过弹窗的方式证明。

注:这里的cookie是你当前网站的凭据,代表现在登录后的用户会话信息,替换cookie可以直接用你的身份访问网站,不需要密码,应用系统就是靠这个认识你是谁。


执行输入后“daung”的一下你的cookie就弹出来,同样也可以“duang”的一下丢到黑客服务器上(看你JS咋写),通常利用最多的存储型XSS触发时好比你在门前,人家提前布好监控,看着你开门锁,记录下你的密码,然后你家门锁对他就无用了。


XSS也不仅限这种玩法,配合各种漏洞能够形成组合拳,劫持浏览器,蠕虫传播等花里胡哨攻击方式,在你打开一个网站的时候,可能背后打开了发了无数个敏感请求~,携带你的信息去互联网旅游。


解决方法

1.在cookie中设置了HttpOnly属性,那么通过JavaScript脚本将无法读取到cookie信息,这样能一定程度上防止XSS攻击,但不妨碍黑客干点别的JS操作。

2.假定所有输入都是可疑的,必须对所有输入中的script、iframe等字样进行严格的检查。这里的输入不仅仅是用户可以直接交互的输入接口,也包括HTTP请求中的cookie中的变量,HTTP请求头部中的变量等。

3.不仅验证数据的类型,还要验证其格式、长度、范围和内容。

4.过滤“<” 、“>” 将用户输入放入引号间,基本实现数据与代码隔离;过滤双引号防止用户跨越许可的标记,添加自定义标记;过滤TAB和空格,防止关键字被拆分;过滤script关键字;过滤&#,防止HTML属性绕过检查。在客户端和服务器端同时做数据的验证与过滤。

5.对输出的数据也要检查,数据库里的值有可能会在一个大网站的多处都有输出,即使在输入做了编码等操作,在各处的输出点时也要进行安全检查。


美创运维中心数据库服务团队拥有Oracle ACE 1人、OCM 10余人、数十名Oracle OCP、MySQL OCP、红帽RHCA、中间件weblogic、tuxedo认证、达梦工程师 ,著有《Oracle DBA实战攻略》,《Oracle数据库性能优化方法和最佳实践》,《Oracle内核技术揭秘》等多本数据运维优化书籍。目前运维各类数据库合计2000余套,精通Oracle、MySQL、SQLServer、DB2、PostgreSQL、达梦等主流商业和开源数据库。并成为首批国内达梦战略合作伙伴之一,拥有海量经验和完善的人员培养体系。并同时提供超融合,私有云整体解决方案。





文章转载自新运维新数据,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论