Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
objaa
42 / 42 / 28
Регистрация: 06.07.2011
Сообщений: 353
1

Цикл работает неправильно, в то время как POST работает

31.08.2011, 23:15. Просмотров 975. Ответов 7
Метки нет (Все метки)

Всем привет!
Я хотел написать под php скрипт с авторизацией, брут, на своем сайте(подбор пароля).
Написал код на загрузку словаря + сразу посылку данных на авторизацию.
Словарь состоит из 5 строк, 1 из них с рабочими данными.
Использовал такой код:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//Диалоговое окошко
            using (OpenFileDialog op = new OpenFileDialog()
            {
                InitialDirectory = Application.StartupPath,                
                FileName = String.Empty,
                Filter = "Text Files|*.txt"
            })
            {
                // Если результат диалогна это нажатия кнопки ОК
                if (op.ShowDialog() == DialogResult.OK)
                {
                    richTextBox1.Clear();
                    string textIzFaila = new StreamReader(op.FileName).ReadToEnd();//Читаем то, что открыли
                    string[] novieStroki = new string[] { "\n" };//Типо переход на новые строки
                    string[] Massiv = textIzFaila.Split(novieStroki, StringSplitOptions.RemoveEmptyEntries);
                    //if (MessageBox.Show("Начать сейчас") == DialogResult.Yes)
                    //{
                        for (int i = 0; i < Massiv.Length; i++)
                        {
                            string[] stroka = Massiv[i].Split(Convert.ToChar(":"));
                            //richTextBox1.AppendText(stroka[0] + ":" + stroka[1]);
                            String secondStepForm = "login=" + stroka[0] + "&password=" + stroka[1];
                            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://forobject.tk/avt2.php");
                            request.UserAgent = "Opera/9.80";
                            request.Method = "POST";
                            request.ContentType = "application/x-www-form-urlencoded";
                            byte[] EncodedPostParams = Encoding.ASCII.GetBytes(secondStepForm);
                            request.ContentLength = EncodedPostParams.Length;
                            request.GetRequestStream().Write(EncodedPostParams, 0, EncodedPostParams.Length);
                            request.GetRequestStream().Close();
                            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                            string html = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("windows-1251")).ReadToEnd();
                            if (html.IndexOf("успешно прошла") != -1)//Слова если все хорошо, т.е аккаунт рабочий.
                            {
                                richTextBox1.AppendText("Рабочий: " + stroka[0] + ":" + stroka[1]);
                            }
                            else
                            {
                                richTextBox1.AppendText("Не Рабочий: " + stroka[0] + ":" + stroka[1]);
                            }
 
                        }                   
                    
                }
            }
Но он выдает на все строки, что они не рабочие.
Пробовал отправку простого пост-запроса, и все работало(сразу с рабочим аккаунтом)
POST запрос тот же, что и указан выше, только без цикла
В чем же моя ошибка?
И возможно ли упростить код?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.08.2011, 23:15
Ответы с готовыми решениями:

Неправильно работает цикл ArgumentOutOfRangeException
Использую 2 цИкла. Сначала задавал условие переменной(потом просто цИфрами) и цИклы должны были...

цикл работает неправильно, не получается закрасить окружность попиксельно C#
Добрый день! Помогите пожалуйста с решением проблемы, не пойму, что я делаю не правильно...Вобщем я...

Неправильно работает цикл for, и функции работают неправильно
1) Неправильно работает цикл for(k=0...). Входит только 1 раз, дальше вылетает. Делал пошаговую...

