webug4.0(越权漏洞)

人过留名,雁过留声
人生天地间,凡有大动静处
必有猪头

环境准备

Phpstudy
Sublime
Firefox
Webug4.0源码
https://github.com/wangai3176/webug4.0

环境搭建

  1. 把 Webug4.0 源码放在 Phpstudy 的 WWW 目录下。
  2. 按照 Webug4.0 源码中 sql 文件夹下的 .sql 文件名创建三个数据库,导入 .sql 文件的时候注意将字符集编码选定为 utf8。
  3. 修改data目录下的dbconfig和dbconn文件,修改为自己的数据库账号密码和数据库名。
  4. 建议将源码文件夹名修改为 pt_env ,因为在有些文件下有重定向地址,如
    /control/auth_cross/cross_auth_passwd.php文件下的一段代码,意思为重定向到 /pt_env/control/auth_cross/ 路径下的 cross_auth_passwd2.php 文件,如果源码的文件夹命名为其他,那将会重定向错误。如果要改下面重定向的地址也可,但是会有多处改动,很麻烦。
header("Location:/pt_env/control/auth_cross/cross_auth_passwd2.php?id={$id}")

越权漏洞靶场(ID:22)

网站的登录账号/密码:admin/admin

22号靶场(cross_auth_passwd.php)

在这里插入图片描述

源码分析

POST 提交参数
参数没有过滤
单引号引用参数并直接拼接 SQL 语句
根据查询的结果,如果存在该账户则获取该账户条目对应的 id,并拼接在 URL 后面。
存在明显的 SQL 注入漏洞

在这里插入图片描述

漏洞利用

使用万能钥匙登录
账号/密码:' or 1=1 -- /111 
(ps:注释符后面要接空格,密码可以随意,因为会被注释掉,但不能为空,因为源码有验证账号和密码不为空。)

登录进来之后是一个修改密码界面,这里还可以注意到 URL 中的 id=2,这是由于之前用万能密码遍历到最后一个账户登录的结果。在这里可以做一个大胆的猜想,修改 id 的值应该是可以直接修改其他账户的密码的。
在这里插入图片描述
为了更直观地验证这一猜想,来看一下数据库和 cross_auth_passwd2.php 的源码。

数据库

id=1 是管理员账号/密码
在这里插入图片描述

源码分析(cross_auth_passwd2.php)

获取 id/oldPassword/newPassword 三个参数,且不能为空
实际上没有对 oldPassword 的真实性做一个验证,且真正利用到的参数只有 newPassword 和 id

在这里插入图片描述

漏洞利用

直接修改 URL 里面的 id 值就可以修改管理员的密码。

① 方法1

直接在 URL 地址栏修改,刷新一下页面后就能进行管理员密码的修改

② 方法2

打开 f12 开发者工具,编辑和重发消息头。
在这里插入图片描述
这样,管理员的密码就被修改成功。
在这里插入图片描述

                                                                                                                                  猪头
                                                                                                                               2020.2.7
发布了21 篇原创文章 · 获赞 3 · 访问量 639

猜你喜欢

转载自blog.csdn.net/LZHPIG/article/details/104202075
今日推荐