前言
某log的后台getshell,偏鸡肋…
漏洞分析
1.越权登陆漏洞
在登陆后台的情况下,burp抓包,可以看到这里的cookie中有一项为EM_AUTHCOOKIE...
看着有点可疑,我们到源码中找一下
最终在config.php中找到相关信息,这里有一个AUTH_KEY和AUTH_COOKIE_NAME两项。
全局搜索可以在loginauth.php中找到AUTH_COOKIE_NAME的身影.在setAuthCookie()中。
跟进generateAuthCookie(),这个函数是用来生成cookie的
跟进其中的emhash(),这个函数将$user_login(username)和$key(AUTH_KEY)进行hash_hmac()的加密
跟进hash_hmac(),这就是一个加密函数。这个加密函数,所有加密元素,其中最重要的就是$key,而$key来自AUTH_KEY。那么只要我们获得了AUTH_KEY,那么我们便可以伪造cookie越权登陆后台。因为这里没有对密码有任何限制,但是前提是使用了相同的AUTH_KEY.所以鸡肋的很。
2.后台getshell
2.1getshell(1)
登陆后台后发现这里有一个允许文件上传的
我们在后台里写上php
这个类型,但是最后这个类型会被转换成x
查看源码,在configure.php中找到这么一句
如何绕过这个呢?我们找到上传附件的函数,在attachment.php
跟进getAttType()这个函数
get()函数是在数据库中查询att_type,然后返回结果作为白名单。
然后在后台有一个数据库备份和导入项,我们可以把数据库备份,找到这个字段的位置,修改后,再导入。
修改后导入
然后就可以上传php文件了…..
2.2getshell(2)
另外一处考虑在上传插件的getshell
然后我们跟进这个emUnzip()。这里使用ZipArchive对zip文件进行解压。然后获得一个压缩包内部目录/文件名,然后转换成数组,第一个元素作为$dir,而$dir的第一个元素又将作$pulgin_name作为php文件名。
所以最终构造一个压缩包
然后上传,getshell