前言
在一个群里面看到的,本来不想乱搞,但好几个人都说这个站坑爹变态,我的好奇心驱使我去瞧瞧,于是就有了此篇文章。
正文
发现网站存在TP5的RCE漏洞,存在此高危漏洞还被大家说变态,一定有他的特别之处。于是首先查看了disable_functions函数看他禁止了那些函数
嗯…. 常规操作。禁止了一下函数,没啥可说。
passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server
但没有禁止assert 正常情况下即可通过file_put_contents函数直接写入恶意文件拿shell了
可目标站尝试写出文件提示失败了 一般失败的原因是根目录不可写 但一般情况下 uploads 目录是可写的 但目标连uploads都不可写 有趣!~
这个时候就该判断一下是否根本就没有写出的权限或者没有执行,尝试向/tmp/ 目录下文件成功 证明代码是能够执行的 只不过是没有权限写入而已
既然assert能够正常执行 那么就先探测一下可写入目录吧 改了改目录探测脚本然后丢到目标/tmp目录中
然后包含这个文件即可,可直接include 或者使用这个exp 别问为什么不直接包含个大马,因为大马的每次操作都要发包,且使用一下POC包含他不会接收别的值
_method=__construct&method=get&filter[]=think\__include_file&server[]=phpinfo&get[]=/tmp/xx
这就尴尬了嘛… 整个web目录都不可写 网站根目录是public 目录提示可写,但是还是写不进去东西,测试好几个目录都不行之后,就不去纠结此问题了,换个思路试试。 于是看看能不能反弹个shell
可disable_function限制的很死,不能直接执行cmd 于是尝试使用下面的脚本绕过
https://github.com/yangyangwithgnu/bypass_disablefunc_via_LD_PRELOAD
先将所需要的 .os 写入到目标服务器上
查看一下 发现所需的东西都写入了
完美,接下来就是反弹shell 了 我使用Python进行反弹 将反弹脚本写入到目标站中
先给权限 chmod 然后直接python执行