宝哥软件园

XSS网络安全攻防综述

编辑:宝哥软件园 来源:互联网 时间:2021-08-28

网络安全的XSS攻击与防御

1.XSS的定义

跨站点脚本,缩写为XSS。恶意攻击者在网页中插入恶意的Script代码,当用户浏览网页时,嵌入在网页中的Script代码就会被执行,从而达到恶意攻击用户的目的。

2.XSS原则

攻击者在易受攻击的服务器上发起XSS攻击(注入JS代码)。引诱受害者打开被攻击服务器的URL。受害者在网页浏览器中打开网址,恶意脚本被执行。3.XSS的进攻方式

(1)反射类型:发送请求时,URL中出现XSS代码,作为输入提交给服务器,服务器解析后响应。XSS连同响应内容一起返回给浏览器,最后浏览器解析并执行XSS代码。这个过程就像一次发射,所以被称为反射式XSS。

(2):存储XSS和反射XSS的区别在于,存储XSS提交的代码将存储在服务器端(数据库、内存、文件系统等)。),所以下次请求目标页面时,不需要提交XSS代码。

4.XSS的防御措施

(1)编码:对用户输入的数据进行HTML实体编码

(2)过滤:移除用户上传的DOM属性,如onerror,移除用户上传的样式节点、脚本节点、iframe节点。

(3)校正:避免直接对HTML Entity进行编码,使用DOM Prase转换来校正不匹配的DOM标签。

5.应用示例

构建节点应用程序并演示反射XSS攻击。(在Linux操作系统中)

这个例子的代码地址:https://github.com/Xganying/Web-XSS(XSS _ test1)

(1)创建一个新文件夹xss: mkdir xss_test1

(2)将目录切换到此文件夹:cd xss

(3)安装express: express -e

(4)构建应用程序依赖关系:npm安装

(5)打开构建的节点应用程序,获取目录:

(6)打开节点服务:npm启动

(7)在浏览器地址栏中输入:localhost:3000获取:

(8)加入xss

修改xss_test1文件的路由器目录下的index.js文件:

在xss_test1文件的视图目录中修改index.ejs文件:

(9)重启节点服务:npm启动并打开浏览器

A.输入: localhost:3000/?xss=你好

运行结果如下:

B.输入:localhost:3000/?XSS=img src=' http : null ' one rror=' alert(1)'

运行结果如下:

说明:如果代码中没有RES . set(' X-XSS-保护',0);你会发现没有弹出框,因为浏览器自动设置了拦截XSS,所以不会执行onerror事件,并且增加了:res.set('X-XSS-Protection ',0);子弹盒将出现,然后xss攻击将完成。

C.输入:localhost:3000/?XSS=p onclick=' alert(% point me %)' point me/p

运行结果如下:

注意:这种攻击是篡改页面内容、破坏页面结构、引诱用户点击某些钓鱼网站的常用手段。

D.输入:localhost:3000/?XSS=iframe src=' http://Baidu.com/t . html '/iframe

运行结果如下:

注意:这种攻击常用于广告投放。

综上所述,img标签被自动触发攻击,P标签被引诱攻击,iframe被广告植入攻击。

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

更多资讯
游戏推荐
更多+