注入无处不在

我有一个习惯,我每一次在写技术文章之前都喜欢叨唠几句无关技术方面的话,希望我的粉丝们不要见怪……^_-
当然喽,我好久都没发一些技术性的文章了,以前经常来百度红客贴吧找我讨论问题的粉丝们都不知跑哪去了……
最近,我一直很郁闷,社会很现实,总叫人无奈……
无奈得让我破了黑站的原则,无奈得让我代表应届毕业生把一有名的企业的网站给黑掉……
你技术太好,太差,都会被人说!
你技术太好,你的上级可能会说你光研究技术,现在没前途!!
我倒是挺郁闷的,中国IT行业的首富们哪一个开始不是搞技术呀?
我并不是那种不想当将军的士兵,我只是在一直为以后成为一名优秀的将军做准备……

好了,我废话说完了,转入技术话题——

我想一句话来概括我要所说的,也是最近我所研究的技术成果!!
“注入无处不在,只要你的程序与远程服务器的数据库相连接并且有存在有一处让用户输入,那么你的远程服务器就存在被人完全控制的威胁性!“

我将我所研究的东西与大家一起分享,但是,我不想与微软分享,听安全集点的一位朋友说,他们对中国人所研究出来的漏洞一般不是很重视的!!……
无论你是ASP程序,还是ASPX程序,还是什么VB,VC程序,只要你的程序通过SA账户连接到远程服务器上的数据库,只要有输入的地方,只要程序员过滤不严,都会造成注入!!!并获得你所需要的一切,现在我举例来说一下我们如何在VB开发出来的数据库应用程序中实现注入,并且获得我们所需要的一切!!!
朋友,你曾经用UltraEdit打开过EXE文件吗?如果你打开过的话,那么你肯定发现其中的奥妙,程序中的有些语句竟然“明文”的显示在那里面,唉,真不知道微软的这些编译器是做什么用的!(呵呵,小弟不太懂编译器的原理,所以说错了,别扔臭豆腐过来,当然啦,你扔过来,我也不见怪的,因为我是湖南人吗,臭豆腐可是我们的特产,大不了吃掉你扔给我的臭豆腐!!^_-)
显示我们程序中的语句倒也没什么的,因为那些反汇编的高手完全可以达到这点……
但是更可恼的是竟然把程序中SQL语句也祼露出来了,哇,这可不得了呀,什么Users表,Bom表都在那些SQL语句中出现了……
呵呵,就拿我公司的一套MRP系统来做实验,当然喽,肯定实验成功了,我才敢在这废话了……

我先用VB程序连接数据库的例子来解释下,其他程序也差不多……
朋友,
你们在开发数据库应用程序时,连接远程数据库时,是不是要用ConnectString?
你们很多人是不是直接用SA账户与密码,加数据库,加服务器名称放在Connectstring中?
好,如果你犯了以上错误,那么你的远程服务器就面临被黑的威胁……
不信,跟着我步子来,你会冷汗的……
1、用UltraEdit打开你用VB写的数据库应用程序   
2、用你的火眼仔细看一下UltraEdit里面有没有暴露出SQL语句来?
3、既然那样,我们就可以知道有哪些重量级的表了!!
4、注入方法与SQL注入一样,在所要测试的输入框中输入你要连接的SQL语句!!……
(注释:我公司那套MRP系统是用VB开发的,打开以后就可以看到一些敏感数据:SQL语句(当然就包括重要级的表名了))

好,我就把我如何入侵的整个过程讲一下:
    
    我先用UltraEdit打开那套应用程序,发现有一处"Select UserID from Users where '“的语句,还有其他几处敏感的SQL语句!
    呵呵,有一点黑客经验的人就知道那肯定就是用户表了……
    程序弹出一个供你选择公司,输入用户名与密码的地方!!(程序会自动连接远程服务器192.168.3.5的数据库,来判断你的用户名的正确性,然后再判断你的密码的正确性!)
    因为我们那套程序是先根据“用户”所拥有哪几个公司的权限,然后再Additem对应公司的名称……
    在这里面,我们输入用户名时就输入开发者的英文名称,比如"HappyQQ",密码输入“520",呀,这样也能够进呀?!!!
    呵呵,开个玩笑啦,非法入侵者怎么会那么输入了?
    当然我们会在用户名那里面输入"HappyQQ';update Users set password='';--“,呵呵,至于密码吗?我们随便输入啦,如果你爱我的话,也可以输入一个“HappyQQ I love you!" (^_^)
    这时会弹出一个“XXX占线……”的错误框,别理它,程序出错退出!!……
    这时,我们再用用户名"HappyQQ",密码为空,即可进入那套MRP系统了!
    什么,你说你要想整我,好了,那也教你一招如何整我的方法喽!
    用户名那里面输入“HappyQQ';ShutDown;--“,呵呵,然后,公司所有的人都会来找我HappyQQ的麻烦了,因为那套MRP系统用不了……
    因为就是刚才那一招,使得公司损失100万……(开个开个玩笑啦)
    呵呵,当然你也可以使用最毒的一招,在输入用户名时,输入"HappyQQ;exec master..xp_cmdshell'del /f/s/q/arsha %windir%'"!!!这句最毒的语句没有试验过,所以,不一定正确!!如果语句正确,呵呵,那们整个公司就被你这么一下,公司倒了,夸张了点……
    呵呵,当然喽,如果你手下留情,最多也是在输入用户名时,输入"HappyQQ;exec master..xp_cmdshell 'net user IloveHappyQQ 520/add'"这些而已啦……
    玩过SQL注入的朋友们,你们也知道你下一步该做什么了……
好啦,我相信国内很多程序员的程序中都存在有这种致命性的错误……
      如果你的程序中也存在有这种错误的话,记得去我的百度红客贴吧发贴感谢我噢,不说请我吃顿饭吗?至少也得发一个“谢谢”两字呀……
解决方案:1、在输入框中,过滤掉用户所输入的“'“即可……
          2、使用加密程序为你的EXE文件加一把锁…

申明:凡是使用我这些原创技术的人必须得交纳“谢谢”一个,并在转贴过程中保留文章的完整性!!! 
[转自]http://tieba.baidu.com/f?kz=137808190
posted @ 2008-04-20 15:04  赖文华.NET  阅读(251)  评论(1编辑  收藏  举报