>> 欢迎您, 傲气雄鹰: 重登陆 | 退出 | 注册 | 资料 | 设置 | 排行 | 新贴 | 精华 | 管理 | 帮助 首页

  小榕软件实验室
  刀光雪影
  【原创】httpodbc.dll做了些什么,兼谈idc?..
发表文章 发表涂鸦
  回复数:6  点击数:337 将此页发给您的朋友        
作者 主题: 【原创】httpodbc.dll做了些什么,兼谈idc数据库原理 回复 | 收藏 | 打印 | 篇末
onenight帅哥哦
级别:中级站友
威望:0
经验:0
货币:84
体力:3.8
来源:61.140.90.*
总发帖数:64
注册日期:2002-03-17
查看 邮件 主页 QQ 消息 引用 复制 下载 

当今流行的网络数据库技术主要有三种:idc(互联网数据连接);rdo(远程数据对象);ado(高级数据对象)。
基于ado的数据库连接主要用在本地数据库操作上;基于rdo的数据库连接主要用在(asp)web 数据库上或vb的C/S数据库编程上。idc的是仅用于web数据库上。
关于asp+sql的侵入网上有很多经典教程,在本论坛里也有很多精辟的见解。我主要想说说idc数据库的原理,拓宽一下思路,大家一起来看看idc数据库连接有没有什么可以利用的地方。
先讲讲idc的工作原理:
一个典型的idc数据库操作(以下由查询为例加以介绍)是由以下几个文件构成的:
htm文件:用于和用户的交互,取得查询操作的信息。
idc文件:含有有odbc数据源及sql语句等信息的文本文件。httpodbc.dll将idc查询参数通过odbc数据源得到一个查询结果,并将此结果传递到模板文件(.htx)。
htx文件:模板文件,由html语句及含有查询结果的一系列变量组成。它向用户显示查询结果。
很明显基于idc技术的数据库连接和asp有很大不同,就是他不单纯由iis来控制整个操作。而是加上了httpodbc.dll来对idc文件进行解析。

一个search.idc文件实例:
括号为注释内容
Datasource:Ex1 (odbc数据源的名称,通过控制面板中的odbc数据源来添加)
Usernamescreen.width-300)this.width=screen.width-300'>a (用户名)
Password: (口令)
Templatescreen.width-300)this.width=screen.width-300'>earch.htx(查询结果输入那个模板文件)
SQLStatement:(sql语句,下面是详细内容,可以分段,但要用+号连接)
+SELECT name,age, sex, phone
+from people
+where name='%txtname%' ('%txtname%'即是从htm文件中获得的查询参数)

按照正常的攻击思路应该是在提交txtname这个参数时加入进攻的语句如:
http://127.0.0.1/scripts/search.idc?txtname=aa';exec master.dbo.xp_cmdshell "net user onenight onenight/add"
可是这时httpodbc返回的内容是检索到0个记录(假设系统有aa这个记录)。怎么会有这种现象发生?首先让我们看看经过httpodbc解码后返回的txtname内容吧:
aa'';exec master.dbo.xp_cmdshell "net user wjd wjd/add"
请注意:aa'已经变成了aa''
按照我的理解此时如果a'变成了a''sql server应该提示错误才对,可sql提示的却是找到0个记录。看来另有蹊跷。打开sql.log分析以下刚才的查询:

inetinfo 28c-2b8    ENTER SQLExecDirect
        HSTMT 015F25E0
        UCHAR * 0x00B5ECE0 [ 117] " SELECT NAME,AGE, SEX, PHONE, email from people where name='aa'';exec master.dbo.xp_cmdshell "net user onenight onenight/add"'"
        SDWORD 117

inetinfo 28c-2b8    EXIT SQLExecDirect with return code 0 (SQL_SUCCESS)
        HSTMT 015F25E0
        UCHAR * 0x00B5ECE0 [ 117] " SELECT NAME,AGE, SEX, PHONE, email from people where name='aa'';exec master.dbo.xp_cmdshell "net user onenight onenight/add"'"
        SDWORD 117


其中inetinfo说明连接的对象是iis。return code 0说明前面的 ENTER SQLExecDirect 的语句执行成功。将sql语句剥离出来分析:
SELECT NAME,AGE, SEX, PHONE, email from people where name='aa'';exec master.dbo.xp_cmdshell "net user onenight onenight /add"'