Post-запрос неправильно работает
Есть такой вот запрос: response = requests.post( upload_url, files = {'photo':...

Неправильно работает post запрос Ajax к php
JS-функция делает post запрос к файлу process.php который проверяет наличие пользователя в БД. Если...

7
Koran
мастер топоров
884 / 709 / 101
Регистрация: 16.08.2009
Сообщений: 1,476
01.09.2011, 10:46 2
тоесть на все варианты брута ругается что пароль неверен или на сам код ругается?
код запроса кажется корректен и ничего убирать не стоит - пускай себе видит как оперу
0
objaa
42 / 42 / 28
Регистрация: 06.07.2011
Сообщений: 353
01.09.2011, 17:15  [ТС] 3
Koran, через брут он просто не определяет рабочего аккаунта.
А через простой пост запрос он все определяет.(1 запрос вне цикла)
0
Koran
мастер топоров
884 / 709 / 101
Регистрация: 16.08.2009
Сообщений: 1,476
01.09.2011, 17:17 4
тоесть он выдает постоянно ошибку что все комбинации нерабочие или вообще ничего не выдает? попробуйте пошагово пройтись по циклу и посмотреть на переменные
0
01.09.2011, 17:17
objaa
42 / 42 / 28
Регистрация: 06.07.2011
Сообщений: 353
01.09.2011, 18:15  [ТС] 5
Koran, он показывает, что все аккаунты не валидные (выводит в рич бокс)
0
Koran
мастер топоров
884 / 709 / 101
Регистрация: 16.08.2009
Сообщений: 1,476
01.09.2011, 18:18 6
ну тада я х3 - проверяйте пошагово значения переменных в цикле )
0
Slap
177 / 173 / 14
Регистрация: 17.01.2011
Сообщений: 349
01.09.2011, 18:27 7
Кинь на форму для теста RichTextBox и сделай вывод туда всех результатов "string html". На вид код рабочий, формирование POST запроса правильное. А значит, скорее всего вопрос в кодировке или защите сервера (допустим, в запросе должна быть информация о странице, с которой перешли).

Посмотрел я страницу по ссылке - странная она какая то. Это для тестирования? Я с пустыми полями нажал кнопку и успешно авторизировался.
0
objaa
42 / 42 / 28
Регистрация: 06.07.2011
Сообщений: 353
01.09.2011, 22:33  [ТС] 8
Slap, скрипт авторизации я взял первый который попался

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php
//Пример скрипта авторизации (сессии)
session_start();
if ( $_SESSION['ok'] == 1 ) {
    $logged = '1';
}elseif ( !$_POST ) {
    $logged = false;
}else{
    $users = array( 'userName' => 'pas123' );
 
    if ( $users[$_POST['login']] == $_POST['password'] ) {
        $logged = 'ok';
        $_SESSION['ok']   = 1;
    }else{
        $logged = 'fall';
    }
}
?>
<html>
<head>
<title>Скрипт авторизации</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<?php
echo ' <a href="">текущая страница</a><br>';
 
if ( $logged == 1 ) {
    //приветствие авторизованному пользователю
    echo ' Приветствуем Вас. ';
 
}elseif ( $logged === false ) {
    //вывод формы авторизации
    echo ' Авторизуйтесь ';
?>
<form  action=""  method="post">
<input  type="text"  name="login"   value="">
<input  type="password"  name="password"   value="">
<input  type="submit"   value="Отправить данные">
</form>
<?php
    
}elseif ( $logged == 'fall' ){
    //авторизация не прошла
    echo 'авторизация не прошла';
    
}elseif ( $logged == 'ok' ){
    //сообщение об успешной авторизации
    echo 'авторизация успешно прошла';
    
}
 
session_write_close();
?>
</body>
</html>



/////В словаре оставил только 1 строчку с валидным акком, и его он сбрутил (т.е аккаунт нашел)
////Но из-за чего же это может быть?) delay?(задержка)

Добавлено через 57 минут

Вот так выглядит лог рич бокса.
Т.е предпоследний аккаунт (по идее рабочий), считает не валидным

Добавлено через 2 часа 59 минут
Переписал код с самого начала, сделал задержку таймером в 1.2 секунды и сразу все сбрутило.


Спасибо за помощь
0
01.09.2011, 22:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.09.2011, 22:33

Неправильно работает цикл
почему выводит последнее значение в таблице(т.е. из последней строки) и 7 раз а в таблице 5 строк ...

Неправильно работает цикл
Эта программка должна брать по символу/числу из Edit1 отнимать 200 *200-66(B)=134*и затем...

Цикл работает неправильно
Цикл отрабатывает только 1 раз. Не выполняется условный оператор. FASM org 100h jmp start...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru