zoukankan      html  css  js  c++  java
  • jQuery火箭图标返回顶部代码

    escape 过滤器来过滤link,而实际上这里的 escape 过滤器,是用PHP内置函数 htmlspecialchars 来实现的 htmlspecialchars 函数定义如下:

    htmlspecialchars :(PHP 4, PHP 5, PHP 7)

    功能 :将特殊字符转换为 HTML 实体

    定义 :string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string$encoding = ini_get("default_charset") [, bool $double_encode = TRUE ]]] )

    & (& 符号)  ===============  &
    " (双引号)  ===============  "
    ' (单引号)  ===============  '
    < (小于号)  ===============  &lt;
    > (大于号)  ===============  &gt;

    第二处过滤在 第17行 ,这里用了 filter_var 函数来过滤 nextSlide 变量,且用了 FILTER_VALIDATE_URL 过滤器来判断是否是一个合法的url,具体的 filter_var 定义如下:

    filter_var : (PHP 5 >= 5.2.0, PHP 7)

    功能 :使用特定的过滤器过滤一个变量

    定义 :mixed filter_var ( mixed $variable [, int $filter = FILTER_DEFAULT [, mixed $options ]] )

    针对这两处的过滤,我们可以考虑使用 javascript伪协议 来绕过。为了让大家更好理解,请看下面的demo代码:

     

    实际上,这里的 // 在JavaScript中表示单行注释,所以后面的内容均为注释,那为什么会执行 alert 函数呢?那是因为我们这里用了字符 %0a ,该字符为换行符,所以 alert 语句与注释符 // 就不在同一行,就能执行。当然,这里我们要对 % 百分号编码成 %25 ,因为程序将浏览器发来的payload:javascript://comment%250aalert(1) 先解码成: javascript://comment%0aalert(1) 存储在变量 $url 中(上图第二行代码),然后用户点击a标签链接就会触发 alert 函数。

    练手CTF

     

     这道CTF题目,实际上考察的是 filter_var 函数的绕过与远程命令执行。在题目 第6行 ,程序使用 exec 函数来执行 curl 命令,这就很容易让人联系到命令执行。所以我们看看用于拼接命令的 $site_info['host'] 从何而来。在题目 第2-4行 ,可以看到 $site_info 变量是从用户传来的 url 参数经过 filter_var 和 parse_url 两个函数过滤而来。之后,又规定当 url 参数的值以 sec-redclub.com 结尾时,才会执行 exec 函数。

     payload: 

  • 相关阅读:
    Mac OS X上安装配置apache服务器
    eclipse 发布web工程,修改tomcat端口
    masonry瀑布流的使用
    fullcalendar 使用教程
    -webkit-line-clamp下多行文字溢出点点点...显示实例页面
    HTML5 Audio标签方法和函数API介绍
    Canvas与Image互相转换
    iOS绘图UIBezierPath 和 Core Graphics框架
    实现外卖选餐时两级 tableView 联动效果
    零行代码为 App 添加异常加载占位图
  • 原文地址:https://www.cnblogs.com/kuaile1314/p/12319042.html
Copyright © 2011-2022 走看看