当前位置: 首页 > news >正文

pikachu靶场第十四关——XSS(跨站脚本)之js输出(附代码审计)

源代码:

//这里讲输入动态的生成到了js中,形成xss
//javascript里面是不会对tag和字符实体进行解释的,所以需要进行js转义//讲这个例子主要是为了让你明白,输出点在js中的xss问题,应该怎么修?
//这里如果进行html的实体编码,虽然可以解决XSS的问题,但是实体编码后的内容,在JS里面不会进行翻译,这样会导致前端的功能无法使用。
//所以在JS的输出点应该使用\对特殊字符进行转义if(isset($_GET['submit']) && $_GET['message'] !=null){$jsvar=$_GET['message'];
//    $jsvar=htmlspecialchars($_GET['message'],ENT_QUOTES);if($jsvar == 'tmac'){$html.="<img src='{$PIKA_ROOT_DIR}assets/images/nbaplayer/tmac.jpeg' />";}
}
 <div id="xssr_main"><p class="xssr_title">which NBA player do you like?</p><form method="get"><input class="xssr_in" type="text" name="message" /><input class="xssr_submit" type="submit" name="submit" value="submit" /></form></br><p id="fromjs"></p><?php echo $html;?></div>
<script>$ms='<?php echo $jsvar;?>';if($ms.length != 0){if($ms == 'tmac'){$('#fromjs').text('tmac确实厉害,看那小眼神..')}else {
//            alert($ms);$('#fromjs').text('无论如何不要放弃心中所爱..')}}</script>

尝试输入111

尝试输入'111

看一下网页源代码

单引号没有被过滤,那么我们只需要将其闭合就行了。

';JavaScript:alert("111");//

记得加//哦~

http://www.lryc.cn/news/325005.html

相关文章:

  • AD实用设置教程
  • webpack为什么要使用loader,如何手写loader
  • 【银河商学】大蓝短视频学习04——找对标账号
  • Java练手游戏--俄罗斯方块
  • 基础篇Redis
  • 透视变换详解
  • leetcode LCR121.寻找目标值-二维数组
  • 成都百洲文化传媒有限公司引领电商服务新潮流
  • 【C++从练气到飞升】05---运算符重载
  • [leetcode] 994. 腐烂的橘子
  • 如何本地搭建群晖虚拟机并实现无quickconnect服务环境远程访问
  • [Java基础揉碎]final关键字
  • 用OceanBase binlog service 轻松进行数据回滚
  • 【C++】学习记录--condition_variable 的使用
  • Linux之时间子系统(四): tick 层模块(periodic 和dynamic )
  • Docker Command
  • Linux系统部署Paperless-Ngx文档管理系统结合内网穿透实现公网访问
  • 6.shell case控制语句
  • 如何判断HDMI接口版本是1.4还是2.0呢?
  • 【开发环境搭建篇】NodeJS的安装和配置
  • 【Docker】docker和docker-compose一键安装脚本(linux)
  • 在 Windows 中安装配置并启动运行 Jenkins【图文详细教程】
  • C# 读取txt文本所有行
  • STM32使用常见错误合集(正在更新版)
  • Java Random类
  • 【Spring Cloud】微服务通信概述
  • MySQL的概述与安装
  • 《被讨厌的勇气》书摘2
  • 基于SpringBoot的会员制医疗预约服务管理信息系统
  • 【二十三】【算法分析与设计】三柱汉诺塔详解,计算子移动次数,正常递归计算,观察数据得出数学规律,递归图得出数学规律,将递归函数转化为递推式