通过Python实现自动填写调查问卷

0X00 前言

快开学了,看到空间里面各种求填写调查问卷的,我才想起来貌似我也还没做。对于这种无意义的问卷,我是不怎么感冒的,所以我打算使用”特技”来完成,也就是python,顺便重新复习一下python,真的好久没用了。下面,表演开始……

0X01代码编写思路

首先先创建一份问卷

我们随便填写一个问卷并提交,在提交之前开启Burpsuite截获数据包

对于截获的数据包进行分析,有的被url编码了不利于分析,可以使用Burpsuite编码模块解码替换,这样就好分析了

通过观察可以发现,post了一串奇怪的数据submitdata=1$2}2$3}3$3}4$4}5$3}6$2}7$4}8$2}9$3}10$3。仔细分析可看出数据大概是这个意思submitdata=题号$选项号}题号$选项号}题号$选项号}……..

利用这些信息就可以开始编写python程序了

运行结果如下

貌似网站还有其他反爬虫机制,在连续提交几个表单之后,就出现了验证码。难道此时我们还要给程序添加上识别验证码的功能?其实不必,我们可以先分析一下刚刚Burpsuite截获的header信息,来看看到底网站是通过什么方式,识别出我们是用爬虫来提交问卷的。

通过一番测试,我发现当我连续提交3份问卷,再换一个IP提交3个问卷,也就是连续提交了6份问卷,并没有触发网站的反爬虫机制。所以我们可以猜测对方基于IP提交问卷的频率来识别爬虫程序的。看到这里,大家可能会想,我们可以通过网上的免费代理来提交问卷。例如这些

那是不是意味着我们还要往python代码中添加提取免费代理IP的功能呢?NO NO NO!换个思路,在CTF比赛中会遇到一种题目,例如你的IP是来自德国的才可以拿到flag。所以,我们的思路就是进行数据包头欺骗,伪造我们的IP,骗过服务器。下面来说说伪造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

我们每个都尝试一下,然后在后台统计那里可以看到我们的问卷来源

这里我们发现用X-Forwarded-For可以绕过,按我们就用这种方法在header信息中添加X-Forwarded-For字段,所以修改后的脚本如下

运行结果如下

再到后台看看统计信息

至此,我们算是完美的解决任务了。如果大家想去掉调查问卷中国外的IP地址,可以收集一下中国的IP地址段,然后添加进程序,处理一下即可。

0X02总结

大家平常可以把学到的东西用到实际生活中,遇到困难的时候不要慌,多思考,找到最优的解决方法。例如上面,我并没有在代码中添加验证码识别模块,也没有通过走代理的方式来绕过网站的反爬虫机制,而是通过分析网站的反爬虫机制,并且使用所学的安全知识(HTTP头欺骗)轻松解决问题,使用最短的代码完美完成任务。

(0)

