XSS网络安全攻防综述
网络安全的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被广告植入攻击。
以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。
版权声明:XSS网络安全攻防综述是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。