PHP代码审计 15 实战盾灵投稿系统 cookie 后台绕过漏洞

本文记录 PHP 代码审计的学习过程,教程为暗月 2015 版的 PHP 代码审计课程

PHP 代码审计博客目录

1. 简介

盾灵投稿系统 脚本之家下载链接

互联网上下载源码,自己搭建一下就好了

我搭建的本地系统位置为 http://10.10.10.130/dunling,是在 Metasploitable-linux2 上面改的,本系统需要修改 mysql 密码不为空,需要在 phpmyadmin 上面创建一个数据库。

mysql 默认为空,需要修改数据库密码

use mysql;
update user set password=password('asd123456') where user='root' and host='localhost'; 

# 命令行模式下重载权限表
mysqladmin -u root -p -h 10.10.10.130 reload

创建数据库

PHP代码审计 15 实战盾灵投稿系统 cookie 后台绕过漏洞_第1张图片

即可安装盾灵投稿系统

如果需要使用 mysql 空密码登录,只需要修改 /var/www/phpMyAdmin/libraries/config.default.php 文件即可

$cfg['Servers'][$i]['AllowNoPasswordRoot'] = true;

2. 后台登录绕过

  1. 使用注释绕过

    1. 查看源码

      dunling/admin/login.php

       
      
    2. 绕过

      浏览器执行 http://10.10.10.130/dunling/admin/

      PHP代码审计 15 实战盾灵投稿系统 cookie 后台绕过漏洞_第2张图片

      打开 firefox 的 HTTP Header live 插件

      输入账号(admin)和密码(任意内容)

      会弹出 HTTP Header live 页面

      PHP代码审计 15 实战盾灵投稿系统 cookie 后台绕过漏洞_第3张图片

      修改数据并且提交

      账号位置输入 admin ‘#
      此处的 admin 确实是此 cmd 的账号名,’ 为数据库闭合, # 为注释

      PHP代码审计 15 实战盾灵投稿系统 cookie 后台绕过漏洞_第4张图片

      点击下面的 发送,浏览器页面会刷新进入到 cmd 里面,绕过成功。

  2. 使用 ’ or 1=1 绕过

    1. 查看源码

    上述源码中引用了 axadmin.php 和 axphp.php 文件

    查看 axadmin.php 源码,发现调用了 check.php 文件

    查看 check.php 文件源码可以发现此文件为登录权限的判断机制

     
    

    上述源码中仅仅是判断 cookie 是否存在来作为用户是否登录的凭证

    1. 绕过

    启动 burpsuite ,开启截断功能

    浏览器访问 http://10.10.10.130/dunling/admin/admin_pass.php

    由于 admin/admin_pass.php 页面为登录之后才可以访问的页面,随意类似于这个的页面都可以作测试页面

    PHP代码审计 15 实战盾灵投稿系统 cookie 后台绕过漏洞_第5张图片

    将此页面发送到 Burpsuite 的 Repeater 中

    PHP代码审计 15 实战盾灵投稿系统 cookie 后台绕过漏洞_第6张图片

    提交之后的页面为已绕过登录的页面

你可能感兴趣的:(代码审计)