加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 运营中心 > 建站资源 > 策划 > 正文

PHP反序列化漏洞简介及相关技巧小结

发布时间:2019-08-12 15:30:31 所属栏目:策划 来源:xiaopan233
导读:要学习PHP反序列漏洞,先了解下PHP序列化和反序列化是什么东西。 php程序为了保存和转储对象,提供了序列化的方法,php序列化是为了在程序运行的过程中对对象进行转储而产生的。序列化可以将对象转换成字符串,但仅保留对象里的成员变量,不保留函数方法。

拿到源码我们先简单浏览一下,看到parse_str就想到了用变量覆盖来过这些if语句,而parse_str的参数是通过GET请求中的a参数中获得,parse_str进行变量分割的符号是 & 号,没怎么多想就直接先打上一手请求先:

  1. ?first=doller&a=var=give&bbb=me&ccc=flag 

我原本的意愿是希望这样子被解析

  1. ?first=doller&a=var=give&bbb=me&ccc=flag 

希望红字是一个整体,是一个字符串,是a这个参数的值。总共的GET参数就两个,一个first一个a。但php解析的是。。。

  1. ?first=doller&a=var=give&bbb=me&ccc=flag 

即有4个参数,a的值是var=give,但遇到&号在url中就被解析成了GET参数的分割符,认为bbb=me是一个新的GET的参数。

不过好在有URL编码这种东西,可以在这有歧义的时候扭转局势,我们把&号进行URL编码,这样子解析时就会认为是一个字符串了。URL编码可以用php的urlencode函数。得到&的URL编码为%26。构造请求:

  1. ?first=doller&a=var=give%26bbb=me%26ccc=flag 

看到了欢迎字样:

PHP反序列化漏洞简介及相关技巧小结

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读