漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2014-068312
漏洞标题:74cms (20140709) 9枚注入打个包
相关厂商:74c,s.com
漏洞作者: ′雨。
提交时间:2014-07-13 14:30
修复时间:2014-10-11 14:32
公开时间:2014-10-11 14:32
漏洞类型:SQL注射漏洞
危害等级:高
自评Rank:20
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2014-07-13: 细节已通知厂商并且等待厂商处理中
2014-07-16: 厂商已经确认,细节仅向厂商公开
2014-07-19: 细节向第三方安全合作伙伴开放
2014-09-09: 细节向核心白帽子及相关领域专家公开
2014-09-19: 细节向普通白帽子公开
2014-09-29: 细节向实习白帽子公开
2014-10-11: 细节向公众公开
简要描述:
不好好修改漏洞代码 而是修改过滤函数 虽然你们这过滤函数我绕不过。
但是过滤的还不是很完善, 还能出数据。
还是在修改过滤函数的同时好好修改下产生漏洞的代码把。
详细说明:
看过滤函数
这里开启了i模式而且replace成**** 之前是replace空还能绕过 现在我没办法了。
那就想办法绕过这些关键字。 可以看到过滤了union select 之类的常用的关键字。
WooYun: 74cms 最新版 注入1-3
WooYun: 74cms 最新版 注入4-7
WooYun: 74cms 最新版 注入8-9
这里 9枚注入 我下了个0709的看 没一处修改的 就是修改了过滤函数。
9处都是一样的 这里我就选一处来说就好了。
在plus/ajax_user.php中
这里涉及到了转码 之前也说得很清楚了。
錦 从utf-8 转换到 gbk为%e5%5c
单引号被转义后成\' \为%5C
两个%5C%5C又再闭合 单引号出来 所以造成了注入。
在这里由于过滤了关键字 但是还是能绕过。
利用substr来
当为正确的数据的时候会返回false 因为是正确的会查询出来
这里是检测是否重复 查询出来就说明重复了 就返回了false。
这里我自己写了个小脚本。
- - 我不会php 挺简单的东西折腾了半天。
漏洞证明:
$content="email=x%E9%8C%A6' or if(ascii(substr(left(password,$yu),$yu,1))=$i,1,null)%23";
看这语句 没含有过滤的关键字 所以可以成功。
修复方案:
在继续完善过滤函数的同时也改改这九处转换编码的地方。
在修改过滤函数的同时好好修改下产生漏洞的代码把。
版权声明:转载请注明来源 ′雨。@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:20
确认时间:2014-07-16 16:03
厂商回复:
感谢反馈!
最新状态:
暂无