相关推荐

  • 通过Python实现自动填写调查问卷

    0X00 前言 快开学了,看到空间里面各种求填写调查问卷的,我才想起来貌似我也还没做.对于这种无意义的问卷,我是不怎么感冒的,所以我打算使用"特技"来完成,也就是python,顺便重新复习一下python,真的好久没用了.下面,表演开始-- 0X01代码编写思路 首先先创建一份问卷 我们随便填写一个问卷并提交,在提交之前开启Burpsuite截获数据包 对于截获的数据包进行分析,有的被url编码了不利于分析,可以使用Burpsuite编码模块解码替换,这样就好分析了 通过观察可以发现,

  • Python实现自动填写脚本流程详解

    目录 前言 环境使用 模块使用 本次案例代码实现思路 最终效果 代码实现 前言 环境使用 Python 3.8 Pycharm 模块使用 import requests —> 数据请求模块 pip install requests import parsel —> 数据解析模块 pip install parsel from selenium import webdriver —> 自动测试模块 pip install selenium==3.141.0 本次案例代码实现思路 打开考试网

  • Python+Selenium实现自动填写问卷

    目录 前提条件 相关介绍 实验环境 填写问卷 问卷地址 获取Xpath 主要思路 代码实现 输出结果 前提条件 熟悉Python 熟悉HTML 熟悉Xpath 熟悉Selenium 相关介绍 Python是一种跨平台的计算机程序设计语言.是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言.最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的.大型项目的开发. Time是python标准库,无需额外下载,主要用于处理时间问题. Random

  • Python实现疫情通定时自动填写功能(附代码)

    自疫情始,学校就要求学生每天在学校内系统填写个人每日疫情相关情况,称为疫情通. 但是,由于个人原因,出现了下图情况. 记性太差,人又懒,于是决定用Python实现自动化定时任务. 1.核心模块 打开IEChrome. 打开网页按下F12拿到请求头和请求体. (假装此处有图片) Pycharm启动! 根据拿到的请求头和请求体,完成核心代码编写. url = "https://xxcapp.xidian.edu.cn/ncov/wap/default/save" headers = {'C

  • Python处理excel根据全称自动填写简称

    在工作中处理excel遇到需要根据器件生产供应商全称填写简称的一列,由于数据表格中器件数多达几万条,单纯靠excel筛选功能手动处理需要耗费大量时间,这里使用Python中的pandas模块,读取excel进行处理. 1.需求 根据存储有供应商全称简称对应的表格对应关系.xlsx,自动填写带有供应商全称的表格待处理文件.xlsx中简称的一列. 2.脚本思路 首先使用pandas读取第一个表格对应关系.xlsx,然后将其储存在一个字典中,字典的键为供应商的全称,字典的值为供应商的简称. 然后读取第

  • python生成可执行exe控制Microsip自动填写号码并拨打功能

    控制的前提是已经运行Microsip.exe 首先选择文件, 选择txt格式文件,一行一个手机号格式:如下 点击拨打下一个,就会自动输入自动拨打 代码: import tkinter import win32gui import win32con from tkinter import filedialog import tkinter.messagebox import os import time def next_phone(phone): win = win32gui.FindWindo

  • Python3+Selenium+Chrome实现自动填写WPS表单

    引言   本文通过python3.第三方python库Selenium和谷歌浏览器Chrome,完成WPS表单的自动填写. 开发环境配置   python3的安装:略,网上都有教程.   Selenium的安装:在命令行输入pip3 install selenium并回车即可完成安装,如果不成功,查找网上教程.   Chrome的安装:略,网上都有教程.   因为Selenium需要ChromeDriver来驱动Chrome,所以还需要下载驱动ChromeDriver.下面重点介绍一下Chrom

  • python实现自动打卡的示例代码

    自己也百度了一下,然后写的,分为了三个部分,见三段代码 代码:主程序代码 import timefrom selenium import webdriverfrom private_info import * import send_mail def signin_and_email(): #谷歌浏览器驱动的位置 driver=webdriver.Chrome("D:/...../chromedriver") driver.get('http://****.edu.cn/login.p

  • 基于python+selenium自动健康打卡的实现代码

    每天都要记得健康打卡 尊敬的老师,我忘了这次的健康打卡,反思的时候我想了很多东西,反省了很多事情,自己也很懊悔,触犯了学校的规定,深刻认识到自己所犯错误的严重性- 卡!那是小学生才有的检讨.作为一个有点懒的人,对于每次的健康打卡,都是做着重复性的填写,这让本人很是头疼,那就找找止疼药吧 使用的工具 需要有一定的python,html基础,和实践能力(毕竟实践出真知,实践能力强,你可以忽略前两个,你是最棒的!): Pycharm ,在pycharm官网里面下载社区版或专业版(没其他的用途推荐用社区

  • python实现自动抢课脚本的示例代码

    目录 自动抢课脚本使用手册 1.准备工作 2.配合使用py脚本和xlsx文件 3.auto_get_lesson_pic_recognize功能介绍 4.坐标版本(不建议使用) 5.代码 自动抢课脚本使用手册 @danteking dating from 2021.12.7 and last updating at 2021.12.8 gitee仓库 github仓库 借助pyautogui库,我们可以轻松地控制鼠标.键盘以及进行图像识别,实现自动抢课的功能 1.准备工作 我们在仓库里提供了2个

随机推荐