Maison  >  Article  >  développement back-end  >  Comment utiliser Python pour remplir automatiquement des questionnaires

Comment utiliser Python pour remplir automatiquement des questionnaires

巴扎黑
巴扎黑original
2017-09-07 09:51:223315parcourir

Cet article présente principalement les informations pertinentes sur le remplissage automatique des questionnaires via Python. Les amis qui en ont besoin peuvent s'y référer

0X00 Avant-propos

<.>L'école est sur le point de commencer, et j'ai vu diverses demandes de remplissage de questionnaires dans l'espace, puis je me suis rappelé que je ne l'avais pas encore fait. Je n'aime pas ce genre de questionnaire dénué de sens, donc j'ai l'intention d'utiliser "stunt" pour le compléter, c'est-à-dire python. D'ailleurs, je reverrai python, que je n'ai pas utilisé depuis longtemps. Ensuite, le spectacle commence...

0X01 Idées d'écriture de code

Créez d'abord un questionnaire

Nous remplissons un questionnaire aléatoire et le soumettons. Avant de le soumettre, permettez à Burpsuite d'intercepter les paquets de données

Analysez les paquets de données interceptés, dont certains sont interceptés. URL codée. Elle n'est pas propice à l'analyse. Vous pouvez utiliser le module d'encodage Burpsuite pour la décoder et la remplacer, ce qui facilite l'analyse. Grâce à l'observation, nous pouvons constater qu'une étrange chaîne de données est publiée : submitdata=1$2}2$3}. 3$3}4$4}5$3}6$2}7$4}8$2}9$3}10$3. Une analyse minutieuse montre que les données signifient probablement ceci. submitdata = numéro de question $ numéro d'option } numéro de question $ numéro d'option } numéro de question $ numéro d'option }......

Utilisez ces informations pour commencer à écrire des programmes Python.

Les résultats sont les suivants

Il semble que le site Web dispose d'autres mécanismes anti-crawler. formulaires successivement, un code de vérification apparaît. Devons-nous ajouter la fonction d'identification des codes de vérification au programme à ce stade ? En fait, non, nous pouvons d'abord analyser les informations d'en-tête qui viennent d'être interceptées par Burpsuite pour voir comment le site Web a identifié que nous avons utilisé un robot pour soumettre le questionnaire.

Après quelques tests, j'ai découvert que lorsque je soumettais 3 questionnaires d'affilée, puis changeais une autre adresse IP pour soumettre 3 questionnaires, c'est-à-dire que j'ai soumis 6 questionnaires d'affilée, mais le mécanisme anti-crawler du site Web ne s'est pas déclenché. Nous pouvons donc deviner que l'autre partie identifie le programme d'exploration en fonction de la fréquence de soumission des questionnaires par IP. En voyant cela, vous pensez peut-être que nous pouvons soumettre le questionnaire via un agent libre en ligne. Par exemple, ces

Cela signifie-t-il que nous devons ajouter la fonction d'extraction d'IP proxy gratuite au code python ? NON NON NON ! Pour changer votre façon de penser, vous rencontrerez un problème dans la compétition CTF. Par exemple, vous ne pouvez obtenir le drapeau que si votre IP vient d'Allemagne. Par conséquent, notre idée est d’usurper l’en-tête du paquet de données, de falsifier notre adresse IP et de tromper le serveur. Parlons de plusieurs façons de falsifier une adresse IP.


X-Client-IP:1.1.1.1
X-Remote-IP:2.2.2.2
X-Remote-Addr:3.3.3.3
X-Originating-IP:4.4.4.4
X-Forwarded-For:5.5.5.5

Nous essayons chacun d'entre eux, et nous pouvons ensuite voir la source de notre questionnaire dans les statistiques de fond

Ici, nous avons constaté que X-Forwarded-For peut être utilisé pour le contourner. Nous utiliserons cette méthode pour ajouter le champ X-Forwarded-For dans les informations d'en-tête, donc le script modifié est le suivant

Les résultats en cours d'exécution sont les suivants

Allez en arrière-plan pour vérifier les statistiques

À ce stade, nous avons parfaitement résolu la tâche. Si vous souhaitez supprimer des adresses IP en dehors du questionnaire, vous pouvez collecter des segments d'adresses IP chinoises, puis les ajouter au programme et les traiter.

Résumé 0X02

Chacun peut généralement appliquer ce qu'il a appris à la vraie vie. Lorsque vous rencontrez des difficultés, ne paniquez pas et réfléchissez davantage. . , trouvez la solution optimale. Par exemple, ci-dessus, je n'ai pas ajouté de module de reconnaissance de code de vérification au code, ni utilisé de proxy pour contourner le mécanisme anti-crawler du site Web. Au lieu de cela, j'ai analysé le mécanisme anti-crawler du site Web et utilisé les connaissances en sécurité que j'ai acquises. (Tromperie de l'en-tête HTTP) Résolvez le problème facilement et terminez parfaitement la tâche en utilisant le code le plus court.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn