Учебник хакера


Website - часть 3


Обламывается-то обламывается, но все дело в том, что мы можем засылать специальные непечатные символы типа CR (код 0dh), LF( код 0ah). Улавливаете? :) Появление таких символов в командной строке приведет к переводу строки в скрипте и вполне возможно, что следущей строчкой вдруг ни с того ни с сего окажется наш файл лежащий в каталоге /uploads/ . Уф, такие мысли просто будоражат кровь! :)

Так, сейчас мы ее маленько остудим, рассмотрев немного теории, поясняющей как запускаются .bat скрипты на web сервере на основе WebSite. :)

При обработке bat-скрипта во временном каталоге WebSite /cgi-temp/ создаются 4 файла xxxxx.acc, xxxxx.bat, xxxxx.inp, xxxxx.out. Нам в глаза сразу бросается файл xxxxx.bat. Так, при удаленном запуске /cgi-dos/args.bat получается такой файл xxxxx.bat:


@ECHO OFF&&TITLE WebSite CGI

D:\WebSite\cgi-dos\args.bat D:\WebSite\cgi-temp\xxxxx.out


если этому .bat файлу кинуть в командной строке аргументов, например, /cgi-dos/args.bat?africa.bat, то получим xxxxx.bat:


@ECHO OFF&&TITLE WebSite CGI

D:\WebSite\cgi-dos\args.bat africa.bat D:\WebSite\cgi-temp\xxxxx.out


Кто знает, что такое перенаправление потока данных (значки ">" и "

Запускаем вот так /cgi-dos/args.bat?>d:/Website/cgi-shl/1.bat получаем xxxxx.bat:


@ECHO OFF&&TITLE WebSite CGI

D:\WebSite\cgi-dos\args.bat africa.bat ^>D:/WebSite/cgi-shl/1.bat

D:\WebSite\cgi-temp\xxxxx.out


Видите, как нехорошо поступил WebSite - перед символом перенаправления ">" поставил какую-то гадость "^", от которой всякое перенаправление перестает быть перенаправлением. Если немного помучится, то можно выяснить, что эта фигня ставится перед символами >,

Как я уже писал выше, мы можем в командную строку вставлять спецсимволы, делается это так %0a. "%" - символ, говорящий о том, что следующие за ним два символа являются шестнадцатиричным представлением передаваемого в командной строке символа.

Запускаем /cgi-dos/args.bat?%0d%0aafrica.bat.


Начало  Назад  Вперед