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

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

缺陷编号:wooyun-2013-027638

漏洞标题:8090修改任意账号密码,SQL注入(sa权限,利用xp_cmdshell可执行任意命令)

相关厂商:8090.com

漏洞作者: shack2

提交时间:2013-07-04 12:44

修复时间:2013-07-09 12:45

公开时间:2013-07-09 12:45

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-07-04: 细节已通知厂商并且等待厂商处理中
2013-07-09: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

修改模特妹子的密码不是梦,屌丝们还在为你们的女神烦恼吗?
看上哪个妹子了,你们就直接向8090冲,妹子在等着你们。。。
可修改任意账号密码,还能注入,这个洞是奇葩么,不是奇葩

详细说明:

漏洞引发原因是由于找回密码处,未对用户名和邮箱名做参数过滤,导致SQL注入,注入的同时呢,可以直接将邮件发到您指定的任意邮箱,就可以找回密码了。
1.
判断sql注入:用户名输入:a' and 1=1--,其中'单引号闭合前面的sql,--注释后面的sql语句

1.jpg


提示发送成功

2.jpg


用户名输入:a' and 1=2--,页面提示输入不正确!,这样说明这里存在sql注入
经测试,可以盲注,也可以显错注入
2.测试获取数据

5.jpg


3.修改任意账户密码,同理用户名输入:a' And 1=1--
我们初步假设密码找回程序逻辑:

String username=用户输入;
String email=用户输入;
String find_pwd_sql="select * from user where username='"+username+"' and email='"+email+"'";
//rand一个key
//调用sendEmail("找回密码URL")发送找回密码链接,这里逻辑上有一个问题,即使查询为真,这里发送找回密码的邮箱,也应该向数据库查询到的账户邮箱里发,而不是为了方便直接向用户输入的邮箱发送找回密码邮件。
求Rank,求妹子
//当username为:a' and 1=1--时
find_pwd_sql="select * from user where username='a' and 1=1--' and email='[email protected]'";
由于注释了后面的sql,实际上
find_pwd_sql="select * from user where username='a' and 1=1"
//查询结果就为真,最后找回密码邮件就发出去了


2_2.jpg


修改密码也确实可以

2_3.jpg


那么修改他人账号密码,输入:他人账户名' and 1=1--,邮箱输入:您的邮箱,这样就能修改任意账号密码了。

漏洞证明:

漏洞引发原因是由于找回密码处,未对用户名和邮箱名做参数过滤,导致SQL注入,注入的同时呢,可以直接将邮件发到您指定的任意邮箱,就可以找回密码了。
1.
判断sql注入:用户名输入:a' and 1=1--,其中'单引号闭合前面的sql,--注释后面的sql语句

1.jpg


提示发送成功

2.jpg


用户名输入:a' and 1=2--,页面提示输入不正确!,这样说明这里存在sql注入
经测试,可以盲注,也可以显错注入
2.测试获取数据

5.jpg


3.修改任意账户密码,同理用户名输入:a' And 1=1--
我们初步假设密码找回程序逻辑:

String username=用户输入;
String email=用户输入;
String find_pwd_sql="select * from user where username='"+username+"' and email='"+email+"'";
//rand一个key
//调用sendEmail("找回密码URL")发送找回密码链接,这里逻辑上有一个问题,即使查询为真,这里发送找回密码的邮箱,也应该向数据库查询到的账户邮箱里发,而不是为了方便直接向用户输入的邮箱发送找回密码邮件。
//当username为:a' and 1=1--时
find_pwd_sql="select * from user where username='a' and 1=1--' and email='[email protected]'";
由于注释了后面的sql,实际上
find_pwd_sql="select * from user where username='a' and 1=1"
//查询结果就为真,最后找回密码邮件就发出去了


2_2.jpg


修改密码也确实可以

2_3.jpg


那么修改他人账号密码,输入:他人账户名' and 1=1--,邮箱输入:您的邮箱,这样就能修改任意账号密码了。

修复方案:

对账户名参数,邮箱参数做过滤,过滤一些sql注入关键字符,如:',-,and,=等关键字符

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


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2013-07-09 12:45

厂商回复:

最新状态:

暂无