Laravel项目被入侵了,请问该如何应对和解决呢?
大家好,前不久基于Laravel 7.0写了一个项目,后端主要是为客户端提供API接口来处理业务。API接口采用的是dingo
+ jwt
。
项目一直运行的没有问题,直到有一天,有用户反映号被盗了。具体表现就是用户没有进行任何操作,却发现自己的钱被提走了。
我们首先想到了是密码暴利破解,但是在观察了一下日志,却发现没有任何尝试密码登录的API接口日志。
而通过进一步分析日志发现,我们找到了黑客的IP,确实是黑客的IP 模拟了被盗号用户的Token,直接进行提现的。
JWT是我们一直在项目使用中使用的认证方式,而如今竟然被黑客“破解了”,因为他貌似知道用户ID,就可以模拟其TOKEN进行操作。
而JWT的秘钥一直存放在服务器上的,服务器走的是跳板机,理论上服务器本身是很难入侵的。那么他到底是怎么攻破系统的?
于是,我们继续分析日志,看到了这个IP曾经大量对我们的系统API接口进行各种注入和漏洞的渗透性测试,但是由于日志数据量过大和专业知识不足,我们目前不能得知黑客是通过哪一个接口漏洞最终破解了用户TOKEN。
虽然我们通过一些其他限制暂时保护了用户的资产安全,但是项目的漏洞一直存在,而且黑客近期也发送了邮件,进行了勒索,扬言不给钱就要销毁全部数据,公司老板也给了很大压力,认为PHP项目的安全性问题还是不足,当然我最终还是归结于自己知识能力的不足,无法应对这样的安全事件。
所以,我只得发帖,请教有经验和更专业的人士,给与我们一些技术性的指导和帮助?
目前,我们关注的就是如何能够查找和修复这个TOKEN漏洞,请求大家帮助~
附录 黑客尝试渗透的一些日志。
2020-08-04
昨天一天尝试了@fogwang 的建议,主要从JWT本身的问题上入手,尝试了NONE算法,公钥算法,以及KID攻击等手段,但由于只是储备不足,仍然没有破解出来。 希望有这方面经验的朋友给出一些建议。
可能是旁站攻击,网上有旁站扫描工具,根据你的服务器IP扫描该服务器上其它的项目,你公司服务器会不会有其他项目,比如使用过thinkPHP、dedeCMS等等有过重大安全漏洞的框架在运行?