- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
public function comments()
{
$a = new common_articles($this);
switch ($this->prms[3]) {
case 'search':
{
break;
}
default:
{
$where = array();
$itemid = 0;
// и еще полторы сотни строк кода
}
}
}
OCETuHCKuu_nemyx 06.03.2019 17:10 # 0
guest8 06.03.2019 22:44 # −999
BEKTOPHblu_nETyX 07.03.2019 08:13 # 0
guest8 07.03.2019 09:17 # −999
guest8 07.03.2019 10:44 # −999
guest8 07.03.2019 10:45 # −999
TEH3OPHblu_nemyx 07.03.2019 11:40 # 0
Здесь говно в том, что пэхапэшный модуль imap использует дерьмовую библиотеку imap-2007f, которая за каким-то хреном для установления соединения вызывает бинарник rsh или ssh. Это примерно как system("pause"); в сишной лабе.
Вот тут всё по-русски расписано:
https://antichat.com/threads/463395/#post-4254681
bormand 07.03.2019 11:48 # 0
guest8 07.03.2019 12:01 # −999
TEH3OPHblu_nemyx 07.03.2019 12:46 # 0
А если серьёзно, то почему нет? Передавать можно всё, что поддерживается языком: целых питухов, плавающих питухов, булевых питухов, строки, ассоциативные массивы, объекты, ресурсы, NULL и даже замыкания (колбек-функции). Причём язык принципиально динамический и даже существуют функции, которые могут принять аргумент любого типа, а на входе узнать тип и решить, что с ним делать.
guest8 07.03.2019 12:57 # −999
TEH3OPHblu_nemyx 07.03.2019 13:03 # 0
Что же касается самого «PHP», то system, exec, popen, proc_open принимают строку, а pcntl_exec принимает массив аргументов.
guest8 07.03.2019 15:44 # −999
TEH3OPHblu_nemyx 07.03.2019 15:59 # 0
https://en.wikipedia.org/wiki/UW_IMAP
Одна из трёх самых популярных (другие две –— Cyrus IMAP и Courier IMAP).
В 2008-м году её перестали разрабатывать и Debian её задепрекейтил.
Однако, один из авторов злополучной библиотеки UW IMAP выпустил форк под названием Panda IMAP.
>> Я так понимаю, что большинство ее не пользует?
Ага, обычно используют другие функции, которые тупо принимают строку. Но из пэхапэшных скриптов вообще редко вызывают внешние программы. Хотя sendmail, например, вызывают, чтобы отправить письмо со ссылкой для активации профиля на форуме.
TEH3OPHblu_nemyx 07.03.2019 19:10 # 0
https://www.google.com/search?q=UW+IMAP+vulnerability
cmepmop 07.03.2019 19:14 # +1
CnEPMOBOP 07.03.2019 19:35 # −102
guest8 07.03.2019 19:37 # −999
cmepmop 07.03.2019 20:53 # −1
guest8 08.03.2019 01:36 # −999
guest8 07.03.2019 19:37 # −999
guest8 07.03.2019 19:36 # −999
TEH3OPHblu_nemyx 07.03.2019 12:57 # 0
TEH3OPHblu_nemyx 07.03.2019 13:08 # 0
>> Пробелы обходим с помощью $IFS$(), а слеши с помощью echo base64decodedstring==|base64 -d| bash
Это как раз, чтобы обмануть самодельный парсинг внутри imap-2007f.
TEH3OPHblu_nemyx 07.03.2019 13:13 # 0
Открываем произвольный makefile, а там:
Верните мне мой 1987-й!
guest8 07.03.2019 13:36 # −999
TEH3OPHblu_nemyx 07.03.2019 13:39 # 0
https://tools.ietf.org/html/rfc1730
IMAP2 –— в 1988:
https://tools.ietf.org/html/rfc1064
Именно поэтому я за 1987.
guest8 07.03.2019 13:36 # −999
TEH3OPHblu_nemyx 07.03.2019 13:49 # 0
guest8 07.03.2019 14:37 # −999
guest8 07.03.2019 14:38 # −999
guest8 07.03.2019 15:42 # −999
TEH3OPHblu_nemyx 07.03.2019 15:44 # 0
Только кокококонкретно в этом примере пэхапэшные функции вообще никак не используются. Всё говно полностью в сишной библиотеке imap. Если ты её подключишь из другого ЯП, то получишь точно такой же багор.
guest8 07.03.2019 15:45 # −999
TEH3OPHblu_nemyx 07.03.2019 15:53 # 0
https://en.wikipedia.org/wiki/UW_IMAP
As of 2003, UW IMAP was among the three most popular free software IMAP server packages, the other two being Cyrus IMAP and Courier IMAP.[11][12][13] As of 2005, by which point its codebase had undergone extensive rewriting,[6] it was among the top two, the other being Cyrus IMAP.[14][15]
In May 2008, the University of Washington terminated development of UW IMAP.[2]
On 4 August 2008, staff at the University of Washington who had been involved in developing UW IMAP, Pine, and Alpine,[citation needed] announced that they would "shift our effort from direct development into more of a consultation and coordination role to help integrate contributions from the community,"[16] in the wake of layoffs at the University of Washington's technology division.[17]
c. January - August 2009, the maintainers of Debian GNU/Linux, a major downstream distributor of UW IMAP, began to retire their UW IMAP packages.[18][19]
In September 2009,[citation needed] Mark Crispin, the principal author of UW IMAP, announced a fork called Panda IMAP.[2] Crispin passed away in late 2012.[20]
At least one UW IMAP enthusiast maintains a public source code repository containing the UW IMAP and Panda IMAP commit history from the start of the project until Crispin's final release.[21]
TEH3OPHblu_nemyx 07.03.2019 17:03 # 0
Угадайте, что делает код:
TEH3OPHblu_nemyx 07.03.2019 17:09 # 0
IMAP4(host) устанавливает соединение через сокет, а IMAP4_stream(stream_command) –— через запуск внешней программы.
guest8 07.03.2019 17:18 # −999
TEH3OPHblu_nemyx 08.03.2019 01:30 # 0
The shell argument (which defaults to False) specifies whether to use the shell as the program to execute. If shell is True, it is recommended to pass args as a string rather than as a sequence.
On Unix with shell=True, the shell defaults to /bin/sh. If args is a string, the string specifies the command to execute through the shell. This means that the string must be formatted exactly as it would be when typed at the shell prompt. This includes, for example, quoting or backslash escaping filenames with spaces in them. If args is a sequence, the first item specifies the command string, and any additional items will be treated as additional arguments to the shell itself. That is to say, Popen does the equivalent of:
Popen(['/bin/sh', '-c', args[0], args[1], ...])
On Windows with shell=True, the COMSPEC environment variable specifies the default shell. The only time you need to specify shell=True on Windows is when the command you wish to execute is built into the shell (e.g. dir or copy). You do not need shell=True to run a batch file or console-based executable.
Warning
Passing shell=True can be a security hazard if combined with untrusted input.
https://docs.python.org/2/library/subprocess.html#subprocess.Popen
https://docs.python.org/3/library/subprocess.html#subprocess.Popen
guest8 08.03.2019 01:44 # −999
TEH3OPHblu_nemyx 08.03.2019 01:49 # 0
https://ru.wikipedia.org/wiki/4DOS
Ну и на всякий случай, чтобы путь узнать, вдруг у тебя мастдайка на диск D: установлена.
guest8 08.03.2019 01:53 # −999
TEH3OPHblu_nemyx 08.03.2019 02:34 # 0
guest8 08.03.2019 02:45 # −999
TEH3OPHblu_nemyx 08.03.2019 03:18 # 0
https://www.google.com/search?tbm=isch&q="светозар+разбойников"
3oJIoTou_xyu 08.03.2019 09:12 # 0
TEH3OPHblu_nemyx 08.03.2019 11:51 # +2
Специальный тухлый сыр,
Прошлогодний вялый лук,
Всё на булочке с кунжутом.
guest8 08.03.2019 12:42 # −999
guest8 08.03.2019 02:11 # −999
cmepmop 08.03.2019 12:00 # −1
guest8 08.03.2019 12:43 # −999
cmepmop 08.03.2019 12:51 # 0
1. С моей зарплатой (а точнее с ее полным отсутствием!) я никогда не накоплю на билет;
2. В медшараге учатся камерунцы - живут в общаге, но я с ними не буду, ибо в общагу посторонних не пускают;
3. мне не нравятся чернокожие (скорее даже отвращение вызывают). Я конечно не ку-клукс-клан, но бля. Зачем ебаться с теми, кто тебе не по душе, когда можно выбрать любого другого? Что за принуждение?
guest8 08.03.2019 13:30 # −999
BEKTOPHblu_nETyX 07.03.2019 15:48 # +1
guest8 07.03.2019 15:51 # −999
guest8 07.03.2019 17:19 # −999
guest8 07.03.2019 18:23 # −999
guest8 08.03.2019 13:31 # −999
TEH3OPHblu_nemyx 07.03.2019 14:46 # 0
Говно в том, что библиотека imap для установления соединения вызывает внешнюю программу, а у неё есть ключик -oProxyCommand, который в свою очередь может запустить произвольную внешнюю программу.
Чтобы запудрить мозги библиотеке imap (чтобы она сразу не смогла разделить параметры по пробелам), вместо пробела воткнули $IFS$(). Оболочка (sh/bash) эту конструкцию заменит на пробел и цель злоумышленника будет достигнута.
Кстати, нужно искать, в каком ещё ПО используется эта самая библиотека imap-2007. Может ещё где-то бомбануть.
guest8 07.03.2019 14:59 # −999
TEH3OPHblu_nemyx 07.03.2019 15:38 # 0
guest8 07.03.2019 15:39 # −999
guest8 07.03.2019 15:41 # −999
guest8 07.03.2019 15:44 # −999
guest8 07.03.2019 16:13 # −999
guest8 07.03.2019 15:42 # −999
guest8 08.03.2019 01:32 # −999
TEH3OPHblu_nemyx 08.03.2019 01:33 # 0
guest8 08.03.2019 01:35 # −999
TEH3OPHblu_nemyx 08.03.2019 01:37 # 0
В чём тогда разница?
guest8 08.03.2019 01:39 # −999
TEH3OPHblu_nemyx 08.03.2019 01:40 # 0
guest8 08.03.2019 01:40 # −999
TEH3OPHblu_nemyx 08.03.2019 01:42 # 0
guest8 08.03.2019 01:43 # −999
TEH3OPHblu_nemyx 08.03.2019 01:44 # 0
guest8 08.03.2019 01:45 # −999
TEH3OPHblu_nemyx 08.03.2019 01:46 # 0
А если серьёзно, то как нубу объяснить разницу между системами? Или вообще как объяснить, зачем нужна ОС?
guest8 08.03.2019 01:48 # −999
guest8 08.03.2019 13:32 # −999
guest8 08.03.2019 13:34 # −999
TEH3OPHblu_nemyx 08.03.2019 13:37 # 0
guest8 08.03.2019 13:40 # −999
cmepmop 08.03.2019 13:53 # −1
заебал!
TEH3OPHblu_nemyx 08.03.2019 13:54 # 0
guest8 08.03.2019 14:15 # −999
TEH3OPHblu_nemyx 08.03.2019 14:23 # 0
OCETuHCKuu_nemyx 08.03.2019 01:35 # +2
guest8 07.03.2019 12:03 # −999
guest8 07.03.2019 12:06 # −999
TEH3OPHblu_nemyx 07.03.2019 12:47 # 0
zhigolo 07.03.2019 12:52 # 0
cmepmop 07.03.2019 20:52 # −1
guest8 08.03.2019 01:35 # −999
OCETuHCKuu_nemyx 08.03.2019 01:36 # 0
guest8 08.03.2019 01:37 # −999
cmepmop 08.03.2019 13:00 # 0
guest8 08.03.2019 13:04 # −999
Kypumca 08.03.2019 14:25 # 0
OCETuHCKuu_nemyx 08.03.2019 01:37 # 0
guest8 08.03.2019 01:40 # −999
OCETuHCKuu_nemyx 08.03.2019 01:48 # 0
cmepmop 08.03.2019 12:55 # 0
3oJloTou_nemyx 08.03.2019 19:22 # 0
guest8 07.03.2019 13:43 # −999
guest8 07.03.2019 13:36 # −999
OCETuHCKuu_nemyx 08.03.2019 01:20 # 0