关于_tostring[php]的另类利用
收获
反序列化tostring的考点不一定要考察调用一个Class,也可以使用echo来进行考察
tostring()方法:在直接输出对象引用的时候,就不会产生错误,而是自动调用了__tostring()方法,输出__tostring()方法中返回的字符串
通俗来说就是 对象一般是使用print_r() 或 var_dump() 来打印访问
但对于一般闲的人来说直接 使用 echo 输出对象时,必定会报错的,原因是对象无法使用echo的。
这个时候如果想解决这个错误,咱们应该怎么操作呢?
可以很好的利用__tostring()这个魔术方法
但是切记使用__toString() 时返回值一定要使用return 来进行返回。
<?php
class Flag{
public $file;
function __tostring(){
if(isset($this->file)){
echo $this->file;
}
return ' ';
}
}
$y='O:4:"Flag":1:{s:4:"file";O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}}';
$x='O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}';
echo unserialize($x);
echo unserialize($y);
?>
flag.php flag.php
进程已结束,退出代码 0
无报错,且返回都是flag.php
<?php
class Flag{
public $file;
}
$y='O:4:"Flag":1:{s:4:"file";O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}}';
$x='O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}';
echo unserialize($x);
echo unserialize($y);
?>
报错,无法反序列化
关于_tostring[php]的另类利用的更多相关文章
- SQL注入技术专题—由浅入深【精华聚合】
作者:坏蛋链接:https://zhuanlan.zhihu.com/p/23569276来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 不管用什么语言编写的Web应用 ...
- SQL注入技术专题—由浅入深【精华聚合贴】
SQL注入技术专题—由浅入深[精华聚合贴] 不管用什么语言编写的Web应用,它们都用一个共同点,具有交互性并且多数是数据库驱动.在网络中,数据库驱动的Web应用随处可见,由此而存在的SQL注入是影响企 ...
- SQL注入学习资料总结
转载自:https://bbs.ichunqiu.com/thread-12105-1-1.html 什么是SQL注入 SQL注入基本介绍 结构化查询语言(Structured Query Lang ...
- Oracle学习总结(6)—— SQL注入技术
不管用什么语言编写的Web应用,它们都用一个共同点,具有交互性并且多数是数据库驱动.在网络中,数据库驱动的Web应用随处可见,由此而存在的SQL注入是影响企业运营且最具破坏性的漏洞之一. SQL注入基 ...
- XSS漏洞的渗透利用另类玩法
XSS漏洞的渗透利用另类玩法 2017-08-08 18:20程序设计/微软/手机 作者:色豹 i春秋社区 今天就来讲一下大家都熟悉的 xss漏洞的渗透利用.相信大家对xss已经很熟悉了,但是很多安全 ...
- 防止WordPress利用xmlrpc.php进行暴力破解以及DDoS
早在2012 年 12 月 17 日一些采用 PHP 的知名博客程序 WordPress被曝光存在严重的漏洞,该漏洞覆盖WordPress 全部已发布的版本(包括WordPress 3.8.1).该漏 ...
- QTableView另类打印解决方案(复用render函数去解决print问题)
Qt QTableView另类打印解决方案 上回书说道Qt的model/view,我就做了个demo用于显示数据库中的内容.没想到tableview的打印竟然成了问题.我困惑了,难道Qt不应该 ...
- 解密SuperWebview的一种另类方法
解密SuperWebview的一种另类方法 什么是SuperWebview SuperWebview是APICloud官方推出的另一项重量级API生态产品,以SDK方式提供,致力于提升和改善移动设备W ...
- 解决 "Script Error" 的另类思路
本文由小芭乐发表 前端的同学如果用 window.onerror 事件做过监控,应该知道,跨域的脚本会给出 "Script Error." 提示,拿不到具体的错误信息和堆栈信息. ...
随机推荐
- H5系列之svg
svg呢,跟canvas其实都是用来画图的,只不过svg画的图,是矢量图,矢量图有个特点是,放大缩小,不会失真,canvas呢,是逐像素进行渲染的. 也就是,他依赖分辨率,会根据分辨率来决定图形是否清 ...
- php-fpm和nginx配置
groupadd www-data useradd -g www-data www-data find / -name "php-fpm.conf" 把所有文件下的 改成www-d ...
- zabbix地图显示全国延迟
Zabbix 地图显示全国延迟 1. 效果图 2. 实现方法 将地图.png上传到zabbix为背景,上传红绿点.png为图标.然后新建主机关联模板为ICMP Ping,新建一个拓扑图调用地图为背 ...
- Python正则表达式大全
前言 正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符"))操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成 ...
- python升级版本
前言 目前大部分使用的3.6或者3.7以及更低版本存在不少问题,随着python的更新很多问题得到修复并且具有更多新的功能. 更新 3.y.x版本升级到3.y.z 下载需要升级的exe安装包点击upg ...
- HDU 4920 Matrix multiplication 题解(内存访问连续性/卡常)
题目链接 题目大意 多组输入,给你两个n×n的矩阵,要你求他们相乘%3的值 题目思路 这个题目主要是要了解内存访问连续化,要尽量每次访问连续的内存 所以第一种方法会超时,第二种则AC.一种卡常技巧 代 ...
- JQuery案例:购物车编辑
购物车编辑 实现了:商品的加减,总价的变动 实现了:全选/全不选(使用prop而不是attr) 实现了:删除(遮罩层) <html> <head> <meta chars ...
- redis数据量大时bgsave线程阻塞redis原因
rt 转载 Latency generated by fork In order to generate the RDB file in background, or to rewrite the A ...
- Pycharm永久激活方法
1.下载新版破解补丁 链接 https://pan.baidu.com/s/137-afPKYfkXbvroSv1hoYw 提取码: cm43 下载补丁文件jetbrains-agent.jar并将 ...
- Spring Boot系列:七、 实现Mybatis多数据源切换
一.引入相关maven配置 mybatis; mysql驱动:jdbc <dependency> <groupId>org.mybatis.spring.boot</g ...