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

上海响应式网页建设上海企业seo

上海响应式网页建设,上海企业seo,新乡市延津县建设局网站,机票网站建设方式拿到题&#xff0c;发现是一张图&#xff0c;查看源代码发现了被注释掉的提示 <!-- source.php--> step 1 在url传参看看这个文件&#xff0c;发现了这道题的源码 step 2 开始审计代码&#xff0c;分析关键函数 //mb_strpos($haystack,$needle,$offset,$encoding):int|…

拿到题,发现是一张图,查看源代码发现了被注释掉的提示

<!-- source.php-->

step 1 在url传参看看这个文件,发现了这道题的源码

step 2 开始审计代码,分析关键函数

  • //mb_strpos($haystack,$needle,$offset,$encoding):int|false 返回要查找的字符串在另一个字符串中首次出现的位置

    • $ haystack:要被检查的字符串。

    • $ needle:要搜索的字符串。

    • $offset 可选:用于定义从何处开始搜索字符串,即搜索位置的偏移。如果没有提供该参数,将会使用 0。负数的 offset 会从字符串尾部开始统计。

    • $encoding:可选。用于通过使用定义编码mb_internal_encoding()。如果省略或是null,则使用内部字符编码。

  • //mb_substr($str,$start,$length,$encoding) 中文截取函数:函数返回字符串的一部分。

    • $str:必需。从该 string 中提取子字符串。

    • $start:必需。规定在字符串的何处开始。

      • 正数 - 在字符串的指定位置开始

      • 负数 - 在从字符串结尾的指定位置开始

      • 0 - 在字符串中的第一个字符处开始

    • $length:可选。规定要返回的字符串长度。默认是直到字符串的结尾。

    • $encoding:网页编码,如utf-8,GB2312,GBK

源码中出现了:hint.php

step 3 url传参查看hint.php,发现以下文字

flag not here, and flag in ffffllllaaaagggg

即获得了flag文件名。

step 4 继续分析代码

<?phphighlight_file(__FILE__);
​class emmm//定义了一个名为emmm的类,在该类中有一个静态方法checkFile用于检查要包含的文件是否在白名单中,白名单是一个关联数组$whitelist,其中包含了允许包含的文件的键值对。在代码中,允许包含的文件有"source"=>"source.php"和"hint"=>"hint.php"。{public static function checkFile(&$page){$whitelist = ["source"=>"source.php","hint"=>"hint.php"];//第①次检查:checkFile方法检查传入的$page参数是否为字符串类型,如果不是或者未设置,将输出"you can't see it"并返回false。if (! isset($page) || !is_string($page)) {echo "you can't see it";return false;}
​//第②次检查:检查传入的$page是否直接在白名单中存在,如果存在,返回true。if (in_array($page, $whitelist)) {return true;}
​//对$page参数进行一系列处理:首先使用mb_strpos函数找到$page中第一个问号的位置,然后使用mb_substr函数将问号之前的部分作为$_page进行处理。$_page = mb_substr($page,0,mb_strpos($page . '?', '?'));if (in_array($_page, $whitelist)) {return true;}
​$_page = urldecode($page);$_page = mb_substr($_page,0,mb_strpos($_page . '?', '?'));//第③次检查:检查传入的$page是否直接在白名单中存在if (in_array($_page, $whitelist)) {return true;}echo "you can't see it";return false;}}
​
​//将$_page进行URL解码,并重复之前的处理步骤,如果$_page在白名单中存在,返回true。如果上述条件都不满足,则输出"you can't see it"并返回false。if (! empty($_REQUEST['file'])&& is_string($_REQUEST['file'])&& emmm::checkFile($_REQUEST['file'])) {include $_REQUEST['file'];exit;} else {echo "<br><img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />";}  
?>

现在构造获取flag的语句:hint.php?../../../../../ffffllllaaaagggg

传入入checkFile函数要经历:①白名单验证 ②?过滤,过滤后就是hint.php ③白名单验证,返回为真,则达成条件进行包含得到flag

注:include函数有这么一个神奇的功能:以字符‘/’分隔(而且不计个数),若是在前面的字符串所代表的文件无法被PHP找到,则PHP会自动包含‘/’后面的文件——注意是最后一个‘/’。

这里的ffffllllaaaagggg是在hint.php中发现的,显然flag在这个文件里。其实文件名提示了我们要使用四层目录。有四层目录原理:source.php一般是在html目录下,往上是www、var、根目录,flag一般放在根目录下,这里还有个hint.php?或者source.php?,因此需要返回四层才能到根目录。

最终payload:

http://03b2cc85-7af4-439b-a06e-41da80ff6505.node3.buuoj.cn/index.php?file=hint.php?../../../../../ffffllllaaaagggg

注:若目标是根目录,则可以多穿几层,多穿无妨,少穿什么都没有

http://www.yayakq.cn/news/428025/

相关文章:

  • 宜昌外贸网站建设优化推广wordpress php 采集器
  • 上海网站制作与推广深圳比较大的做网站设计公司
  • 北京欢迎你网站制作公司网站建设的秘诀
  • 百度做网站教程如何利用网络广告提升营销竞争力
  • 三亚兼职招聘信息网站android
  • 百度网站权重排行东莞网络优化公司排名
  • nas网站怎么做网站免费发帖的平台有哪些
  • 怎么做网站多少钱discuz自适应模板
  • 中国摄影网站有哪些上海公共招聘网app下载
  • 山东城乡住房建设厅网站企业文化管理咨询
  • icoc.cc是哪个网站域名广东小程序系统开发
  • 竞价在什么网站上做法律顾问 网站 源码
  • o2o网站建设平台深圳装修公司咨询
  • 新吁网站建设智能网站建设平台
  • python建立简易网站电影网站建设方案ppt
  • 盐城专业网站建设哪家好wordpress 开发h5页面跳转
  • 典当 网站广东新闻联播片尾
  • 水碓子网站建设如何入侵网站后台密码
  • 阿里云服务器架设网站wordpress 代码 工具栏
  • 深圳装饰公司网站接网站开发的公司电话
  • 威海企业做网站哪家好牙科医院网站建设方案
  • 住房与建设部网站最牛html5网站建设
  • 商城网站设计配色思想uc官方网站开发中心
  • 搭网站可以用自己电脑做服务器吗罗源网站建设
  • 公司网站建设案例网站建设需求流程图
  • 网站技术招标怎么做兰州网站建设 冰雨
  • 贵州省住房与城乡建设厅网站asp网站开发的主要困难
  • 做网站中的剪辑图片semester什么意思
  • 万网建网站流程网站被挂黑链排名降权
  • 成都建设网站公司哪家好鲜花礼品店网站建设策划书