search
HomeBackend DevelopmentPython TutorialHow to use Python to automatically fill in questionnaires

How to use Python to automatically fill in questionnaires

Sep 07, 2017 am 09:51 AM
pythonaccomplishinvestigation

This article mainly introduces relevant information about automatically filling in questionnaires through Python. Friends who need it can refer to it

0X00 Preface

School is about to start, and I saw various requests for filling out questionnaires in the space, and then I remembered that I haven’t done it yet. I don't like this kind of meaningless questionnaire, so I plan to use "stunt" to complete it, that is, python. By the way, I will review python again, which I haven't used in a long time. Next, the performance begins...

0X01 Code writing ideas

First create a questionnaire

We fill out a random questionnaire and submit it, and open Burpsuite to intercept the data packets before submitting.

Analyze the intercepted data packets, and some of them are URL encoded. It is not conducive to analysis. You can use the Burpsuite encoding module to decode and replace it, so that it is easier to analyze.

# Through observation, we can find that a strange string of data is posted: submitdata=1$2}2$3}3$3}4$4}5$3}6$2}7$4}8$2}9$3}10$3. Careful analysis shows that the data probably means this. submitdata = question number $ option number } question number $ option number } question number $ option number }......

Use this information to start writing python programs

The running results are as follows

It seems that the website has other anti-crawler mechanisms. After submitting several forms in succession, A verification code appears. Do we need to add the function of identifying verification codes to the program at this time? Actually, no, we can first analyze the header information just intercepted by Burpsuite to see how the website identified that we used a crawler to submit the questionnaire.

After some testing, I found that when I submitted 3 questionnaires in a row, and then changed another IP to submit 3 questionnaires, that is I submitted 6 questionnaires in a row, but the anti-crawler mechanism of the website was not triggered. So we can guess that the other party identifies the crawler program based on the frequency of IP submission of questionnaires. Seeing this, you may think that we can submit the questionnaire through a free online agent. For example these

Does that mean we have to add the function of extracting free proxy IP to the python code? NO NO NO! To change the way of thinking, you will encounter a problem in the CTF competition. For example, you can get the flag only if your IP is from Germany. Therefore, our idea is to spoof the data packet header, forge our IP, and deceive the server. Let’s talk about several ways to fake 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

Let’s try each one, and then we can see the source of our questionnaire in the background statistics

Here we found that X-Forwarded-For can be used to bypass it. We will use this method to add the X-Forwarded-For field in the header information, so the modified script is as follows

The running results are as follows

Go to the background to check the statistics

At this point, we have solved the task perfectly. If you want to remove IP addresses outside the questionnaire, you can collect Chinese IP address segments, then add them to the program and process them.

0X02 Summary

Everyone can usually apply what they have learned to real life. When you encounter difficulties, don’t panic and think more. , find the optimal solution. For example, above, I did not add a verification code recognition module to the code, nor did I use a proxy to bypass the website's anti-crawler mechanism. Instead, I analyzed the website's anti-crawler mechanism and used the security knowledge I learned (HTTP Header deception) Solve the problem easily and complete the task perfectly using the shortest code.

The above is the detailed content of How to use Python to automatically fill in questionnaires. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
How does the choice between lists and arrays impact the overall performance of a Python application dealing with large datasets?How does the choice between lists and arrays impact the overall performance of a Python application dealing with large datasets?May 03, 2025 am 12:11 AM

ForhandlinglargedatasetsinPython,useNumPyarraysforbetterperformance.1)NumPyarraysarememory-efficientandfasterfornumericaloperations.2)Avoidunnecessarytypeconversions.3)Leveragevectorizationforreducedtimecomplexity.4)Managememoryusagewithefficientdata

Explain how memory is allocated for lists versus arrays in Python.Explain how memory is allocated for lists versus arrays in Python.May 03, 2025 am 12:10 AM

InPython,listsusedynamicmemoryallocationwithover-allocation,whileNumPyarraysallocatefixedmemory.1)Listsallocatemorememorythanneededinitially,resizingwhennecessary.2)NumPyarraysallocateexactmemoryforelements,offeringpredictableusagebutlessflexibility.

How do you specify the data type of elements in a Python array?How do you specify the data type of elements in a Python array?May 03, 2025 am 12:06 AM

InPython, YouCansSpectHedatatYPeyFeLeMeReModelerErnSpAnT.1) UsenPyNeRnRump.1) UsenPyNeRp.DLOATP.PLOATM64, Formor PrecisconTrolatatypes.

What is NumPy, and why is it important for numerical computing in Python?What is NumPy, and why is it important for numerical computing in Python?May 03, 2025 am 12:03 AM

NumPyisessentialfornumericalcomputinginPythonduetoitsspeed,memoryefficiency,andcomprehensivemathematicalfunctions.1)It'sfastbecauseitperformsoperationsinC.2)NumPyarraysaremorememory-efficientthanPythonlists.3)Itoffersawiderangeofmathematicaloperation

Discuss the concept of 'contiguous memory allocation' and its importance for arrays.Discuss the concept of 'contiguous memory allocation' and its importance for arrays.May 03, 2025 am 12:01 AM

Contiguousmemoryallocationiscrucialforarraysbecauseitallowsforefficientandfastelementaccess.1)Itenablesconstanttimeaccess,O(1),duetodirectaddresscalculation.2)Itimprovescacheefficiencybyallowingmultipleelementfetchespercacheline.3)Itsimplifiesmemorym

How do you slice a Python list?How do you slice a Python list?May 02, 2025 am 12:14 AM

SlicingaPythonlistisdoneusingthesyntaxlist[start:stop:step].Here'showitworks:1)Startistheindexofthefirstelementtoinclude.2)Stopistheindexofthefirstelementtoexclude.3)Stepistheincrementbetweenelements.It'susefulforextractingportionsoflistsandcanuseneg

What are some common operations that can be performed on NumPy arrays?What are some common operations that can be performed on NumPy arrays?May 02, 2025 am 12:09 AM

NumPyallowsforvariousoperationsonarrays:1)Basicarithmeticlikeaddition,subtraction,multiplication,anddivision;2)Advancedoperationssuchasmatrixmultiplication;3)Element-wiseoperationswithoutexplicitloops;4)Arrayindexingandslicingfordatamanipulation;5)Ag

How are arrays used in data analysis with Python?How are arrays used in data analysis with Python?May 02, 2025 am 12:09 AM

ArraysinPython,particularlythroughNumPyandPandas,areessentialfordataanalysis,offeringspeedandefficiency.1)NumPyarraysenableefficienthandlingoflargedatasetsandcomplexoperationslikemovingaverages.2)PandasextendsNumPy'scapabilitieswithDataFramesforstruc

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment