前言

并非有意愿要审计该站,前面的走的黑盒没有过于精彩部分就不在贴上了,对于此系统站你们懂的,多说无益,这套程序是开源的,像这种自助提卡系统相信大家已经不在陌生了,很多违法网站通过这种平台方式提卡密的相当于购买邀请码,源码是小伙伴提供的,采用的是php+mysql进行开发的24小时自动售卡平台,废话就不多说了。

相关环境

源码信息:你猜啊

漏洞类型:Forwarded-For注入

搭建成功之后如下 :

看到如下页面是不是有似曾相识的感受:

上图是安装过后的首页,就是一个提卡网,继续吧!

这是首页文件,进去首先判断了install目录下的lock文件是否不存在并且判断是否有index.php文件,如果满足以上条件就跳转到install目录下的index.php,我们跟进install/index.php文件:

这里我们只看判断是否安装过程序,判断是否存在lock文件并且step不等于5的情况下就执行判断语句中的代码,当然这里如果header函数后没有exit就会存在重装漏洞。

我们接着看index.php,光是index.php文件就用413行代码,代码都不规范,所以我们先看看其它文件,看看api.php文件:

这里很明显我们看到了SQL注入,首先判断是否设置了$_POST[“dh”]再判断$_POST[“dh”]不为空则将该参数拼接到SQL语句中,看到这里就可以判断出该程序存在联合查询注入,可是$config哪来的,这个文件也没包含其它的文件啊!!!怎么办呢?那么我们就来找找index文件中是否包含了api.php,search一下

可以看到在294行这里包含了api.php文件,我们构造下放入sqlmap中玩一玩。

Python sqlmap.py -u “http://localhost:8081/index.php” --batch --dbms=”mysql” --data=”dh=a”

这里可以看到注入类型确实是联合查询,我们接着尝试下这个提卡网是否存在SQL注入。

Python sqlmap.py -u "http://lxxxxx.pw/index.php" --batch --dbms="mysql" --data="dh=a"

我们尝试本地站点的时候毫无问题,为什么这个提卡网就没有存在这个问题了呢?很明显这个网站可能是升级或者二开发过的,我们接着看看其它点,进入./pay/pay.php文件:

代码过多就不一一贴图出来了,主要构成漏洞的代码就在这其中,我们从38行开始看着走。

这里判断$_GET[“type”]等于delete的时候则执行40-49行的代码,41将获取到的ip拼接到sql语句中,我们看看ip函数:

这里可以看到程序获取ip可以从客户端的头参数中获取,分别为HTTP_X_FORWARDED_FOR,HTTP_CLIENT_IP,这个函数真的仅仅是获取外部传递的参数的,一点也没有过滤,我们看到了这里就可以嘿嘿了,基本上这个网站拿下了,我们接着看看,回到41行,再看下边的,我们不宜在这里进行SQL注入,因为接着会将查询到的值又进行下一个SQL语句的拼接,这样返回值就不准确,用工具的过程就很难判断了,我们跳出这里的判断,看看51-54行分别判断了$_GET['type'],$_GET['money'],$_GET['title'],$_GET['pwd']这几个参数存不存在,所以我们这里可以这样构造get参数:

type=a&money=1&title=adssad&pwd=123

我们接着看下边的,第58-65行,首先是判断了type是否等于zfb,若不等于则退出当前程序并打印Tip:Type error!,所以我们还得接着改改get参数:

type=zfb&money=1&title=adssad&pwd=123

接下来,可以看到67行中再次将获取到的ip拼接到了SQL语句中,我们这样来,在67行的下边打印出当前执行的SQL语句

好了,现在我们打开burp进行抓包,然后伪造ip进行一系列的嘿嘿了,因为./pay/index.php中包含了pay.php,所以我们对index.php进行注入就好

复现

访问http://localhost:8081/pay/index.php?type=zfb&money=1&title=adssad&pwd=123,付款码页面:

可以看到这是一个很正常的页面了,并且打印出了SQL语句,我们抓包:

正常页面:

错误页面:

好的,现在看到了吧!我们放到SQLmap中跑一下看看,我们将这个数据包保存到文本中,并且标注注入位置:X-Forwarded-For这个注入还自带绕过waf功能,因为很多waf不会检测hander参数。

Python sqlmap.py -r test.txt --batch --dbms="mysql" 

我们对那个网站测试一番,访问:http://lxxxx.pw/pay/index.php?type=zfb&money=1&title=adssad&pwd=123

可以看到缺少 “spid” 参数我们加上继续访问,页面是支付宝扫码支付 – -RL吧论坛邀请码:

http://llxxxxx.pw/pay/index.php?type=zfb&money=1&title=adssad&pwd=123&spid=1

把该数据放到文本中,接着进行测试:

Python sqlmap.py -r test.txt --batch --dbms="mysql" 

成功挖掘到了该网站的漏洞,继续。

Python sqlmap.py -r test.txt --batch -D yulinxscom --tables 

Python sqlmap.py -r test.txt --batch -D yulinxscom -T admin --dump 

拿到了管理账号及密码。接着访问。

默认后台:http://lxxxx.pw/admin.php

由于之前进去过一次,让他亏损了点钱,现在后台的名字也改了 。

写在结尾

跟此网站的搭建人聊了会,从去年11月份搭建平台以来已获利普通人一年的薪资。为了养家糊口,冒此风险也是不容易,切勿为了蝇头小利以身试法,就这样做个记录,到此为止吧。

