欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

每个人都该知道的7种主要的XSS案例

来源:本站整理 作者:佚名 时间:2017-08-09 TAG: 我要投稿

“Master the 7 Main XSS Cases and be able to spot more than 90% of XSS vulnerabilities out there.”
这句话说的这么diao,吓得我赶紧早早起来好好学学姿势。
当我们读一些XSS相关资料时,经常能看到像alert(1)这样经典的PoC(Proof of Concept)代码。尽管简单明了,但它并不能够让这个领域的初学者在真枪实战中有进一步的提升。
So,本文中介绍的7个实例,目的是让大家在学习之后便能对绝大多数的XSS漏洞不仅仅是证明其存在,而是利用它们。
练习站点链接:https://brutelogic.com.br/xss.php

在源码开头的HTML注释中包含了触发每个案例的所有参数,这些参数都可通过GET和POST提交请求。
 

可能你注意到了,所有的案例都是基于源的,这意味着注入会始终显示在HTTP响应正文的源代码检索中。反射型或存储型相互独立,但这里重要的是它们触发时上下文关系的呈现,因此我们以反射型为主。基于DOM类型的XSS 漏洞不暴露在源代码,我们暂不赘述。
一定要记得在本机没有XSS过滤器的浏览器中尝试下面这些实例,如Mozilla Firefox。
0x01 URL 反射
当源代码中存在URL反射时,我们可以添加自己的XSS向量和载荷。对于PHP的页面,可以通过使用斜杠”/”在页面的名称后添加任何内容。

http://brutelogic.com.br/xss.php/”>
需要用开头的(“>)标签来破坏当前标签的闭合状态,为将插入的新标签(触发XSS的代码标签)创造可能的闭合条件。
” method=”POST”>

虽然不同语言的差异造成的不同的触发原因(反射可能出现在路径或URL参数中)。相对于PHP而言,罪魁祸首通常是在提交表单的动作中使用到了全局变量。

$_SERVER[“PHP_SELF”]
0x02 简单的HTMLi(HTML注入)
最直接的一种方式,输入就是反射,输入部分显示在已存在的标签之前、后或标签之间。不需要绕过或破坏任何闭合,任何简单的像形式的XSS向量都可以实现。

http://brutelogic.com.br/xss.php?a=
h1>XSS Testh1>
Hello, svg onload=alert(1)>!
br>

0x03 Inline HTMLi
和上一个相比这个实例也相对简单,但是需要 "> 破坏前面的闭合标签,重新添加并创建新的标签闭合。
input type="text" name="b1" value="">svg onload=alert(1)>">
br>
br>

0x04 Inline HTMLi: No Tag Breaking
当在HTML属性中输入并且对大于号(>)进行过滤时,像之前的实例一样破坏前面的闭合标签达到反射是不可能了。
input type="text" name="b3" value="">>svg onload=alert(1)>">
br>
br>

所以这里使用一个适合我们在此处注入的,并可在标签内触发的事件处理程序,比如:

http://brutelogic.com.br/xss.php?b3=” onmouseover=alert(1)//
这个方式闭合了标签中value值的引号,并且给onmouseover插入了事件。alert(1)之后的双引号通过双斜杠注释掉,当受害者的鼠标移动到输入框时触发js弹窗。
0x05 HTMLi in Js(Javascript) Block
输入有时候会传入到javascript代码块中,这些输入通常是代码中的一些变量的值。但因为HTML标签在浏览器的解析中有优先级,所以我们可以通过js标签闭合原有的js代码块并插入一个新的标签插入传入你需要的js代码。

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载