PHP反序列化漏洞简介及相关技巧小结
拿到源码我们先简单浏览一下,看到parse_str就想到了用变量覆盖来过这些if语句,而parse_str的参数是通过GET请求中的a参数中获得,parse_str进行变量分割的符号是 & 号,没怎么多想就直接先打上一手请求先:
我原本的意愿是希望这样子被解析
希望红字是一个整体,是一个字符串,是a这个参数的值。总共的GET参数就两个,一个first一个a。但php解析的是。。。
即有4个参数,a的值是var=give,但遇到&号在url中就被解析成了GET参数的分割符,认为bbb=me是一个新的GET的参数。 不过好在有URL编码这种东西,可以在这有歧义的时候扭转局势,我们把&号进行URL编码,这样子解析时就会认为是一个字符串了。URL编码可以用php的urlencode函数。得到&的URL编码为%26。构造请求:
看到了欢迎字样: 查看代码,发现到了反序列化的地方了。而反序列化的来源是通过POST提交的come参数 知道了要反序列化,接下来就是确定要反序列化的类了。这个源码就一个类come。对这个类进行审计。 (编辑:西安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |