XSS挑战

XSS是跨站脚本攻击的缩写,与CSS区别而写为XSS。XSS分为两种利用类型——反射型XSS和存储型XSS,对应的利用方式不同。但是所有的XSS原理都是网站把用户输入的参数不经过任何处理直接插入到了html语言中,而当一个攻击者通过构造的恶意语句插入到html中,将会产生渲染效果。如果修改参数通过Get方式传播,将恶意代码拼接了url发送给受害者,受害者将会受到恶意代码的影响,严重的将会被植入木马病毒等。
针对XSS很有效的一种防御方式是使用htmlspecialchar()函数进行参数的html实体编码,但是攻击者可以通过一些js函数绕过。目前最为有效的方式是使用httponly进行防御。

步骤如下:
1.1在浏览器的地址栏中输入【http://192.168.1.3/xss】进入到挑战页面。如图1所示
在这里插入图片描述

图1
1.2单机图片进入到第一关。如图2所示
在这里插入图片描述

图2
1.3现在url中带有get参数?name=xxx于是在参数加入js代码:<script>alert(/xss/)</script>,如图3所示
在这里插入图片描述

图3
1.4弹窗成功进入到下一关。如图4所示
在这里插入图片描述

图4
1.5参照第一关,首先在输入框中尝试输入<script>alert(/xss/)</script>,并点击“搜索”,看到搜索内容正常回显了出来。如图5所示
在这里插入图片描述

图5
1.6在页面空白处点击鼠标右键,然后选择”查看页面源代码”选项,观察页面代码。如图6所示
在这里插入图片描述

图6
1.7发现网页将我们<script>标签的尖括号转义为了html实体字符,但是在输入框中,还有输入的内容,所以考虑将前面的input标签闭合,让script标签生效。如图7所示
在这里插入图片描述

图7
1.8构造payload:"><script>alert(/xss/)</script>,输入框后提交,成功弹窗进入下一关。如图8所示
在这里插入图片描述

图8
1.9进入第三关后步骤如前两题一样,查看页面源代码。如图9所示
在这里插入图片描述

图9
1.10发现网站对两个显示的位置都做了html实体转义,于是我们尝试不使用标签而是向标签中添加监听事件,触发事件则产生弹窗。构造payload:’ οnmοuseοver='alert(/xss/),当我们鼠标进过了输入框,则会触发弹窗。如图10所示
在这里插入图片描述

图10
1.11进入到第四关查看页面源代码。如图11所示
在这里插入图片描述

图11
1.12发现网页将尖括号都替换为空了,于是参照第三关的方式,闭合双引号后构造一个事件触发后弹框,构造payload:" οnkeydοwn="alert(/xss/)当按下键盘时弹框。如图12所示
在这里插入图片描述

图12
1.13进入第五关,首先查看源代码:如图13所示
在这里插入图片描述

图13
1.14发现网页将script进行了转义,但是没有做其他的操作。所以我们尝试不使用script标签,而是使用一个链接配合javascript伪协议进行弹窗,构造payload:"><a href="javascript:alert(/xss/)">xss</a>,如图14所示
在这里插入图片描述

图14
1.15完成了前五关,之后的关卡就靠大家自己摸索挑战了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值