内容简介:live800 早期版本存在任意文件读取漏洞。之前有白帽子在某云平台上对此漏洞进行提交。很多厂商就将此jsp文件给删除来规避这个漏洞。因为渗透目标也使用了早期版本的此客服系统。downlog.jsp也被删除了,任意文件读取的漏洞也就不存在了。为了突破此限制,我得想方法获取到live800的早期版本,来进行一波审计,看看是否还存在其他可以利用的漏洞。成功的将 /root/.bash_history 给下载到本地。
live800 早期版本存在任意文件读取漏洞。之前有白帽子在某云平台上对此漏洞进行提交。很多厂商就将此jsp文件给删除来规避这个漏洞。
因为渗透目标也使用了早期版本的此客服系统。downlog.jsp也被删除了,任意文件读取的漏洞也就不存在了。为了突破此限制,我得想方法获取到live800的早期版本,来进行一波审计,看看是否还存在其他可以利用的漏洞。
在google上搜索 之前的漏洞,发现还是有网址没有修复。
http://***/live800/downlog.jsp?fileName=/root/.bash_history成功的将 /root/.bash_history 给下载到本地。
从历史操作中看到,有几处备份动作。
通过整理,一共发现有三处源码备份
/home/live800/working/tomcat/webapps.tar.gz
/home/live800/live800.tar.gz
/home/live800/working/tomcat/webapps/live800-01-29/live20160422.tar.gz
再次利用downlog.jsp漏洞下载到源码包。
这次的目标比较明确,就是找到 downlog.jsp 以外的可利用漏洞。希望能够对我的渗透目标来一次助攻。
使用intellij IDEA 载入源码
先审计 web.xml,关注所有的servlet接口及其实现
发现这样的一个servlet,接口名 downloadserver, url-pattern 为 /downloadserver
也就是说 当我们访问 http://xxxxx/{webapp}/downloadserver 时,会进入这个servlet逻辑中。
看一下代码的主要逻辑
直接看 79行:
var9 = new File(Config.getLive800IMUploadFilesDir() + var4);
这里就可能存在 ../ 跨目录的问题了。 new File(path1 + path2) 这里存在拼接漏洞, path1= uploadFilesDir()常量,我们无法控制,重点就看 var4 这个变量是怎么来的,是否可控
从 49行 得知 var4是可以由攻击者控制,通过 fid 参数来传入。
这样我们就可以构造成跨目录的文件 var9 = new File(Config.getLive800IMUploadFilesDir() + “ ../../.../../../.../../etc/passwd ”);
继续分析82行和84行函数a 和 函数b的功能
很简单,就是一个读取文件内容并且返回的功能。
这样就具备了一个任意文件下载漏洞的必要条件了,接下来就让程序逻辑走到 79行即可。
payload即为:
downloadserver?ptp=7&fid=../../../../../../../../etc/passwd&act=1
按照权限最小化原则,web应用应该使用非特权用户来启动,来控制应用所能影响的范围。
当我们访问一些 root用户 /root/.bash_history 或者 /etc/passwd目录时,应用会报错并提示。
但是实际上很多应用都是以root身份来启动,因为权限比较大,可以做到真正意义上的任意文件读取。 因此暴露出来的信息也非常多,通过搜索引擎可以搜索到大量的web应用都是用root权限。
可以被读到/etc/shadow
这是我收集到的部分shadow中加密的文件。
利用 工具 在本地进行离线破解。
最后只暴力破解了一台服务器。
如果管理员使用了弱口令来管理服务器的话,那我就能拿下更多的服务器了。
以上所述就是小编给大家介绍的《某客服系统任意文件读取漏洞分析》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
逆向工程权威指南
Dennis Yurichev(丹尼斯) / 安天安全研究与应急处理中心 / 人民邮电出版社 / 2017-3-1 / 168
逆向工程是一种分析目标系统的过程,旨在于识别系统的各组件以及组件间关系,以便于通过其它形式、或在较高的抽象层次上,重建系统的表征。 本书专注于软件的逆向工程,是写给初学者的一本经典指南。全书共分为12个部分,共102章,涉及X86/X64、ARM/ARM-64、MIPS、Java/JVM等重要话题,详细解析了Oracle RDBMS、Itanium、软件狗、LD_PRELOAD、栈溢出、EL......一起来看看 《逆向工程权威指南》 这本书的介绍吧!