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-Forwarded-For可以绕过,按我们就用这种方法在header信息中添加X-Forwarded-For字段,所以修改后的脚本如下

运行结果如下

再到后台看看统计信息

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

0X02总结

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

原文链接:http://www.tuicool.com/articles/IbYZzqm

如何用python编写问卷调查_通过Python实现自动填写调查问卷相关推荐

  1. 如何用python编写问卷调查_如何通过Python实现自动填写调查问卷

    0X00 前言 快开学了,看到空间里面各种求填写调查问卷的,我才想起来貌似我也还没做.对于这种无意义的问卷,我是不怎么感冒的,所以我打算使用"特技"来完成,也就是python,顺便 ...

  2. python编写代码_用 Python 编写干净、可测试、高质量的代码

    用 Python 编写干净.可测试.高质量的代码 Noah Gift 2010 年 12 月 20 日发布 简介 编写软件是人所承担的最复杂的任务之一.AWK 编程语言和 "K and R ...

  3. python编写登录_通过Python编写一个简单登录功能过程解析

    通过Python编写一个简单登录功能过程解析 需求: 写一个登录的程序, 1.最多登陆失败3次 2.登录成功,提示欢迎xx登录,今天的日期是xxx,程序结束 3.要检验输入是否为空,账号和密码不能为空 ...

  4. 用python编写神经网络_用Python实现神经网络(第5周)的代价函数

    基于Coursera的机器学习课程,我试图用python实现神经网络的代价函数.有一个question类似于这个--有一个可接受的答案--但答案中的代码是用八度音阶编写的.为了不偷懒,我已经尝试将答案 ...

  5. unity可以用python编写吗_基于python的Cා代码生成器(用于服务并应用于unity),一个,c,为了,并且,Unity...

    为了满足项目需要,本人需要实现一个c#代码生成器(使用python开发),为此设计了一个语法模板适用于Unity的代码生成器.本次使用了Python的Template模板,使用python开发. ## ...

  6. python编写古诗_用Python实现古诗词填字游戏(一)

    利用古诗词做填字游戏是一项很有趣的活动,通常的填字游戏都是由几横几竖构成,如下图: 显然,横竖交叉的位置就是两句诗共有的字.那么,问题来了,如何从众多诗文中找到有共同字的句子呢? 这里Mr. PosP ...

  7. 怎么用python编写记事本_利用Python开发实现简单的记事本

    利用Python开发实现简单的记事本 最近想对 python 加深学习一下,同时也是想试着做一些东西,所以使用 python, 结合 Tkinter 来做一个简单的跨平台记事本.最终实现的记事本如下, ...

  8. python编写篮球_自制python版篮球经理游戏(1)—准备

    今天突发奇想,打算做一个单击模拟版的篮球经理游戏,主要功能包括随机组队.抽卡.更换阵容和模拟比赛.具体的等想到了再往里添加,目前设计的游戏流程是这样的: 今天就先来完成准备工作. 尽然是模拟抽卡的游戏 ...

  9. python编写篮球_自制python版篮球经理游戏(5)—代码

    游戏已全部完成,虽然和最初的设计有了些许偏差,但完成度达到了90%以上.完整代码在附件里,注释介绍了一些算法逻辑,并未对语句做详细地讲解,不过都是tkinter的一些基本语句,有疑问的地方直接百度即可 ...

  10. python编写我爱你_我爱你Python——情人节快乐

    今天是2月14日,嗯,这是一个单身贵族的节日!从昨晚12点到现在朋友圈,空间一直都在秀. 你说秀就秀吧,我还发现竟然有秀重复的,嗯,你们都懂得!这也太休了吧!!!! 好友们都在秀,我呢?我当然不是一个 ...

最新文章

  1. python的计算符号说明_python中的计算符号
  2. ToolProvider.getSystemJavaCompiler() return null 的解决方法
  3. 微信支付—微信H5支付「非微信内部浏览器-QQ/UC浏览器等」
  4. js理解 call( ) | apply( ) | caller( ) | callee( )
  5. cad计算总长度插件_超实用的CAD插件大合集,视频教程手把手教学,工作效率翻倍...
  6. 采样定理实验报告matlab,matlab验证时域采样定理试验报告
  7. Java编程的逻辑 (43) - 剖析TreeMap
  8. hdb interface驱动是什么_Linux USB 鼠标驱动程序详解
  9. 如何做一个有品位的程序员
  10. domino生成Excel图表
  11. java web 读取txt文件_java读取TXT文件
  12. 深度学习面试题集锦【1】
  13. 可编程渲染管线(SRP)_学习笔记
  14. MLAPP————第十四章 核方法
  15. mysql主从配置文件
  16. 保研推免经历经验分享——2018北大软微、北航计算机、南大计算机夏令营保研经历
  17. GATK官方教程 / 概述及工作前的布置
  18. vue项目没有router文件夹_router文件夹
  19. 打开网站服务器显示403,打开网站显示403是什么意思
  20. 《CSS实战案例汇总》涟漪

热门文章

  1. TIBCO Spotfire 入门指南
  2. 【前端】vuecli项目引入ant-design-vue并用ant-design-vue配置阿里巴巴矢量图标库
  3. MYSQL监控工具--mytop
  4. 【关键词排名点击软件】网站关键词挖掘常用的五个工具
  5. 指纹识别算法c++实现
  6. nodejs代理请求转发
  7. 城市应急指挥系统详情分析及建设方案概述
  8. windows11彻底关闭Microsoft Defender 安装注册机
  9. RT-Thread 应用笔记 - libmodbus RTU 编译问题的解决
  10. 20考研率辉计算机复试(贪心法)