web安全(xss/csrf)简单攻击原理和防御方案(实战篇)

2021-04-2209:06:16WEB安全防护Comments2,244 views字数 1114阅读模式

项目代码如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

app: 正常的网站
hack:模拟黑客攻击的网站
使用技术: node+express+react+mysql文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

项目介绍

1.代码目录

web安全(xss/csrf)简单攻击原理和防御方案(实战篇)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

2. 建立数据库

web安全(xss/csrf)简单攻击原理和防御方案(实战篇)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

node app/mysql.js 先执行这个文件创建表和数据文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

web安全(xss/csrf)简单攻击原理和防御方案(实战篇)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

如图所示

web安全(xss/csrf)简单攻击原理和防御方案(实战篇)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

一、XSS(Cross-Site Scripting) 跨站脚本攻击

原理:恶意攻击者往 Web 页面里插入恶意可执行网页脚本代码,当用户浏览该页之时,嵌入其中 Web 里面的脚本代码会被执行,从而可以达到攻击者盗取用户信息或其他侵犯用户安全隐私的目的。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

1.这时候运行项目npm run start 打开home页面

web安全(xss/csrf)简单攻击原理和防御方案(实战篇)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

web安全(xss/csrf)简单攻击原理和防御方案(实战篇)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

web安全(xss/csrf)简单攻击原理和防御方案(实战篇)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

这个时候home页面是用react模板写的,React DOM 会在渲染的时候把内容(字符串)进行转义,所以字符串形式的标签是不会作为 HTML 标签进行处理的,所以输入script是不能执行的文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

所以加了一个利用ejs模板加载的页面xss.html(无论是从url上输入script标签例如http://localhost:4000/xss?text=还是直接获取数据库存储的代码都会被执行)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

web安全(xss/csrf)简单攻击原理和防御方案(实战篇) web安全(xss/csrf)简单攻击原理和防御方案(实战篇)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

web安全(xss/csrf)简单攻击原理和防御方案(实战篇)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

2.开始利用document.cookie攻击,按照刚才的方式把改成进行攻击

打开http://localhost:4000/xss会看到请求了http://localhost:5000/xss.html的接口 web安全(xss/csrf)简单攻击原理和防御方案(实战篇)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

在控制台可以看到5000端口的黑客网站已经打印出来了cookie,利用cookie我们完全可以在控制台设置cookie直接登录网站 web安全(xss/csrf)简单攻击原理和防御方案(实战篇)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

二、CSRF 跨站点伪造

原理: 诱导用户打开黑客的网站,在黑客的网站中,利用用户登录状态发起跨站点请求。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

1.在登录状态下,打开localhost:5000/csrf.html页面,在控制台上我们看到了setDataList的请求,这个就是提交内容的接口,在4000的home页面可以看到内容改变了 web安全(xss/csrf)简单攻击原理和防御方案(实战篇)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

正常网站内容被更改 web安全(xss/csrf)简单攻击原理和防御方案(实战篇)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

web安全(xss/csrf)简单攻击原理和防御方案(实战篇)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

解决方案(生成token, 接口带上nonce和timesTamp)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

web安全(xss/csrf)简单攻击原理和防御方案(实战篇)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

web安全(xss/csrf)简单攻击原理和防御方案(实战篇)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

三、点击劫持

原理:用户在登陆 A 网站的系统后,被攻击者诱惑打开第三方网站,而第三方网站通过 iframe 引入了 A 网站的页面内容,用户在第三方网站中点击某个按钮(被装饰的按钮),实际上是点击了 A 网站的按钮。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

  1. 打开http://localhost:5000/clickHijack.html点击按钮,实际上是点击了http://localhost:4000/home的关注按钮,因为iframe嵌入了4000的页面

web安全(xss/csrf)简单攻击原理和防御方案(实战篇)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

web安全(xss/csrf)简单攻击原理和防御方案(实战篇)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

web安全(xss/csrf)简单攻击原理和防御方案(实战篇)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

解决方案,对iframe嵌入做限制文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

web安全(xss/csrf)简单攻击原理和防御方案(实战篇)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

作者:蓝蓝酱
链接:https://juejin.cn/post/6953059119561441287
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html

文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/21398.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/anquan/21398.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定