avatar_Белый

zParser - лучший парсер голосов для mmotop.ru и q-top.ru | Release/Релизы

Автор Белый, 2014 Окт. 12, 11:42

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ключевые слова [SEO] mmotop.ruпарсер голосовzparserq-top.ru

Белый

zParser 0.0.0.1


# Название: zParser
# Версия: 0.0.0.1
# Разработчик: zTeam
# Язык: C#

Преимущества:
- Бесплатно  :trollface:

Описание:
Парсер голосов известных топов mmotop.ru и q-top.ru с последующей выдачей награды.

Скриншоты:

Спойлер


[свернуть]

Конфиг программы:
Спойлер
<ParserList>
<Parser
SqlServer="(local)"
SqlDatabase="MuOnline"
SqlAccount="sa"
SqlPassword="1234"

MmotopUse="1"
MmotopLink="https://mmotop.ru/votes/69bb3a46569a93f3ece24ca184834914b071d02.txt?deeba7fbac3712a11d32bd47301a9fd"
MmotopRewardSqlTable="MEMB_CREDITS"
MmotopRewardSqlColumnBonus="credits"
MmotopRewardSqlColumnAccount="memb___id"
MmotopRewardNormal="1" // Обычный голос
MmotopRewardExtra="2"  // Смс голос

QtopUse="1"
QtopLink="https://q-top.ru/profiles/134/5345/d5440696253ad66c2ea4419fd4707bc.txt"
QtopRewardSqlTable="MEMB_CREDITS"
QtopRewardSqlColumnBonus="credits"
QtopRewardSqlColumnAccount="memb___id"
QtopRewardNormal="1" // Обычный голос
QtopRewardExtra="2" // Смс голос

CheckDelay="60"  // Интервал в минутах
/>
</ParserList>
[свернуть]

