Автор Гілка: Http запит для авторизації на форумі linux.org.ua  (Прочитано 4836 раз)

Відсутній Ubuntu_Linux

  • Графоман
  • ****
  • дописів: 275
  • Карма: +0/-0
Хочу написати програмку для автоматичного сповіщення про нові повідомлення на форумі.
Для  авторизації на сторінці

Цитата
http://linux.org.ua/cgi-bin/yabb/YaBB.pl?action=login2
 я методом pos() передаю дані про логін і пароль
Цитата
username=ubuntu_linux&passwrd=ХХХХХ
але мені у відповідь приходить помилка :
Цитата
УВАГА! Виявлена спроба підсовування форми з IP-адреси: 79.124.243.80
Як побороти цю проблему?

прикріплюю частину коду сторінки:
Цитата
<form action="http://linux.org.ua/cgi-bin/yabb/YaBB.pl?action=login2" method="post">
            <div style="clear: both; padding-top: 4px; margin-left: auto; margin-right: auto; width: 370px;">
                  <span style="float: left; width: 33%; text-align: left; margin-bottom: 5px;">
                        Username:<br />
                        <input type="text" name="username" size="15" style="width: 110px;" tabindex="1" />
                  </span>
                  <span style="float: left; width: 33%; text-align: left; margin-bottom: 5px;">
                        Password:<br />
                        <input type="password" name="passwrd" size="15" style="width: 110px;" tabindex="2" />
                  </span>
                  <span style="float: left; width: 33%; text-align: left; margin-bottom: 5px;">
                        Logged in for:<br />
                        <select name="cookielength" style="width: 117px;" tabindex="3">
                        <option value="1" selected="selected" >Keeps</option>
                        <option value="60">1 hour</option>
                        <option value="180">3 hours</option>
                        <option value="360">6 hours</option>
                        <option value="720">12 hours</option>
                        <option value="1440">24 hours</option>
                        </select>
                  </span>
            </div>
            <div style="clear: both; margin-top: 5px; margin-left: auto; margin-right: auto; width: 370px;">
                  <span style="float: left; width: 49%; margin-bottom: 5px;">
                        <input type="submit" value="Login" tabindex="5" accesskey="l" style="float: left; width: 175px;" />
                  </span>
                  <span style="float: left; width: 49%; margin-bottom: 5px;">
                        <input type="button" value="Forgot password?" style="float: right; width: 175px;" onclick="location.href='http://linux.org.ua/cgi-bin/yabb/YaBB.pl?action=reminder'" />
                  </span>
            </div>
        <input type="hidden" name="formsession" value="7894989EA05595978B5197822C6644" /></form>
« Змінено: 2010-07-27 23:41:14 від Ubuntu_Linux »

Відсутній nickat

  • Письменник
  • *****
  • дописів: 587
  • Карма: +0/-0
  • Debian user
Хочу написати програмку для автоматичного сповіщення про нові повідомлення на форумі.
А може для автоматичного добору паролів?  ;)

Чим стандартна функція Спровіщення не влаштовує?

Сайт використовує певну техніку захисту.  Ключовий термін -- session id.  Тому ваш спосіб не спрацьовує.
« Змінено: 2010-07-28 00:18:10 від nickat »
Best regards,
nickat

Відсутній Ubuntu_Linux

  • Графоман
  • ****
  • дописів: 275
  • Карма: +0/-0
Й толку мені з тих паролів? - і я не хочу відповідати за чужі данні.
Навіщо програма ви мене питаєте, та просто так, заради спортивного інтересу.

Відсутній nickat

  • Письменник
  • *****
  • дописів: 587
  • Карма: +0/-0
  • Debian user
та просто так, заради спортивного інтересу.
Тоді краще «тренуйтеся на кішках», а не на чужому сайті.  Щоб ваша програма запрацювала, вам треба буде обійти певний механізм захисту.  Така спроба може і, напевно, буде розцінена як спроба зламу сайту.
Best regards,
nickat

Відсутній nickat

  • Письменник
  • *****
  • дописів: 587
  • Карма: +0/-0
  • Debian user
Можна піти іншим шляхом: скористатися інформацією на цій сторінці:
http://linux.org.ua/cgi-bin/yabb/YaBB.pl?action=recent;display=10

Параметром display= можна регулювати кількість сторінок, що виводиться.  І аутентифікація не потрібна.
Best regards,
nickat

Відсутній Ubuntu_Linux

  • Графоман
  • ****
  • дописів: 275
  • Карма: +0/-0
