python爬虫笔记:单个页面的爬取

前言 学习Python爬虫技术也是一件需要大量实践的事情,因为并不是所有的网站都对爬虫友好,更多的一种情况是网站为了限制爬虫不得不在最小化影响用户体验的前提下对网站访问做出一定的限制,最常见的就是一些网站的注册和登录页面出现的验证码。 12306网站的验证码在很长一段时间内饱受诟病,最初其复杂程度已经影响到了用户交互体验,但是为什么12306没有选择为了用户体验而放弃验证码? 因为验证码就像是一个门槛,它主要针对的并不是人,而是可能含有恶意的计算机程序。 12306网站堪称掌握地表最强开发和维护技术,它每天运行的服务器压力几乎都等同于双十一,高峰时段的操作压力甚至远超双十一十几倍。 这是个提供刚需服务的网站,稳定的重要性在一定程度上是大于用户体验的,如果没有验证码,那么程序就可以轻而易举的执行登录、注册等操作。 像我上一篇文章中提到的自动抢票软件,刷新访问的频率越高,对12306服务器的压力就越大。12306也不能分辨屏幕前坐着的到底是不是人,所以只能采取最简单粗暴的人机识别方法:验证码。 扯远了,不过这也是我们后续会遇到的反爬虫手段之一。 既然是爬虫,当然还是要先确认目标网站,这里推荐一个我认为非常不错的爬虫练习网站:镀金的天空 这个网站中从易到难列出了8中反爬虫的挑战,今天要讲的就是其中的基础1:爬取单页数据并计算数据和 分析页面元素 按下f12调出开发者工具选择我们需要操作的数据,注意这里需要我们记录下数据在html文件中的特征 它是在一个名为col-md-1的div下的数,这个特征为我们之后的数据提取提供了依据。 可能有的小伙伴不太懂html代码,这里简单提一下html语法的一些特性: 标签通常成对出现且分别用于闭合彼此(和我们之前讲的Python中的代码块相似,需要明确出元素开始和结束的位置) 标签通常可命名(本例中的class就是一中定义名称的方式,类似的还有id,作用相当于一个考场有50份题目一样的试卷,但是只有写了你名字的那个才算是你的试卷,同时也是为了定位到具体的数据) html代码中不同的标签有不同的定义关键字 html中可内嵌css和javaScript代码,也可以从外部引入它们 内嵌就是直接写在当前html文件中 html,css,javascr 阅读全文 箭头
3个评论-3219个浏览
收藏 收藏

组件攻击链 | Spring全家桶各类RCE漏洞浅析

Spring全家桶简介Spring发展到现在,全家桶所包含的内容非常庞大,这里主要介绍其中关键的5个部分,分别是spring framework、 springboot、 spring cloud、spring security、spring mvc。其中的spring framework就是大家常常提到的spring, 这是所有spring内容最基本的底层架构,其包含spring mvc、springboot、spring core、IOC和AOP等等。Spring mvc就是spring中的一个MVC框架,主要用来开发web应用和网络接口,但是其使用之前需要配置大量的xml文件,比较繁琐,所以出现springboot,其内置tomcat并且内置默认的XML配置信息,从而方便了用户的使用。下图就直观表现了他们之间的关系。而spring security主要是用来做鉴权,保证安全性的。Spring Cloud基于Spring Boot,简化了分布式系统的开发,集成了服务发现、配置管理、消息总线、负载均衡、断路器、数据监控等各种服务治理能力。整个spring家族有四个重要的基本概念,分别是IOC、Context、Bean和AOP。其中IOC指控制反转,在spring中的体现就是将对象属性的创建权限回收,然后统一配置,实现解耦合,便于代码的维护。在实际使用过程中可以通过autowired注解,不是直接指定某个类,将对象的真实类型放置在XML文件中的bean中声明,具体例子如下:Spring将所有创建或者管理的对象称为bean,并放在context上下文中统一管理。至于AOP就是对各个MVC架构的衔接层做统一处理,增强了代码的鲁棒性。下面这张图就形象描述了上述基本概念。  各子组件介绍Spring发展至今,整个体系不断壮大,子分类非常庞大,这里只对本次涉及的一些组件做简单的介绍。首先是Spring Websocket,Spring内置简单消息代理。这个代理处理来自客户端的订阅请求,将它们存储在内存中,并将消息广播到具有匹配目标的连接客户端。Spring Data是一个用于简化数据库访问,并支持云服务的开源框架,其主要目标是使数据库的访问变得方便快捷。Spring Data Commons是Spring Data下所有子项目共享的基础框架,Spring 阅读全文 箭头
5个评论-3672个浏览
收藏 收藏

CTF逆向题中的编程技巧

