【PHP代码审计】越权操作、登陆密码爆破、截断注入

越权操作

【PHP代码审计】越权操作、登陆密码爆破、截断注入_第1张图片
可以post任意id,能导致任意用户的用户名被修改
在这里插入图片描述

直接把id带到了语句里面,没有对id进行判断
在这里插入图片描述

测试
先获取这三个的值
【PHP代码审计】越权操作、登陆密码爆破、截断注入_第2张图片
把下面的内容post到上面的页面
【PHP代码审计】越权操作、登陆密码爆破、截断注入_第3张图片

审计思路展现
POST id 可控
【PHP代码审计】越权操作、登陆密码爆破、截断注入_第4张图片
如何修复
不用post
在这里插入图片描述
登陆密码爆破
【PHP代码审计】越权操作、登陆密码爆破、截断注入_第5张图片
用burp抓包去掉session
然后就可以进行密码爆破了

删掉session。会重新生成,重新生成就是空的
【PHP代码审计】越权操作、登陆密码爆破、截断注入_第6张图片

继续删掉captcha,不传送信息
【PHP代码审计】越权操作、登陆密码爆破、截断注入_第7张图片
【PHP代码审计】越权操作、登陆密码爆破、截断注入_第8张图片
修复
加一个 判断session不为空
【PHP代码审计】越权操作、登陆密码爆破、截断注入_第9张图片
审计思路展现
直接访问不让他生成,两个都是空,相等,所以继续往下执行
【PHP代码审计】越权操作、登陆密码爆破、截断注入_第10张图片

截断注入
二次注入
除了截断还可以用字符集转换和反转义
【PHP代码审计】越权操作、登陆密码爆破、截断注入_第11张图片
看下代码
【PHP代码审计】越权操作、登陆密码爆破、截断注入_第12张图片

’ 过滤掉一个’
payload:,(),1);#
在这里插入图片描述

在这里插入图片描述
构造payload
在这里插入图片描述

修复
先加上过滤
【PHP代码审计】越权操作、登陆密码爆破、截断注入_第13张图片
在注册页面也要加上限制
用户名不可以有特殊字符,加个正则,用a-z A-Z 0-9去限制用户名【PHP代码审计】越权操作、登陆密码爆破、截断注入_第14张图片
修改用户名的地方也加上限制
【PHP代码审计】越权操作、登陆密码爆破、截断注入_第15张图片

审计思路展现
message条件没有经过sqlwaf过滤,然后找到user用户名设置的地方添加\去转义 ’
\在数据库中查询 就是 \

【PHP代码审计】越权操作、登陆密码爆破、截断注入_第16张图片

你可能感兴趣的:(【PHP代码审计】越权操作、登陆密码爆破、截断注入)