 |
真实遭遇逻辑错误造成的漏洞 |
|
|
| 真实遭遇逻辑错误造成的漏洞 |
|
| 作者:佚名 文章来源:不详 点击数: 更新时间:2007-1-25 10:57:59 |
|
前一阶段,我个人网站的聊天室系统出现了问题,聊天室出现了很多异常大小和样式的头像。。让我很困惑,按照常理,用户可以选择的头像都是我所放入用户头像商店的。。但是其他的头像是怎么来的呢?
因为聊天室系统是租用的,不是我开发的,很容易想到的就是程序可能存在漏洞,而且十有八九是SQL注入。。
于是和管理员索取了整套的管理系统的源代码,发现的确有注入点,感觉问题找到了。。但是修补之后,发现问题没有缓解的意思。。我又在考虑,如果真的是注入的方式,这些网友应该会增加一批管理员。。随后又重新审计了几次代码。。终于发现了逻辑错误。。
由于这个系统是多用户版本的。。用户头像商店这个表有一个roomid表示哪个聊天室的用户具有这个头像。平时添加对应用户的头像的命令是正确的,把头像update给这个房间的这个用户,但是呢,购买头像超过1个之后,逻辑上把原来的4号记录给3号,3号记录给2号,2号给1号,1号空出来,把新的提交给他,是这样写的:
sql="update usericon set usericonm='"&rs2("usericon4")&"' , usericon4='"&rs2("usericon3")&"' , usericon3='"&rs2("usericon2")&"' , usericon2='"&rs2("usericon1")&"' , usericon1='"&rs("usericon")&"'where username='"&session("username")&"'"
尽管之前调出图片地址的时候是:
rs2.Open "Select * From usericon where roomid='"&session("roomid")&"' and username='"&session("username")&"'",conn,1,3
他认为一个用户只能从这个数据集里边获得新的头像的url是当前用户必须符合当前的session("roomid")。。可他没有考虑到当前用户可能在两个聊天室注册同样的名字,这样就可以获得两房间的头像的。。
当然了。。这些仅仅是外因。。。这仅仅是一个作案的条件。。毕竟不是所有的新用户都可以直接购买非常大的头像。。后期也有一些竞争等等的原因,别人的聊天室给我们的用户“定做”了一批。。这些东西就不在讨论了。。大家写程序的时候,一定要注意类似的逻辑错误。。不要出现能让一个分公司的会计,可以修改所有分公司的人的帐目类似漏洞。。 【转自世纪安全网 http://www.21safe.com】
|
|
| 新闻录入:admin 责任编辑:admin |
|
|
上一篇新闻: 动感商城购物系统暴库漏洞 下一篇新闻: 多个Telnet客户端env_opt_add()缓冲区溢出漏洞 |
|
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|
|
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
|
|
|
|
|