最近一直在学习逆向相关的东西,发现了一道好玩的题目。题目难度不高,但用到了各种编程姿势。很秀!先看看题目到底是什么样的吧,这是一道2017年的bsidessf-ctf中的一道题目。一眼就了然了,程序会比较计算机名,操作系统版本,cpu型号来给出最后的flag。这篇文章不关注如何得到flag,关注的是出题人如何获得计算机名等信息,并怎样花式退出程序的。使用管道进行与子进程的通信先看获得计算机名的过程吧:父进程创建了一个管道pipe,然后又fork了一个子进程,让子进程来使用uname -n来读取计算机名。然后父进程等待子进程结束,再从被重定位的管道里读取计算机名结束进程姿势1接下来看看如果名字对不上是怎么结束进程的呢:raise(9)这个就是kill -9 +pid的意思了读取文件并截获版本号现在我们看程序是怎么获得操作系统信息的:程序会读取/proc/version文件的内容,然后截取第二个空格,最后再截取到不是字母或者数字或者“.”的那一位。如图,用红线标出的第二个空格,和后面第一个“-”号(不是字母、数字、也不是“.”)。他们之间的字符就是程序最后读取的字符。结束进程姿势2s1 /= v5 /v5 -1一个除0异常!这也会导致进程退出!获得CPU型号这段程序使用了一个汇编指令cpuid,我们去调试看看它到底返回了什么返回了这么一串东西到我们的字符串里,把他们转换成字符串:原来是AuthenticAMD这个字符串结束进程姿势3.text:0000000000402832 mov eax, 1 .text:0000000000402837 xor ebx, ebx ; status .text:0000000000402839 int 80h ; LINUX - sys_exitint 80是linux的系统调用,至于调用什么系统调用则由eax寄存器的值决定这里eax的值是1,查看unistd.h的内容:#define __NR_exit 1 所以这里三条指令就是进程退出的意思了。至于int 80 具体进行系统调用的动作,又可以说一大堆了….这里就不说了,感兴趣的可以去查阅linux内核的相关资料~~~~转载 阅读全文 箭头
6个评论-3731个浏览
收藏 收藏

CVE-2020-600/6009/6010/11511:在线学习平台多安全漏洞

漏洞概述 研究人员在最常见的Learning Management Systems(LMS)插件LearnPress、LearnDash和LifterLMS中发现了多个安全漏洞,包括权限提升漏洞、SQL注入、远程代码执行漏洞。 研究人员共发现了4个漏洞,分别是CVE-2020-6008、CVE-2020-6009、CVE-2020-6010和CVE-2020-11511。攻击者利用这些漏洞可以让学生甚至非认证的用户获取敏感细腻些、编辑个人记录,甚至控制LMS平台。 漏洞分析 LearnPress漏洞 是WordPress最主流的LMS插件,可以让网站管理员很容易地创建和销售在线课程。据BuiltWith消息,LearnPress是在线学习管理系统中排名第二的互联网平台,安装量超过24000。据WordPress插件网站官方消息,其安装量超过80000+,开发插件的公司称该插件在超过21000所学校使用。漏洞影响版本号低于3.2.6.7的LearnPress版本。 CVE-2020-6010: SQL注入 该漏洞是一个根据时间的盲注入漏洞,很难发现和利用。类LP_Modal_Search_Items的方法_get_items存在SQL注入漏洞。该方法在将用户提供的数据作为SQL查询之前没有进行正则处理。经过认证的用户可以调用Ajax方法learnpress_modal_search_items来触发该漏洞,该方法会执行以下链: LP_Admin_Ajax::modal_search_items → LP_Modal_Search_Items::get_items → LP_Modal_Search_Items::_get_items. CVE-2020-11511: 权限提升为教师 该漏洞是一个继承性质的权限提升漏洞。 函数learn_press_accept_become_a_teacher可以用来将一个注册的用户升级为teacher角色,导致权限提升。由于代码没有检查请求用户的权限,因此任意的学生角色都可以调用该函数: function learn_press_accept_become_a_teacher() { $action = ! e 阅读全文 箭头
4个评论-3285个浏览
收藏 收藏

嵌入式安全利器JTAGulator的制作与调试实战

嵌入式安全利器JTAGulator的制作与调试实战前言在线调试(OCD,On-Chip Debugging)接口可以提供对目标设备的芯片级控制,是工程师、研究人员、黑客用来提取程序固件代码或数据、修改存储器内容或改变设备操作的主要途径。如果你熟悉硬件电路或嵌入式系统,那么你肯定知道JTAG(Joint Test Action Group)和UART(Universal Asynchronous Receiver/Transmitter)可以说是使用最多的串行通信接口。JTAG规范没有标准的接口定义,所以你可以在各种PCB硬件上中见到4-20pin的JTAG Header,而且各个引脚的功能定义也无法确定,这给调试工作造成了很大的麻烦,下图列举了4种接口定义,有ARM公司的定义,有ST公司的定义等等。那如何知道引脚定义呢?传统的做法是通过逻辑分析仪做信号分析来解决,但是这样既费时费力又容易出错。于是自动化识别JTAG接口的设备便诞生了,例如有JTAGulator、JTAGenum、JTAG Finder、JTAG Pinout Tool等等,目前来说最好用的还是JTAGulator。JTAGulator是一个开源硬件工具,可用于识别目标设备上测试点、过孔或元件焊盘的OCD连接,进而可以使用Attify Badge接线并读取程序固件。JTAG规范JTAG是联合测试工作组(Joint Test Action Group)的简称,是在名为标准测试访问端口和边界扫描结构的IEEE的标准1149.1的常用名称。此标准用于验证设计与测试生产出的印刷电路板功能。1990年JTAG正式由IEEE的1149.1-1990号文档标准化,在1994年,加入了补充文档对边界扫描描述语言(BSDL)进行了说明。从那时开始,这个标准被全球的电子企业广泛采用。边界扫描几乎成为了JTAG的同义词。JTAG的主要三大功能:下载器,即下载程序固件到设备FLASH芯片。DEBUG,类似于医生的听诊器,可以探听芯片内部的错误。边界扫描,可以访问芯片内部的型号逻辑状态,还有芯片引脚的状态等等。在JTAG接口中,最常用的信号有五个,分别是TCK / TMS / TDO / TDI / TRST,其中4个是输入信号接口,另外1个是输出信号接口。JTAG最初是用来对芯片进行测试的,其基本原理是在器件内部定义一个TA 阅读全文 箭头
8个评论-4058个浏览
收藏 收藏

怎么进行SRC漏洞挖掘?

莓办法: [信息收集]!!!首先信息收集是比较重要的!信息收集是第一步也是最重要的一步!收集的数量取决于后期你所挖掘出漏洞的几率!所谓万事开头难。对于我个人来言,在决定认认真真挖掘一家厂商漏洞时,刚开始最难的就是信息收集,这是耗费精力最大,占用时间最长的一个环节,而且它是一个持续性的过程。SRC漏洞挖掘中需要收集的信息大概包括1.厂商域名和IP段2.厂商业务信息因为这是安全测试行为,并不是真正的攻防对抗行为,因此某些信息收集并不需要面面俱到。[子域名收集]首先来说厂商域名收集,因为这里其实厂商会在在规则中划定测试业务及域名,这里我们对兄弟域名挖掘不做赘述,我们只说说子域名。针对子域名,互联网上各种方法其实很多了基于SSL证书查询第三方网站接口查询githubDNS解析记录子域名枚举等等我为什么把基于SSL证书查询子域名放在第一-位,这里其实是有我一个心路历程的。在去年12月份,我才开始使用这个方法去收集子域名,但其实这个方法在很久之前就披露了,因为我之前挖掘网易SRC漏洞已经两年多了,我认为我收集的网易域名信息已经尽可能的足够完整了。但是用了这个方法后,才知道还是有很多东西没有收集到。所以当-种需求出现不同方法时,还是应该多去尝试,不能满足于现状。基于SSL证书查询的有http://censys.iocrt.sh第三方接口查询网站有riskiqshodanfindsubdomainshttp://censys.iohttp://dnsdb.io这里DNS解析记录和子域名枚举我会放到下面字典环节说到。这里分享-个案例,我利用基于SSL证书查询到一个二级域名并在Github发现这个二级域名相关的三级域名测试代码,拿到生产网权限。通过crt.sh查询发现了二级域名nss.a.com,这里其实我也使用了子域名枚举工具,但没发现什么可以利用的东西。这时候我把二级域名放到Github'下搜索,发现有个三级域名的接口这里直接构造GET请求,发现提示缺少参数,参数名也提示了我当时看了下代码,代码中要求请求头需要设置类型为json,所以正确的请求包如下这时候我想到了fastjson反序列化漏洞,尝试下成功进入生产内网这里单独提出Github寻找子域名就是因为这个原因,有时候大范围的搜索子域名效果并不明显,我们需要更加针对性的搜索子域名再寻找目标,对了,github在登录状态下搜索返回的结果会更 阅读全文 箭头
3个回答-3538个浏览
收藏 关注 收藏 收藏
更多

加载中,请稍候

请求超时,点击重新加载

提问
写文章

装饰 推荐专栏

换一换

边信道
白帽训练营
晟凯科技
数智科技

装饰 权威推荐

广东省应急响应平台
广东网警
广东省计算机信息网络安全协会
专栏
小密圈

装饰 安全达人

换一换

倒影年华
壮观的老师
如意的电源
附页
舒服的钢笔
Lang
sunon
魔幻的高山