接合iis返回的信息我们可以分析出httpodbc.dll 做了什么工作:
它将凡是有单引号的地方再重复一次单引号,由此保证了整个字符串单引号的完整性进而逃脱了攻击。



[ 此消息由 onenight 在 2002-04-05.21:50:56 编辑过 ]

编辑 删除 发表时间发表于 2002-04-05.20:52:17   MSIE 5.01 Windows 2000IP: 已记录
onenight帅哥哦
级别:中级站友
威望:0
经验:0
货币:84
体力:3.8
来源:202.104.49.*
总发帖数:64
注册日期:2002-03-17
查看 邮件 主页 QQ 消息 引用 复制 下载 

如果大家觉得这种“补全算法”有什么漏洞,可以提出来一起研究

编辑 删除 发表时间发表于 2002-04-05.23:55:31   MSIE 5.01 Windows 2000IP: 已记录
0BIRD帅哥哦
级别:本站元老
威望:0
经验:0
货币:910
体力:40
来源:来自黑龙江省
总发帖数:1027
注册日期:2002-03-17
查看 邮件 主页 QQ 消息 引用 复制 下载 

我先把你的精品文章下载下来
----------------------------------------------------------
http://bbs.netxeyes.org/image/bbs3000/affix/20020603023845.jpg

编辑 删除 发表时间发表于 2002-04-06.17:34:44   MSIE 5.0 Windows 98IP: 已记录
0BIRD帅哥哦
级别:本站元老
威望:0
经验:0
货币:910
体力:40
来源:来自黑龙江省
总发帖数:1027
注册日期:2002-03-17
查看 邮件 主页 QQ 消息 引用 复制 下载 

T这么漂亮的东东为何无人看???
----------------------------------------------------------
http://bbs.netxeyes.org/image/bbs3000/affix/20020603023845.jpg

编辑 删除 发表时间发表于 2002-04-25.10:35:18   MSIE 5.0 Windows 98IP: 已记录
傲气雄鹰帅哥哦
级别:本论坛版主
威望:0
经验:13
货币:3335
体力:100
来源:云南昆明
总发帖数:1559
注册日期:2002-01-21
查看 邮件 主页 QQ 消息 引用 复制 下载 

不错
----------------------------------------------------------
本论坛不欢迎如下类型的帖子,此类帖子会被关闭或删除,本人恕不回复。
一,刀光雪影完全无关
二,无内容或内容过于简单,标题无意义的
三,个人联系的帖子。和标题为“某某请进”之类的
四,要求代破密码的
五,同一帖子多次重复的,灌水的
六,政治敏感话题,语言不文明,攻击他人的
七,溯雪手册中已有详细介绍或前面帖子中已有大量回复的

编辑 删除 发表时间发表于 2002-04-25.12:05:54   MSIE 5.01 Windows 2000IP: 已记录
蔚蓝元素帅哥哦
级别:老 站 友
威望:0
经验:0
货币:1147
体力:70.9
来源:其它
总发帖数:268
注册日期:2002-02-28
查看 邮件 主页 QQ 消息 引用 复制 下载 

9494~~
----------------------------------------------------------

编辑 删除 发表时间发表于 2002-04-25.13:53:42   MSIE 5.01 Windows 2000IP: 已记录
神仙姐姐美女哟
级别:风云使者
威望:0
经验:9
货币:3051
体力:32
来源:紫禁城
总发帖数:1081
注册日期:2002-01-28
查看 邮件 主页 QQ 消息 引用 复制 下载 

自己写的吗?太起来很复杂呀
----------------------------------------------------------
淡泊明志,宁静至远;请别害我,我是好人!

编辑 删除 发表时间发表于 2002-04-25.15:34:19   MSIE 5.0 Windows 98IP: 已记录
选择回复        
 快速回复主题: >>>高级模式
  用户名: 没有注册? 密码: 忘记密码?
记住密码
HTML语法
禁止IDB代码
禁止表情字符

[按 Ctrl+Enter 快捷键可直接提交帖子]
 投票评分: 共 0 票  
所有时间均为: 北京时间 ↑TOP 
关闭主题 拉前主题 移动主题 主题置顶 取消置顶 总固顶主题 取消总固顶 加入精华 移出精华 删除主?/a>