Базы данных:
Спойлер
USE [MuOnline]
GO
/****** Object:  Table [dbo].[qtop_vote]    ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[qtop_vote](
[id] [int] IDENTITY(1,1) NOT NULL,
[v_id] [bigint] NOT NULL,
[v_username] [varchar](50) COLLATE Cyrillic_General_CI_AS NULL,
[v_date] [varchar](50) COLLATE Cyrillic_General_CI_AS NULL,
[v_time] [varchar](50) COLLATE Cyrillic_General_CI_AS NULL,
[v_type] [int] NULL,
[v_ip] [varchar](50) COLLATE Cyrillic_General_CI_AS NULL
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF
USE [MuOnline]
GO
/****** Object:  Table [dbo].[mmotop_vote]    ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[mmotop_vote](
[id] [int] IDENTITY(1,1) NOT NULL,
[v_id] [bigint] NOT NULL,
[v_username] [varchar](50) COLLATE Cyrillic_General_CI_AS NULL,
[v_date] [varchar](50) COLLATE Cyrillic_General_CI_AS NULL,
[v_time] [varchar](50) COLLATE Cyrillic_General_CI_AS NULL,
[v_type] [int] NULL,
[v_ip] [varchar](50) COLLATE Cyrillic_General_CI_AS NULL
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF
[свернуть]

# Mega
# Yandex
# SendSpace
# MediaFire
Пароль: z-team.pro

DoS.Ninja

Не знаю есть ли этот баг сейчас или нет, но раньше во время голосования в mmotop'e можно было в качестве имени указывать любые символы, даже ', ". Поэтому можно было через такие парсеры выполнять SQL Injection, проверялось на недопарсере P4F

Белый

Цитата: DoS.Ninja от 2014 Окт. 12, 11:05  Не знаю есть ли этот баг сейчас или нет, но раньше во время голосования в mmotop'e можно было в качестве имени указывать любые символы, даже ', ". Поэтому можно было через такие парсеры выполнять SQL Injection, проверялось на недопарсере P4F
Сейчас даннного бага нет, это было предусмотрено.

Провели тест:
[02:26:59] [Warning]
  • (UniqueId: xxxxxxxx) Wrong account syntax: update;

Как вы понимайте вместо логина было указанно: update;

epmak

ох бует весело ребятам, у кого аккаунта update union delete и т.п.

Белый

#4
Цитата: epmak от 2014 Окт. 12, 16:43  ох бует весело ребятам, у кого аккаунта update union delete и т.п.
Фильтрует подобные слова в сочетании с ' ; + - ? и т.д. так что проблем с этим не возникнет.

epmak

#5
Цитата: Белый от 2014 Окт. 12, 19:26  Фильтрует подобные слова в сочетании с ' ; + - ? и т.д. так что проблем с этим не возникнет.
не имею ничего против, но зачем?

суть иньекции - написать словосочетание так, чтобы выйти за рамки кавычек или каким либо иным способом заставить систему посчитать какой-то набор символов кавычками, чтобы выйти в основное тело запроса. В му, как правило, все акки размерностью в 10 символов и достаточно запретить или удалять ввод ' " и все. И запрос
UPDATE vote_table SET vote+=1 WHERE memb___id='update+-='будет валиден.
Чего нету в парсере нашем, так это билдера запросов и анализатора оного, чтобы перед выполнением запрос прогонялся через фильтры и в случае, если какие - то данные не валидны - откидывал ник.

да, и если реально хотите сделать вещь - сделайте парсер в виде службы.

по поводу уязвимости, что описал ниньзя : если мне не изменяет память, то листики с голосованием высасываются с топа, теперь, внимание, кто-нибудь из вас в топе видел вместо ника запрос? я - нет и мои клиенты вроде тоже, поэтому сию уязвимость можно оценить как потенциальную и если только от этого парсер стал говнопарсером... ну что же.. тогда и вся линейка венды - говно оси и маков и линуксов...

Profesor08

Цитата: epmak от 2014 Окт. 13, 04:24  ну что же.. тогда и вся линейка венды - говно оси и маков и линуксов...
продолжая линейку, тогда и сам SQL - говно, так как позволяет таким запросам проходить  :trollface:

А вообще, достаточно проверить длину логина от 4 до 10(обычно) и

Regex reg = new Regex(@"^[a-zA-Z0-9_]*$");
if (!reg.IsMatch(user))
{
  throw new Exception("Account must contain only a-zA-Z0-9_ simbols");
}

epmak

#7
суть не в том как, а цель.  + надо учитывать откуда берется файл для чтения.
но если это строго для му, то банальная проверка на кавычки и обрезка до 10 символов и все. все остальное там просто не надо. оверинжиниринг ни к чему хорошему никогда не приводил.
а, да, и настройки вывести в саму программу и сделать ей морду.  консолька - это круто, но xml для кого-то станет пыткой, имхо.

Белый

Цитата: epmak от 2014 Окт. 13, 12:20  суть не в том как, а цель.  + надо учитывать откуда берется файл для чтения.
но если это строго для му, то банальная проверка на кавычки и обрезка до 10 символов и все. все остальное там просто не надо. оверинжиниринг ни к чему хорошему никогда не приводил.
а, да, и настройки вывести в саму программу и сделать ей морду.  консолька - это круто, но xml для кого-то станет пыткой, имхо.
Если человек не может заполнить конфиг, то пусть не ставит сервера.
Софт был написан для личного использования, на скорую руку, главное, что програграма работает. В будущем программа будет обновлена. -  это можно сказать даже не бетка, а альфа.

p.s. Чем развивать демагогию, лучше бы каждый из вас принес хоть какую то пользу данному форуму и комуне в целом (даже в ввиде такой сромной програмки).

3577679

з пасер перестал запускатся  s:( s:(

Спойлер
[12:48:03] [Database] select * from mmotop_vote where v_id = 44595692
[12:51:12] [System] Welcome to zParser 0.0.0.1
[12:51:14] [System] Loaded 1 parsers
[12:51:14] [System] Parser (Index: 0) has been started
[12:51:14] [Database] select * from mmotop_vote where v_id = 44595692
[12:51:18] [System] Welcome to zParser 0.0.0.1
[12:51:19] [System] Loaded 1 parsers
[12:51:19] [System] Parser (Index: 0) has been started
[12:51:19] [Database] select * from mmotop_vote where v_id = 44595692
[12:52:11] [System] Welcome to zParser 0.0.0.1
[12:52:12] [System] Loaded 1 parsers
[свернуть]

Похожие темы (5)

Сообщений: 11
Просмотров: 7389

Сообщений: 6
Просмотров: 3719

Сообщений: 19
Просмотров: 10588