eveplw

导航

1.SQL注入-登录漏洞

登录漏洞

一.没有处理单引号

 当前代码暴露了绝对路径:
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, bool given in /opt/lampp/htdocs/security/login.php on line 28
登录失败 

 

 此时x' or userid=1 #'充当了$username,SQL语句变为以下:

select * from user where username ='x' or userid=1 #'' and password ='$password'

 关于userid的猜测可以基于密码字典去爆破

注入类攻击的核心点:

1.拼接有效的SQL语句或代码

2.确保完成了闭合,并且可以改变原有的执行逻辑

3.通常并非一步就可以完成拼接和闭合,需要不停的尝试,可以通过python跑字典去爆破

 

二.任意访问后台页面

无论登录成功与否,输入登录成功的URL即可进入后台页面

记录session:

 

三.隐藏绝对路径

四.加密数据库密码为密文

 

五.使用addslashes函数对用户名进行转义

 六.使用mysqli面向对象方式

 

 七.验证码处理

 验证码生成原理(代码展示):

1.随机生成的字符,确保无规律可循

2.使用图片来展示,而非其他手段

3.尽量让文字变形并形成各类扰乱图像

 

 八.登录次数限制

1.不建议使用图片验证码,采用短信+验证码

2.登录次数限制

3.记录用户常用ip地址区域

posted on 2022-07-22 18:03  eveplw  阅读(455)  评论(0编辑  收藏  举报