Ну всетаки хотілося б  відправляти повідомлення прямо з програми, під своїм логіном.

Відсутній piktor

  • Видавець
  • *******
  • дописів: 3396
  • Карма: +0/-0
Колись мав скрипт, writen by isbear, що раз на 5 хвилин за допомогою wget стягував сторінку останніх дописів, порівнював її із попередньою версією і видавав повідомлення різниці. Я його запускав під Yakuake, коли чув beep - відкривав і читав. Зараз не можу розшукати.
Всим, хто тоне й не знає,
За що вхопитись,
Хто вже з останніх
Вибився сил:
Попереджаю - я не колода,
Попереджаю - я крокодил.

Відсутній nickat

  • Письменник
  • *****
  • дописів: 587
  • Карма: +0/-0
  • Debian user
Ну всетаки хотілося б  відправляти повідомлення прямо з програми, під своїм логіном.
Варіант з cookies:
Під час авторизації на форумі можна вибрати опцію Logged in for: Keeps.  
1. Вибираєте цю опцію і авторизуєтесь на форумі вручну.
2. Знаходите де ваш браузер зберігає cookies (в firefox це /home/<user>/.mozilla/firefox/<random_value>.default/cookies.sqlite).
3. Знаходите cookies з іменами Y2User-<integer>, Y2Pass-<integer>, Y2Sess-<integer>.
4. Використовуєте ці cookies у вашій програмі для авторизації під час кожного HTTP-запиту.

Випробував на wget з опцією "--load-cookies <cookie_file>" -- працює.
Формат cookie_file для wget можна подивитись тут: http://www.cookiecentral.com/faq/#3.5
Для перегляду cookies.sqlite використовував sqlitebrowser.

Вам залишилось вивчити код YaBB-сторінки "Надіслати відповідь", щоб написати HTTP-запит, який буде відсилати повідомлення.
« Змінено: 2010-07-28 20:55:40 від nickat »
Best regards,
nickat

Відсутній cadca

  • Письменник
  • *****
  • дописів: 955
  • Карма: +0/-0
  • free like beer
wget --no-cookies --header="Cookie: Y2User-50066=Ubuntu_Linux; Y2Pass-50066=pass_hash"
Ubuntu 20.04/18.04; CentOS 7.x

Відсутній Ubuntu_Linux

  • Графоман
  • ****
  • дописів: 275
  • Карма: +0/-0
Я в процесі. просто зараз зайнятий над іншим проектом.

Відсутній nickat

  • Письменник
  • *****
  • дописів: 587
  • Карма: +0/-0
  • Debian user
Я в процесі. просто зараз зайнятий над іншим проектом.
Сподіваюсь програмку оприлюдните під GPL.  :)
Best regards,
nickat

Відсутній Ubuntu_Linux

  • Графоман
  • ****
  • дописів: 275
  • Карма: +0/-0
Так , звісно. Внесу свою частку в розвиток лінукса.

Відсутній sv0

  • Новачок
  • *
  • дописів: 34
  • Карма: +0/-0
Так , звісно. Внесу свою частку в розвиток лінукса.

Це ви свій скрипт для сповіщення про нові повідомлення на форумі називаєте своєю часткою в розвиток linux ?
Як же він допомагає linux розвиватись?
Debian  Wheezy + Openbox

Відсутній Сергій Лисовенко

  • Літератор
  • ******
  • дописів: 1489
  • Карма: +0/-0
Сайт використовує певну техніку захисту.  Ключовий термін -- session id.
Щось важко віриться в те, що зламувач настільки тупий, що не здогадається потягнути значення "formsession" (заодно і супроводжуючу куку, якщо є) перед відправкою фальшивого запиту  ;) Щось це більше нагадує вудочку на нюбокрякера.
Якщо Лінукс написали студенти - нехай вони під ним і навчаються.

Відсутній nickat

  • Письменник
  • *****
  • дописів: 587
  • Карма: +0/-0
  • Debian user
Сайт використовує певну техніку захисту.  Ключовий термін -- session id.
Щось важко віриться в те, що зламувач настільки тупий, що не здогадається потягнути значення "formsession" (заодно і супроводжуючу куку, якщо є) перед відправкою фальшивого запиту  ;) Щось це більше нагадує вудочку на нюбокрякера.
Звичайно, session id не використовується для запобігання добору паролів, але при наївній спробі він має такий побічний ефект, що ми і бачимо в даному випадку.
Best regards,
nickat