PHP_Code_Audit 盾灵投稿CMS_v1.0登陆权限绕过漏洞

代码审计(Code audit)是一种以发现程序错误,安全漏洞和违反程序规范为目标的源代码分析。

代码审计的内容包括:

            1.前后台分离的运行架构
            2.WEB服务的目录权限分类
            3.认证会话与应用平台的结合
            4.数据库的配置规范
            5.SQL语句的编写规范
            6.WEB服务的权限配置
            7.对抗爬虫引擎的处理措施
代码审计

盾灵科技(dunling.com)专注于网络智能系统的研究开发,基于PHP+MYSQL,针对网站自动流量系统具有多年的研究经验,为广大用户提供了安全,方便,智能,便捷,提高工作效率的智能系统程序。

盾灵投稿内容管理系统安装方便。配置好数据库,点击下一步即可完成安装:
网站首页

查看源代码目录结构:

admin:管理员后台目录(管理员的功能)

editor:编辑器

style,images,js:风格,图片,js

template:模板HTML

config.php:数据库配置文件

......
对于渗透测试人员比较关心的是后台的安全性,盾灵默认的管理员后台是/admin:
管理后台页面
查看一下管理后台的源代码/admin/index.php:
/admin/index.php

忽略乱码问题,主要关心这一段form表单:

<td><form method="post" action="login.php"><input tabindex="1" type="text" name="adminname" class="texta" onkeyup="value=value.replace(/[^\w\.\/]/ig,'')" /></td>
我们可以得到两个条件:
1.form表单限制了文本框的输入:
onkeyup="value=value.replace(/[^\w\.\/]/ig,'')"
文本框只能输入英文字母和数字,不能输入中文 。
2.form表单把我们输入的数据提交到login.php处理。

跟踪form表单提交查看login.php:
/admin/login.php

$adminname = $_POST['adminname']; $adminpass = $_POST['adminpass']; $adminpass .= "Axphp.com"; $adminpass = md5($adminpass); $adminsql = "select * from axphp_admin where adminname='$adminname' and adminpass='$adminpass'";
这段代码的意思是先获取到前面表单POST提交过来的数据,把adminpass字符串拼接后再经过MD5加密后传入查询的SQL语句中在数据库中验证。

但是这个SQL语句可以尝试绕过一下:

先修改源代码,echo出数据库报错语句,然后尝试抓包重放,通过截断SQL语句,造成权限绕过漏洞,不需要密码的情况下成功登陆后台。
截断以后的SQL语句为:
select * from axphp_admin where adminname='root' # ' and adminpass='$adminpass'

权限绕过,登陆成功

注:在 mysql 中 # 代表注释。


除了代码层的防御,在系统防御方面可以开启magic_quote_gpc

开启magic_quote_gpc=on之后,能实现addslshes()和stripslashes()这两个函数的功能。输入的注入攻击代码将会全部被转换,将给攻击者带来非常大的困难。

不过 一切皆可绕 ...欲知后事如何,请听下回分解。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转载自cr180大神DiscuzX2.5完整目录结构【source程序文件库】 /source/admincp后台...
    cndaqiang阅读 4,411评论 1 2
  • Php:脚本语言,网站建设,服务器端运行 PHP定义:一种服务器端的HTML脚本/编程语言,是一种简单的、面向对象...
    廖马儿阅读 6,644评论 2 38
  • MetInfo应用开发文档 1. 开发准备 1.1 前言 MetInfo应用制作介绍MetInfo企业网站管理系统...
    layjoy阅读 14,178评论 4 5
  • 漏洞挖掘与利用 测试环境的搭建 引言 为什么要搭建本地测试环境?我想下面的东西能够回答你的疑惑。 第二百八十五条 ...
    作业没写完阅读 8,549评论 0 4
  • 昨天中午的时候,女儿一本正经的问我:“妈妈,今天去买菜的地方,有一个老阿伯,拿着一个拐棍,还有一个碗。他碗里有一些...
    容止若思阅读 2,833评论 0 0