对自助提卡系统EDLM的一次代码审计的更多相关文章

  1. 用dedecms自定义表单创建简易自助预约系统

    建站往往需要根据客户的需求来增加相应的功能,比如预约.平时用比较多的是织梦系统,那么如何用dedecms自定义表单创建简易自助预约系统呢? 进入dedecms后台,左侧菜单中依次点击“核心” - 频道 ...

  2. 极速创建 IOS APP !涛舅舅苹果 IOS APP自助生成系统正式上线

    经过大量的测试和开发工作,涛舅舅苹果 IOS APP自助生成系统正式上线! 本系统主要功能: 1.用最最简单的方式将H5网站打包生成一个苹果APP 2.只需要提供APP标题,H5网站首页url地址,一 ...

  3. 极速创建 IOS APP !涛舅舅苹果 IOS APP自助生成系统!不用证书、不用越狱、永久可用

    不用签名将网页封装成苹果APP,无需苹果企业签名,IPA签名,ios签名,免越狱安装 (本方法只支持网站封装app,原生的用不了,详细请咨询客服) 近期很多朋友问我把网站变成app的方法,原因很多种, ...

  4. php编写刷网课自助下单系统(第三方支付实例)

    此项目是由于本人刚刚入门php且在校代刷网课而编写的,由于在上课时间不方便接单,故特意写一个自助下单系统来实现客户自助下单.本项目主要实现以下功能:1.用户下单2.用户支付3.用户通过账号查询订单4. ...

  5. 软件工程作业--ATM自助银行服务系统

    博客班级 AHPU软件工程 作业要求 ATM自助银行服务系统 作业目标 编码实现ATM自助银行服务系统 学号 3180701118 目录 一.作业要求 二.代码及运行界面 1.test类 2.User ...

  6. FineReport构建银行金融租赁考核系统

    一.应用背景 我们今天以民生银行为案例来交大家如何利用报表工具搭建金融租赁考核系统.民生银行在IT建设上已经建设邮件系统.外部网站系统.视频会议系统.OA系统.财务系统.自助报销系统.核心系统.资金管 ...

  7. 我们为之奋斗过的C#-----Bank系统

    首先感谢大家抽出宝贵的时间来看这个Bank系统,这是我最近学的Bank系统,你们看我刚一学完就给你们分享了我的所学以及学习的一些经验,所以大家一定要耐心看下去,真的你会有所收获的,不信你看看.下面话不 ...

  8. 远程开户系统开放API接口

    如今随着智能识别技术的成熟和商用,金融领域也开始逐渐试水"远程开户".从OCR身份证识别到人脸识别,到如今市场上即将出现完整的远程开户系统,除了需要成熟的技术做支撑外,还需要对市场 ...

  9. 勾勾街:一个专业的苹果ios app 自助打包的网站,免越狱,免证书签名

    众所周知,苹果的APP开发是需要基于MAC环境的,而我们很多的开发者并没有这样的条件,如果单单为发布一款app就去买一台价格昂贵的MAC那成本就太高了! 就算你有一台MAC,也有能力自己开发出一款基于 ...

随机推荐

  1. phpcms v9表单向导添加验证码

    要做留言板的功能,故用添加表单,想要在提交留言前加一个验证码的功能.网上的教程比较混乱,于是亲自实验了下,步骤如下: 首先是调用表单的页面加入验证码.表单js调用模版默认的是 \phpcms\temp ...

  2. google code-prettify 代码高亮插件使用方法

    找代码高亮插件选了好久,还是这个使用起来比较方便. 先上链接:插件下载地址 官方使用方法地址 建议看官方的资料,我这里仅仅简要描述一下使用方法: 引入方法: 测试引入是否成功:herf 换成 自己放置 ...

  3. 前端读者 | 前端用户体验-UI动效设计

    本文来自互联网 @羯瑞 整理 UI动效现如今在 APP 和网页中几乎已经成为了基本的组成部分,经过仔细打磨的 UI动效对于整个界面的提升是显著的. 动效呈现出状态切换的过程,展现了元素之间的逻辑关系, ...

  4. python中执行shell命令的几个方法小结(转载)

    转载:http://www.jb51.net/article/55327.htm python中执行shell命令的几个方法小结 投稿:junjie 字体:[增加 减小] 类型:转载 时间:2014- ...

  5. Mvc全局过滤器与Action排除

    http://blog.csdn.net/shuaihj/article/details/53020428 如何一次性给所有action做登录验证过滤,如何排除不需要做登录验证的action? 1. ...

  6. HDU 6462.人类史上最大最好的希望事件-递推 (“字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛)

    人类史上最大最好的希望事件 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Tot ...

  7. 洛谷P3391文艺平衡树(Splay)

    题目传送门 转载自https://www.cnblogs.com/yousiki/p/6147455.html,转载请注明出处 经典引文 空间效率:O(n) 时间效率:O(log n)插入.查找.删除 ...

  8. Poj2182 Lost Cows(玄学算法)

    题面 Poj 题解 不难发现最后一位就是\(pre[n]+1\),然后消除这个位置对其他位置的贡献,从左到右扫一遍,必定有至少一个位置可以得出,循环这个过程,\(O(n^2)\)出解. #includ ...

  9. 【BZOJ 2878】 2878: [Noi2012]迷失游乐园 (环套树、树形概率DP)

    2878: [Noi2012]迷失游乐园 Description 放假了,小Z觉得呆在家里特别无聊,于是决定一个人去游乐园玩.进入游乐园后,小Z看了看游乐园的地图,发现可以将游乐园抽象成有n个景点.m ...

  10. [BZOJ 1901] Dynamic Rankings

    Link: BZOJ 1901 传送门 Solution: 带修改主席树的模板题 对于静态区间第$k$大直接上主席树就行了 但加上修改后会发现修改时复杂度不满足要求了: 去掉/增加第$i$位上的值时要 ...