03-XSS漏洞挖掘


一、反射型XSS漏洞挖掘

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

HTML标签之间,如:
[输出]
HTML标签之内,如: 成为JavaScript值,如:

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






</plaintext>
</pre>

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

<pre class="brush:javascript;gutter:true;"></title><script>alert(1)</script>
</pre>

<p>  除了闭合标签外,我们还可以利用它们自身可执行脚本的性质来构造特殊的payload。</p>
<p> <strong>1.2 HTML标签之内</strong></p>
<p>  最普通的输出常为<input type="text" vule="[输出]" />,要触发XSS漏洞,有以下两种方法:</p>

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

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

<pre class="brush:javascript;gutter:true;"><input type="hidden" vule="输出" />
</pre>

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

<pre class="brush:javascript;gutter:true;"><input vule="输出" type="hidden" />
</pre>

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

<pre class="brush:javascript;gutter:true;">1" onmouseover=alert(1) type="text<br>然后输出后为:<br><input vule="1" onmouseover=alert(1) type="text" type="hidden" /></pre>

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

<pre class="brush:javascript;gutter:true;"><a href="输出">click me</a> //输出在src href action等属性内
<a href="#" onclick="输出">click me</a>输出在on事件内的
<a href="#" style="输出">click me</a> 输出在style事件内的
</pre>

<p>1.3输出在src href action属性的</p>
<p>   除了各种闭合之外,我们还可以使用以下的语句来触发:</p>
<p>javascript:alert(1) //</p>
<p>  输出的结果为:</p>
<pre class="brush:javascript;gutter:true;"><a href="javascript:alert(1) //html">click me</a> </pre>
						  
					  </div>
						<!--conend-->
							<div class="p-2"></div>

						<div class="arcinfo my-3 fs-7 text-center">
							
							
			<a href='/t/etagid21870-0.html' class='tagbtn' target='_blank'>前端安全</a>							
						



						</div>
						
						<div class="p-2"></div>

						

						
					</div>
					<div class="p-2"></div>
					<!--xg-->
					<div class="lbox p-4 shadow-sm rounded-3">
						<div class="boxtitle"><h2 class="fs-4">相关</h2></div>
						
<hr>				
						
			<div class="row g-0 py-2 border-bottom align-items-center">
																
								<div class="col-7 col-lg-11 border-lg-end">
										<h3 class="fs-6 mb-0 mb-lg-2"><a href="/a/1-350569.html">前端安全之 XSS攻击</a></h3>
									
									<div class="ltag fs-8 d-none d-lg-block">
								 

        </div>
								</div>
							
							</div>            
            
            <!---->
                                    
           <!---->
  			
						

					</div>
					<!--xgend-->
				</div>

				<div class="col-lg-3 col-12 p-0 ps-lg-2">
					<!--box-->									
					<!--boxend-->
					<!--<div class="p-2"></div>-->

					<!--box-->
									<div class="lbox p-4 shadow-sm rounded-3">
					
									   <div class="boxtitle pb-2"><h2 class="fs-4"><a href="#">标签</a></h2></div>
										<div class="clearfix"></div>
										<ul class="m-0 p-0 fs-7 r-tag">
										</ul>
									

										
										<div class="clearfix"></div>
									</div>
					<!--box end-->

					
				</div>

			</div>
		
		
		
		</div>	

</main>
						<div class="p-2"></div>
<footer>
<div class="container-fluid p-0 bg-black">
	<div class="container p-0  fs-8">
	<p class="text-center m-0 py-2 text-white-50">一品网 <a class="text-white-50" href="https://beian.miit.gov.cn/" target="_blank">冀ICP备14022925号-6</a></p>
	</div>	
</div>
<script>
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?6e3dd49b5f14d985cc4c6bdb9248f52b";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
</script>
</footer>
		
<script src="/skin/bootstrap.bundle.js"></script>

</body>
</html>