后端登录验证存在SQL注入漏洞,可绕过验证登录任意注册用户的个人中心
详细说明:全国微波毫米波会议:http://www.mws-cie.org/ncmmw2013/index.php
矮油,大牛们看到这个站点不要笑,其实这个站存在好多漏洞,xss、webshell、任意文件下载,实在是我这个菜鸟学习的好地方,顺便求个邀请码,希望在这里能和各位牛学习交流,共同进步~
一、确定后端登录验证机制:
登录使用email和password两个参数
构造email为
' or 1=1 or '1'='1,返回“用户名和密码错误”
构造email永假值
' and '1'='2,返回“Email不存在”
经过几次尝试与返回结果观察,后端应该不是直接同时使用email与password两个参数构造SQL查询看有无记录的,而是使用email查出用户信息,无记录则返回“Email不存在”,有记录则比对查询的密码与输入的密码,一致则成功,否则返回“用户名或密码错误”
二、构造注入参数,绕过验证机制:
自然想到了union查询,自己构造查询结果,然后password填入一致的值,即绕过验证了~
先确定查询列数,再确定password列的位置,经过几次尝试,构造了POST参数:
email=' and 1=2 union select '123',3,1,1,1,'1&password=123&Submit=登 录
三、登录过程:
这个系统是使用一个默认的PHPSESSID的session cookie值来确定用户登录与否的,因此首先浏览器打开站点首页,就会生成这么一个session,利用它以及上面构造的登录参数,登录后,这个session就成了有效的了~
四:继续:
继续研究发现,查询结果的第二列即用户ID,且是从1开始递增的,因此改变这个值,就可以登录任意用户个人中心啦~
虽然SQL漏洞本身危害巨大,但是考虑这个站点的受众人群都是其专业内的,因此或许危害不大~ 但是被恶意 利用了,也是很 的~
修复方案:
过滤传来的参数~
系统还存在很多常见漏洞,