xss绕过方法(前端绕过,拼凑绕过,注释干扰绕过,编码绕过)

前端绕过:

前端有很多种方法绕过,比如抓包重放或者修改前端代码。


大小写绕过:

一般后台对输入进行过滤有两种方法:
1,使用正则匹配,一旦匹配成功就会被删除掉。2,用查找的函数查找。被函数查找到的内容也会被删除。
这两种方法可以用大小写混合的方式进行绕过,而后端是不管大小写的,可以正常执行我们的语句。


正则表达式:

重要性:在新技术层出不穷的今天,让人难以遗忘的,能称得上是伟大的东西寥寥无几,但是这个正则表达式算一个!但是,最让人容易忽略和忘记的也是正则表达式!(一定要学!!!)

正则表达式是一种描述字符串结构的语法规则,是一种规定好了的字符串格式,作用是可以匹配,替换,截取匹配的字符串。


拼凑绕过:

后端会对我们输入的标签进行替换,但只替换一次,所以可以这样:

<scri<script>pt>alert("hello world!")</scri</script>pt>

这样经过后端的替换之后就会变成:

<script>alert("hello world!")</script>

使用注释进行干扰:

例如:

<scri<!--test-->pt>alert("hello world!")</scri<!--test-->pt>

后端不认识:

<scri<!--test-->pt>

所以不会去处理这个,然后执行的时候会变成这样:

<script>

如图:
<scri pt>
在这里插入图片描述
看到了没<! --test–>不会出来,被注释掉了。(这里的叹号后面是没有空格的,因为不加空格,,它会被注释掉,你们会看不到,建议手动试试,,,,,,)但是可以避开检查!

编码绕过:

<script>

这种标签是可以编码的,编码之后,后台也会不认识它,然后达到绕过的效果,但是!不是可以任意编码的!他有一个重要的条件:一定要确保在输出点的时候可以正常被识别,翻译,执行!


案例演示:

大小写绕过:

<Script>5555555

拼凑绕过:

<sc<script>ript>4444444

注释绕过

<sc<!--test-->ript>666666

提交后查看页面源码:
大小写绕过:
在这里插入图片描述
结果:标签还在!成功绕过!
拼凑绕过:
在这里插入图片描述
标签被“干掉”,绕过失败!
注释绕过:
在这里插入图片描述
标签被“干掉”,绕过失败!

通过上面三种可以看出大小写绕过方案可行!
payload:

<Script>alert("hello !")</Script>

效果:
在这里插入图片描述


关于htmlspecialchars()函数的绕过:

这个函数的防御不全面,也就是说,如果后端只用该函数对输入进行处理,而没有其他处理的话,这样的输入口还是会产生漏洞的。比如:

在这里插入图片描述

$message=htmlspecialchars($_GET['message']);

上述图片就是只用htmlspecialchars()函数对输入做处理,而没用其他的,我们来试试如何绕过把!
输入:
在这里插入图片描述
提交后查看后端代码:
在这里插入图片描述
可以看到,2333和单引号和斜杠没有被处理,所以我们可以结合后端返回回来的代码试着做闭合处理:
payload:

' onclick='alert("hello!!!")'

在这里插入图片描述


总结:

xss的绕过方法很多很多,能否利用起来取决于你对PHP,Javascript,HTML等语言的理解程度,所以,努力吧!海阔凭鱼跃,天高任鸟飞!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值