Rivettracker 1.03 SQL Injection

2012-03-10 / 2012-09-27
Credit: Ali Raheem
Risk: Medium
Local: No
Remote: Yes
CWE: CWE-89

# Exploit Title: Multiple SQL injections in rivettracker <=1.03 # Date: 2/3/2012 # Author: Ali Raheem # Software Link: http://www.rivetcode.com/software/rivettracker/ # Version: <=1.03 # Tested on: Linux guruplug-debian 3.1.7 #2 PREEMPT Tue Jan 3 20:19:54 MST 2012 armv5tel GNU/Linux # Greets: spyware, dividead RivetTracker is a php base torrent tracker. Though rivettracker is largely designed for a trusted user environment it does have 3 levels of access. Admin (add&delete torrents), uploader and unauthenticated (if $hiddentracker == false). However, vulnerable files such as torrent_functions.php can always be accessed by anyone since there is no $hiddentracker check (epic fail). Despite this high level of access few inputs are sanities and lines like this: $query = "SELECT filename FROM ".$prefix."namemap WHERE info_hash = '" . $_GET['hash'] . "'"; Found in dltorrent.php (which can be accessed by any one if hiddentracker is false) is unforgivable. The only check performed is to insure $_GET['hash'] is 40 chars long. We can defeat this simply with padding with 0's if poison null bytes are not patched we can force the SQL query to return the filename of a file we want to view and download it. path_to_rivettracker/dltorrent.php?hash=00000' UNION ALL SELECT '../config.php\0 With the PNB patch on php version >=5.3.4 (and backports) we still have arbitary SQL queries but no config.php. config.php contains passwords and usernames for admin, user and mysql database. Other files have unsanitised inputs such as torrent_functions.php, here we have no checks! Further more $hiddentracker isn't even checked! And anyone has access to this file and can run SQL commands via post. Here's my testbench for torrent_functions.php ali@Ali-PC:~$ cat test.htm <form action="http://127.0.0.1/rivettracker/torrent_functions.php" method="POST"> <input type="test" name="hash" size="100"/> <input type="submit"/> </form> Depending on the privs of the database user you can raise all kinds of hell (shell creation and arbitrary code execution.) Enjoy.

References:

http://www.rivetcode.com/software/rivettracker/


Vote for this issue:
50%
50%


 

Thanks for you vote!


 

Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.


(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2024, cxsecurity.com

 

Back to Top