文件包含导致的站点再次沦陷!

admin 2021年10月27日16:52:11文件包含导致的站点再次沦陷!已关闭评论78 views字数 1520阅读5分4秒阅读模式

继上篇应急处理后记。

上次经过排查黑客通过前端upload接口传马后,在框架文件中埋下后门,替换最新框架以及检查前后端控制器后,本以为已经完全封锁了攻击入口,但是态势感知新的告警接踵而至。

收到最新告警:发现安全事件站点根目录public下出现名为1ndex.php的木马文件”

 

图片

                            

 

 

图片

再次出现问题是在24号,同事告警的文件包括网站缓存日志24.log,在这其中发现一个关键的线索,log里面的木马内容经过base64解码后的内容和1ndex.php的内容完全一致

 

图片

这个日志是请求后台控制器的index方法,但是随即在index方法中并没有找到接受POST数据的参数reff。这就非常奇怪了,没有接受参数的变量,这串值怎么可以传入呢?而名叫reff的变量又是从哪里来的?定位木马文件第一次web访问的时间点日志,观察前后日志,并未发现任何有上传的接口,既然木马不是上传上来的,上次也把框架换了,那木马为何再次出现?

既然暂时没有任何头绪,看日志也发现不了异常点,就先去检查防火墙。为什么此次入侵防火墙没有将此流量阻断,原来是没有在安全组设置防火墙源站保护(将所有访问流量限制必须通过防火墙,其他来源流量全部禁止)。配好防火墙规则后,依旧还是要面对老问题,继续检查日志。

随即有了新发现

 

图片

在木马出现时间点,除了请求index方法外,也受到了此攻击ip请求render方法的报文,这个render方法是通过接收传入后台html页面的名字来起到渲染后台界面的作用,后面return数据是传入框架方法fetch后处理的值。

 

图片

但是,此post报文很奇怪,虽然是post数据,但是在日志中并未发现传入的template键值对(后面在测试站点测试发现,正常的是有传入值的,正是站点是黑客进攻后专门把这个抹除了,导致攻击入口找得非常困难)

这个方法受到攻击是因为传入了“包含木马信息的log文件绝对路径”,template接收后,导致的文件包含执行其中的php代码,从而生成的木马

 

图片

此测试成功在站点public目录生成指定文件ppp.txt

至此,找到了攻击的入口,接下来的问题就是如何修复,修复中也是由于过滤方案没有针对性而一波三折。

 



修复过程

既然黑客传入的template的值为log,那就直接在fetch方法中匹配log,如成功,则返回空,不继续执行,即无法包含成功。

 

图片

随即测试发现,如果不是利用log来包含呢?回不回再次出现此包含成功的问题呢?测试发现,图片包含可以做到。

这里上传木片马,通过代理拦截请求后,加入GIF89a图片特征,发现成功上传图片,通过返回图片的路径。

 

图片

图片

 

随后再次请求render方法,将图片的相对路径传入template变量

 

图片

发现再次成功包含,将jpg文件当成脚本文件php执行了,站点public目录成功生成jpg木马测试文件111.txt

 

图片

所以发现,光是过滤log是不可行,避免不了图片包含

随即研究正常传入template的值到底是什么,总结发现,正常的传入值是不带文件后缀的,即不能有“.”这个字符。所以采取过滤“.”的方案,带点即返回空不继续执行

 

图片

至此成功溯源此次“文件包含导致的传马”安全事件。

欢迎关注“浅渊安全”公众号,一同交流学习!

 

 


相关推荐: xStream 远程代码执行高危漏洞复现(CVE-2021-29505)

0x01  漏洞介绍xStream是一个Java对象和XML相互转换的工具,很好很强大。提供了所有的基础类型、数组、集合等类型直接转换的支持。因此XML常用于数据交换、对象序列化(这种序列化和Java对象的序列化技术有着本质的区别)xStream存在…

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年10月27日16:52:11
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   文件包含导致的站点再次沦陷!https://cn-sec.com/archives/601005.html