反序化
文章平均质量分 73
陈艺秋
这个作者很懒,什么都没留下…
展开
-
[网鼎杯 2020 朱雀组]phpweb1
进入环境后就是一串报错和一张图片,主要是这个网页一直莫名抽搐看源码得知是一个post请求方法,还有传入了两个参数,那就抓包看看抓包后参数没有变化,还是这个发送到重发器后,我才得知这个报错信息,原来就是,data函数的报错信息,那我们就可以猜测这个两个参数之间的关系,是我们可以利用var_dump函数测试一下发现确实存在命令执行的页面回显,那我们是不是直接可以本来想直接利用scandir查看当前目录下的所有文件的,但是用法出了点问题查看了wp,得知可以用。原创 2023-07-24 13:53:35 · 123 阅读 · 0 评论 -
unseping
空格绕过,引号绕过,printf八进制绕过,反引号和$()绕过原创 2023-07-09 22:13:03 · 305 阅读 · 0 评论 -
[网鼎杯 2020 青龙组]AreUSerialz1
如果 $str 经过 is_valid() 函数的检查,返回 true,则使用 unserialize() 函数对 $str 进行反序列化操作,并将结果赋值给变量 $obj。op,filename,$content三个变量权限都是protected,而protected权限的变量在序列化的时会有%00*%00字符,%00字符的ASCII码为0,就无法通过上面的is_valid函数校验。则将 $op 的值修改为 "1",并清空 $content,然后再次调用 process() 方法。原创 2023-07-05 20:44:07 · 723 阅读 · 0 评论 -
[ZJCTF 2019]NiZhuanSiWei1
根据提示信息,可知需要三个参数:text,file,password,且 text 的文本内容也已经限定,那么桌面建立一个文本文档,内容为:welcome to the zjctf,尝试用PHP伪协议 file 协议读取,发现没有反应。内层if语句是一个正则表达式,如果file变量中有flag字符就直接退出程序,反之就包含file变量,继续将password进行反序化,输出。看到注释的flag.php,继续访问,在网页源码中得到提示:现在还不能给我flag,说明方向是对的,已经走到最后一步了。原创 2023-07-05 14:15:52 · 349 阅读 · 0 评论 -
unserialize3
看着这个源码长度,就觉着比较简单本题就一个__wakeup方法需要绕过,但是不对哦没有提示也不知道该参数得多少呀本来都要复制进编译器写了,发现源码闭合有点问题,可能是做了隐藏。原创 2023-07-03 20:31:54 · 106 阅读 · 0 评论 -
Web_php_unserialize
_wakeup()方法是在进行反序列化之前进行调用,主要目的是为了检测file属性里是不是index.php,如果不是就重新赋值为index.php。__destruct()方法是在对象不再使用时自动调用,这里的主要目的是高亮显示file属性里的数据,并以字符串的形式回显出来。既然绕过了__wakeup方法,说明file属性不会被强制赋值和检测,所以我们可以直接将file属性的值改为flag.php。绕过方式:当序列化字符串中表示对象属性个数的值大于真实的属性个数时会跳过__wakeup的执行。原创 2023-07-03 17:52:08 · 309 阅读 · 0 评论 -
web258
在Cookie中过滤以o或者c开头加:加任意数字最后以:结尾的不区分大小写的字符串。经过查看wp,因为序列化后是对象,以o开头,所以对原数据进行字符串替换,将。与上一题的区别就是,在最后反序化之前做了一个正则表达式。如果还是private私有可见的话,不会取得预想效果。关于这个,比较不容易注意到的一个点就是属性的。具体意义:猜测是因为:后跟数字,表示正数吧。可见性要设定为public。原创 2023-07-02 14:35:55 · 155 阅读 · 0 评论 -
web256-257
最后如果没有cookie信息,就抓包后自行添加,然后GET方法传入username和password参数,就可以获得flag。因为在类中都是单独用===比较,所以只需要将username重新赋值就好,最后再序列化编码输出。对于上一题,这题关键点在于让username不等于password。原创 2023-07-01 23:04:44 · 217 阅读 · 0 评论