过滤xss攻击正则匹配

1.介绍

xss又叫css,为了与前端的css区别,所以叫xss,即跨站脚本攻击。

XSS原理解析

XSS攻击是在网页中嵌入客户端恶意脚本代码,恶意代码一般都是javascript编写的。想要深入研究XSS,必须精通javascript。

javascript可以获取用户的cookie、改变网页内容、URL跳转,所以,存在XSS漏洞的网站,就可以盗取Cookie、黑掉页面、跳转到恶意网站。

在存在XSS漏洞的地方输入之间输入恶意javascript代码,就会造成相应的恶意攻击。盗取Cookie、监控键盘记录等。

反射型XSS

反射型XSS也被称为非持久性XSS。当用户访问一个带有XSS代码的URL请求时,服务端接收数据后处理,然后把带有XSS代码的数据发送到浏览器,浏览器解析XSS代码,造成XSS漏洞。

比如:XXX.com/1.php?username=,就会造成反射型XSS漏洞。看似没什么危害,但是当你了解了Cookie的话,就不会这么认为了。

存储型XSS

存储型XSS又被称为持久型XSS。攻击者提交XSS代码,服务器接收并存储,再次访问这个页面时,XSS代码从数据库中被读取出来,浏览器解析XSS代码,造成存储型XSS攻击。

存储型XSS一般存在于评论,留言板等地方,测试是否存在XSS时,我们要确定输出的内容是在标签内还是标签属性内或者是其他地方,如: 这段代码中的XSS就不会被执行,因为XSS代码是value属性的值,被当做HTML来解析,此时,我们需要闭合input标签,"/> ,这样就会执行XSS代码,造成恶意攻击。

检测XSS

检测分为手工检测和软件自动检测。

(1)手工检测

输入一些敏感字符,例如“<、>、"、’、()”等,提交请求查看源代码看是否被转义。

不知道输出位置的情况下使用:"/>XSS 来测试。

(2)软件自动检测

软件检测都是自动化,像appscan、awvs、burpsuit等都可以检测。

专业的XSS扫描工具有XSSER、XSSF等。

检测XSS要工具与手工并进,这样才能更好的检测XSS。

2.使用

res=re.match("^[a-zA-Z0-9`~!@#$^&*()=|{}':;',\\[\\].<>~!@#¥……&*()——|{}【】‘;:”“'。,、?\s*]*$" ,"<object type=‘text/x-scriptlet’ data=‘http://hacker.com/xss.html’>")

print(res)

猜你喜欢

转载自blog.csdn.net/weixin_49319422/article/details/120493068