1
2
3
Team:C0deplay
Author:Yaseng
Site:www.c0deplay.com

0x00 前言

对于一个完善系统而言,无论是桌面还是web 程序, 都会使用客户端保存数据如cookie,db文件等。为了不让外部获取
或者控制,系统会对数据进行私有加密 例如qq 密码,聊天记录,web 程序中用户信息等。而对于开源程序而言,算法是公开
的,对数据的加密只有依靠key来保护数据 ,一旦数据可控就可能造成某些安全问题,本文探讨web开源程序中对私有数据
的使代码的安全性问题。

0x01 直捣黄龙:key可知

某些加密 key 可推算抑或可爆破情况下,私有数据数据完全可控,根据实际环境sql 注入 ,xss ,越权等攻击 。
例如:
espcms 暴力注入 http://www.wooyun.org/bugs/wooyun-2010-020759
dedecms cookie 注入 http://www.wooyun.org/bugs/wooyun-2010-018567
PHPCMS V9 sys_auth() 设计缺陷导致多个SQL注入漏洞 http://www.80vul.com/archives/107.html

0x02 隔山打牛:key不可知

为了数据和代码的统一,一套系统中数据的加密解密key一般是通用的,我们可以利用程序的某些功能来生成加密之后的数
据,从而控制程序的私有数据,进行攻击。
类似的案例如:
phpcms SQL注入 http://www.wooyun.org/bugs/wooyun-2010-024984
espcms 二次注入 http://www.wooyun.org/bugs/wooyun-2013-031669
Espcms加密函数缺陷导致getshell http://www.wooyun.org/bugs/wooyun-2013-034014

0x03 总结

当变量能控时,一切都是危险的,程序除了对输入输出的数据做严格过滤之外,对内部私有数据也要相应的过滤。