这次找了个发卡平台,url:  https://files.cnblogs.com/files/b1gstar/kamiphp.zip

从52破解上下载的 :

先把网站搭建起来。

网站没有采用mvc框架。

首页的getkm.php ,放眼望去就是个sql注入。

if(!empty($_POST['tqm'])){
$tqm = $_POST['tqm'];
$sql = "select * from ayangw_km
where out_trade_no ='{$tqm}' or trade_no = '{$tqm}' or rel = '{$tqm}'
ORDER BY endTime desc
limit 1"; $res = $DB->query($sql);
echo $res;

看了下包含的通用文件,其中有:

if(is_file(SYSTEM_ROOT.'360safe/360webscan.php')){//360网站卫士
require_once(SYSTEM_ROOT.'360safe/360webscan.php');
}

作者原意是采用360webscan来防护,我下载的包中没有。

即使定义了通用的转义函数,但是此处也没有引用。

function daddslashes($string, $force = 0, $strip = FALSE) {
!defined('MAGIC_QUOTES_GPC') && define('MAGIC_QUOTES_GPC', get_magic_quotes_gpc());
if(!MAGIC_QUOTES_GPC || $force) {
if(is_array($string)) {
foreach($string as $key => $val) {
$string[$key] = daddslashes($val, $force, $strip);
}
} else {
$string = addslashes($strip ? stripslashes($string) : $string);
}
}
return $string;
}

继续往下读,根目录的ajax.php,又是一个很low的sql注入:

if(empty($_GET['act'])){
exit("非法访问!");
}else{
$act=$_GET['act'];
} switch ($act){
//异步获取商品
case 'selgo':
$select = "<option>请选择商品</option>";
$tpID = $_POST['tyid'];
$sql = "select * from ayangw_goods where state =1 and tpId = ".$tpID;
$res = $DB->query($sql);
$i=1;

至此,我就不在关注sql注入漏洞了。

前台主要功能就是购买商品了。这里用的是一个叫彩虹易支付接口,有签名校验,也有判断前台是否修改价格的代码,由于支付平台需要花钱注册和认证商户,我就跳过去了。

我们来看后台:

发现可以直接伪造cookie登录。后台index.php:

 <script type="text/javascript">
if($.cookie("user") == null || $.cookie("user") == "" || $.cookie("loginInfo") != $.md5($.cookie("pass"))){
window.location.href='./login.php';
}else{
if (typeof c == 'undefined') window.close();
}

通过postman伪造:

后台文件文件都包含了head.php head又包含了common.php,这个common又包含了member.php,其中有:

if(isset($_COOKIE["admin_token"]))
{
$token=authcode(daddslashes($_COOKIE['admin_token']), 'DECODE', SYS_KEY);
list($user, $sid) = explode("\t", $token);
$session=md5($conf['admin'].$conf['pwd'].$password_hash); if($session==$sid) {
$islogin=1;
}
}

但是这里只是用来验证cookie中token是否正确,并没有验证登录。

看了下后台几个php文件,都是sql的增减删改功能,通篇注入。ajax.php直接调用即可。

审计结束。就算是了解一下发卡平台吧。。。。。。。。。。。

PHP-CMS代码审计(4)的更多相关文章

  1. 某cms代码审计

    前言   前几个礼拜上课老师带着挖cms的洞,挖出个cookie反序列化注入漏洞,和报错注入并且提交了cnvd.昨天去找源码的时候发现它更新了一个版本,更新日志上也没说修复,就想着看看漏洞还存不存在, ...

  2. 对Emlog 6.0 Beta的完整代码审计过程

    Emlog 6.0 beta版本,这可能是最后一篇关于PHP语言CMS的代码审计文章,此次将详细记录完整的审计过程. 文章基本上完整记录小东的对此CMS审计过程,或许显得繁琐,但代码审计的过程就是这样 ...

  3. 一个CMS案例实战讲解PHP代码审计入门

    前言 php代码审计介绍:顾名思义就是检查php源代码中的缺点和错误信息,分析并找到这些问题引发的安全漏洞. 1.环境搭建: 工欲善其事必先利其器,先介绍代码审计必要的环境搭建 审计环境 window ...

  4. 熊海CMS xhcms v1.0代码审计

    有空的时候就进行小型CMS的代码审计,这次审计的对象是熊海CMS v1.0 本地环境安装好了之后,可以看到提示安装了锁文件 说明重装漏洞应该不会存在了,这时候丢进seay代码审计系统的代码也出结果了, ...

  5. [代码审计]青云客Cms前台有条件注入至getshell,后台xss至getshell、至弹你一脸计算器

    之前写了一篇关于青云客cms的文章,发在了t00ls,就不copy过来了. 给个链接,好记录一下. https://www.t00ls.net/thread-43093-1-1.html

  6. [代码审计]云优cms V 1.1.2前台多处sql注入,任意文件删除修复绕过至getshell

    0X00 总体简介 云优CMS于2017年9月上线全新版本,二级域名分站,内容分站独立,七牛云存储,自定义字段,自定义表单,自定义栏目权限,自定义管理权限等众多功能深受用户青睐,上线短短3个月,下载次 ...

  7. 【代码审计】JTBC(CMS)_PHP_v3.0 任意文件上传漏洞分析

      0x00 环境准备 JTBC(CMS)官网:http://www.jtbc.cn 网站源码版本:JTBC_CMS_PHP(3.0) 企业版 程序源码下载:http://download.jtbc. ...

  8. 【代码审计】JTBC(CMS)_PHP_v3.0 任意文件删除漏洞分析

      0x00 环境准备 JTBC(CMS)官网:http://www.jtbc.cn 网站源码版本:JTBC_CMS_PHP(3.0) 企业版 程序源码下载:http://download.jtbc. ...

  9. 代码审计之Catfish CMS v4.5.7后台作者权限越权两枚+存储型XSS一枚

    首先本地搭建环境,我所使用的是Windows PHPstudy集成环境.使用起来非常方便.特别是审计的时候.可以任意切换PHP版本. 本文作者:226safe Team – Poacher 0×01 ...

  10. PHP代码审计5-实战漏洞挖掘-cms后台登录绕过

    cms后台登录绕过 练习源码:[来源:源码下载](数据库配置信息有误,interesting) 注:需进行安装 1.创建数据库 2.设置账号密码,连接数据库 3.1 正常登录后台,抓包分析数据提交位置 ...

随机推荐

  1. C语言博客作业8

    本周作业头 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 作业地址 我在这个课程的目标是 熟练运用C语言来写代码 这个作业在那个具体方面帮助我实现目标 while语句的运用 参考文献 ...

  2. (.text+0x18): undefined reference to `main'

    在将VS中的程序移植到ubuntu中出现的一个问题,主要原因是在vs中默认的主函数写成int _tmain(), 而在gcc编译时要找的是int main().改过来就可以了.

  3. centos7安装mysql-5.7.28

    mysql是我们最常用的开源的关系型数据库,mysql不同版本有时候安装的方式也不尽相同,下面以mysql5.7.28版本为例梳理一下安装细节: 1.下载mysql-5.7.28,URL:https: ...

  4. Ceph 存储集群-低级运维

    低级集群运维包括启动.停止.重启集群内的某个具体守护进程:更改某守护进程或子系统配置:增加或拆除守护进程.低级运维还经常遇到扩展.缩减 Ceph 集群,以及更换老旧.或损坏的硬件. 一.增加/删除 O ...

  5. VS debug下为什么多此一举jmp函数地址?

    VS debug下为什么call 函数后,会jmp函数地址?多此一举? http://blog.csdn.net/viper/article/details/6332934 在写跑在main之前的时候 ...

  6. C# 多态和接口

    1多态可以有属性,接口只有方法 2关键字不同,多态有静态多态(abstract)和动态多态(virtual),静态多态不能new()出自己,动态多态可以;多态中可以有自己的方法可设置不需要子类重写,接 ...

  7. Codeforces_714_B

    http://codeforces.com/problemset/problem/714/B 当不同大小整数有1.2个时,肯定成立,3个时,需要判断,大于等于4个,则肯定不成立. #include & ...

  8. Springboot笔记(二)整合

    1.整合Freemarker 一种模板引擎,前端渲染模板的,类似于EL,jsp,不过比前两个好用 导入很简单   pom.xml <dependency> <groupId>o ...

  9. Java中类的关系

    在java里类的关系大致分为三种, 1.继承(a is b):继承extends,实现implement 2.包含(a has b):组合>聚合>关联.关系亲密度越来越小,一个类在另一个类 ...

  10. 05-Spring02-AOP

    今日知识 1. AOP 2. AspectJ 3. JdbcTemplate AOP 1. AOP :Aspect Oriented Programming,意为面向切面编程,通过预编译方式和运行期动 ...