编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

有关于XSS漏洞攻击-中(xss漏洞实战文章)

wxchong 2024-10-22 17:55:04 开源技术 8 ℃ 0 评论

这篇解决两件事:

1、(Node+Express)实现一个评论实例功能,以便在这个实例上做加入XSS攻击和设置预防攻击措施演示做准备。

2、先实现一个在服务端加入转义字符的功能。

真不喜欢写文章的时候贴代码,因为代码粘上去要么不识别,要么就特别丑(不同屏幕上看)。所以我在文末给了个github代码地址。呵呵!!

接着上篇(我们知道了XSS的几种攻击方式,也就是原理),这里通过构建一个Node服务和建立一个评论功能来演示在XSS的攻击下如何预防。

如果懂点Express,这个演示实例运行起来会很轻松。不太懂也没关系,clone下来运行node index.js直接访问就行。有关Express相关知识可以先忽略。

这段话很重要:整个操作的流程是这样的:首先用Express写两个接口,一个是获取用户输入的评论内容,将其暂存在一个变量对象中,另一个是获取评论内容接口,获取的就是刚刚用户输入的那个内容,从页面输入框输入内容,点击评论按钮,然后再点击获取评论按钮。

理清了上面这个操作流程,在结合上一篇的XSS攻击方式,就很容易知道评论功能是很容易受XSS攻击的模块了。

预防思路是这样的:

1、在服务端做一个编码功能,将字符进行转义存储。

2、前端获取到内容时进行反转义(也就是解码)。

3、因为解码是将内容原样输出到界面,所以还要进行过滤,去掉一些不合法标签(如:script、style等)。

今天这里只实现整个功能流程和服务端加个字符编码功能,有关于前端解码和过滤最后一篇在写。

一、服务端代码

html_encode函数就是在服务端加的转义字符的功能函数。评论内容存在comments对象中。

二、静态页面输出

这里有两个按钮,一个是点击提交评论,另一个是点击获取评论。

三、点击评论看后台

点击评论按钮时,在控制抬输出评论了内容。

四、点击获取评论

点击获取评论按钮时,看看浏览器控制台输出的是不是刚输入的内容。

这样的整个流程就跑通了,然后在来设置XSS攻击,和加XSS攻击预防措施就很明了了。

演示效果,在文件框中输入三种攻击情况代码,依然弹窗alert,也就是说结果是成功实现XSS攻击,并没有预防成功,不奇怪,因为上面讲过这篇我们只实现了在服务端做了字符转义和整个测试功能流程,客户端还没有做反转义和过滤等功能了。

总结:

主要还是夜色已晚,该休息了,下篇在续完。

代码下载:

https://github.com/wenpingzheng/xss.git

短内容,说完整事,哪怕只读一篇也能学知识。点击关注小郑搞码事,说的都是那堆代码。谢谢您的鼓励!

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表