【漏洞发现-xss跨站脚本攻击】伪代码绕过

一、漏洞描述

xss跨站脚本攻击是黑客通过“html注入”篡改了网页,插入了js恶意脚本,前端渲染时进行恶意代码执行,从而控制用户浏览的一种攻击。经常出现在需要用户输入的地方,一旦对输入不进行处理,就会发生网页被篡改。

分为三类

反射型:经过后端,不经过数据库

存储型:经过后端,经过数据库

DOM型:不经过后端,是基于文档对象型的一种漏洞,dom-xss是通过url参数去控制触发的

xss靶场第九关服务器采用了替换恶意关键字的方式防御,对输入进行小写转化,并且检查提交数据字符串中是否有http://来判断是否为链接。可以伪代码绕过。

二、漏洞发现

直接看源码,服务端get方式接受keyword参数,并且对参数进行小写转换,将script、on、src、data、href、“关键字进行替换。最后放在友情连接的a标签内

str_replace()函数:将字符串中的指定字符替换为其他字符

检查提交的字符串是否包含http://子串,若有则返回链接,没有则返回不合法信息

strpos()函数:返回字符串在另一个字符串第一次出现的位置

可以使用伪代码(javascript:alert(‘z’))+http://字符串绕过检测,又因为服务端将script替换,可以将script字符编码的方式绕过替换。

伪代码:不同于因特网真实存在的协议,http://,ftp://.....是为了关联应用程序使用的,tencnet关QQ,data:用base64编码来在浏览器输出二进制,javascript:后面语句当作javascript执行。这个特殊伪协议声明了url主体是任意的javascript代码,让javascript解释器运行,包含多个语句用封号割开,所以alert()是语句而后面加的http://需要注释才能执行语句,否则不合法。

关于实体编码可以看我专栏的另一个文章

三、漏洞利用

先输入javascript:alert('z'),链接不合法

再用

javascript:alert //http://

需要注释后面的http://

这时候整个流程为:

1.get方式发送有弹窗语句值javascript:alert('z')//http://

2.服务器接受数据,对值进行关键字替换,并为找到恶意关键字,且有存在http://子串将值返回给浏览器此恶意语句当作链接

3.浏览器接受html文档中间包含javascript:alert('z')

4.浏览器解析html文档,html解码:javascript:alert('z')//http://,url解码:javascript:alert('z')//http//:,js解码:javascript:alert('z') //http://

5.当用户点击连接执行弹窗

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Edward Hopper

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值