2023爬虫逆向
web安全工具库
这个作者很懒,什么都没留下…
展开
-
2023安卓逆向 -- 某合伙apk登录加密分析
11、按着ctrl键,点击上面a.b,进入到下面代码,代表一个&符号,requestBody请求体,初步判断sb.toString就是。12 、通过数据包发现token是空,reqTime是时间戳,noncestr是132456,最终就是将这些值进行md5处理。7、分析上面的代码,可以看到有个setPwd函数,这个就是加密函数,继续查看谁调用了该函数,进入一个md5的加密代码。一、分析登录的数据包,加密的数值是登录的密码,看着想md5加密,请求头中,x-sign也是加密的,看着也像md5。原创 2023-05-31 15:11:06 · 1423 阅读 · 0 评论 -
2023安卓逆向 -- 抓包环境设置(Charles+Postern)
1、点击Help,选择SSL Proxying,选择 Save Charles root certificate,保存为cer文件。1、查看计算机本地ip地址,点击Help,选择Local IP Address,本地地址192.168.1.105。2、代理设置,抓取所有ip及所有端口的数据包,点击Proxy,选择SSL Proxying Settings。4、代理设置,选择Proxy,选择Proxy Settings,按照下图进行设置。2、打开Postern,选择配置代理,进行如下设置。原创 2023-05-30 08:58:35 · 1459 阅读 · 0 评论 -
JS逆向 -- 分析被加密的响应数据
四、因为要解密响应数据,所以肯定要用response关键字,在该js文件中,局部搜索“response”,t.data就是响应的加密数据,h函数是解密函数。二、这时就要从url入手,一般js里面会对对响应的加密数据进行解密,我们搜索url中的路径“/dataservice/query/comp/list”五、进入h函数,进行分析,看到aes,iv,mode,CBC等关键字,肯定是AES加密了。三、只搜到一个js文件,进去下断,并查看参数,发现正好是这个数据包提交的参数。六、将加密数据带进去解密,关键代码。原创 2023-05-26 17:25:30 · 884 阅读 · 1 评论 -
JS逆向 -- 浏览器补环境实战(sign加密分析)
四、将该三目运算复制到网站的控制台,结果是undefined,所以直接将该运算替换成void 0。三、提示报错,找不到sign函数,上面函数中,e参数里面有一个exports导致。1、由于sign函数参数不是固定,为了增加通用性,所以我们继续修改成如下代码。一、将补环境代码复制到上节课那个js文件里面。2、调用方式如下,将url地址直接写到后面。五、重新运行JS代码,成功获取sign值。3、python代码实现获取sign。六、Python代码实现加载数据。二、打印我们要的结果。原创 2023-05-25 17:56:57 · 477 阅读 · 0 评论 -
JS逆向 -- 某新闻数据包中sign值加密分析
4、单步调试,最后发现返回值为a.call(n,o)就是我们要找的数据,a=n.sign,n=window.byted_acrawler,所以最后调用的函数是window.byted_acrawler.sign(o)7、新建一个html文件,调用上面的js文件,然后在调用sign函数,传入参数,得到如下值,可以说明该加密文件是可以用的,下节继续讲解如何补环境实现。5、开始分析sign函数,e.y始终大于1的,所以最后要分析的是下面的代码。2、在关键处下断,刷新页面,断了下来,主要代码如下。原创 2023-05-24 16:41:35 · 301 阅读 · 0 评论 -
JS逆向 -- 某视频vurl值的加密分析
3、多次抓包对比发现vid、flowid、ckey是变化的,vid前面我们已经找到,flowid就是之前的pid,所以我们只需要分析ckey值。11、Wn是由Dt + qn + Gn组成,Dt是|,Gn里面的数据我们前面都获取过,通过下断,发现qn来自下面的地方。8、看看那些提示,iv,mode,pkcs7,aes等,应该是aes加密。Me函数,是很长的一段代码,所以我们主要分析一下返回值,在最后下断。4、全局搜索ckey,在关键处下断,刷新页面,断了下来,段下后,查看返回值正好是我们要找的ckey。原创 2023-05-19 18:42:48 · 988 阅读 · 1 评论 -
JS逆向 -- 某视频val值和pid值的加密分析
2、通过上下文,猜测他们一个刷新页面的时间戳,一个是点击按钮时的时间戳,然后相减。通过刷新页面,停留不同的秒数,然后点击播放按钮,正好证实这一点,所以该val值可以给个随机数,给个固定值也可以。1、F12开发者工具抓包,刷新页面,全局搜索val:,挨个下断,最终确定e-t就是关键点。2、断下来后发现,pid值来自于e,e来自于s.a.getPlayerId()函数。3、跟进s.a.getPlayerId()函数继续分析,关键代码为。1、通过全局搜索pid:,发现此处是关键点,在附近下断。原创 2023-05-18 15:37:20 · 250 阅读 · 0 评论 -
JS逆向 -- 某视频vid值的加密分析
2、刷新页面,在此处断了下来,t来自于该函数M()(window.location.href)1、F12开发者工具抓包,全局搜索vid,所有vid下断,最终确定这一个关键点。window.location.href:获取url的地址。3、跟进M函数查看,通过这段代码即可取出vid的值。三、最终python代码实现。4、JS实现获取vid。二、获取固定的时间格式。原创 2023-05-17 17:34:24 · 454 阅读 · 0 评论 -
JS逆向 -- 分析某站aid、cid、w_rid和sid的加密过程
一、清除cookie信息,刷新网页,ctrl+f搜索sid,这样找到的数据是在url里或者响应信息里面,全局搜索找到的一般都是在js里面的数据,找到一个v2的数据包,里面有setcookie。刷新视频页面,ctrl+f搜索aid,发现aid和cid,还有视频阅读量,就在网页源码中,所以可以直接python代码实现。最后的结果是32位数值,我们猜测是md5加密,经过测试,也确实是md5加密。w_rid出现了三次,都不一样,我们要的是最下面的值v2里面的w_rid。三、重新构造数据包,实现V2的发送。原创 2023-05-16 16:24:52 · 1531 阅读 · 3 评论 -
JS逆向 -- 分析某站b_lsid值加密过程
一、清除缓存,重新加载页面,全局搜索b_lsid值,挨个进行分析,找到关键代码,并下断。三、结合上节课,将JS合并一下,并通过Python调用,最终python代码如下。JS逆向 -- 分析某站buvid3和_uuid的加密过程。1、this.splitDate()获取时间信息。2、e.millisecond获取时间戳。3、l.b函数跟进去是o函数。4、l.c函数跟进去。5、最终JS代码如下。原创 2023-05-15 16:04:13 · 310 阅读 · 0 评论 -
JS逆向 -- 分析某站buvid3和_uuid的加密过程
三、重新清除cookie,刷新页面,全局搜索_uuid的值,并在关键处下断,这里是一个三元运算符,如果空值,就赋值Object(l.a)()五、将该函数复制到js编辑器,然后再找a函数和s函数,a函数又用到了o函数,正好都在附近,最终js代码加密如下。一、通过抓包,发现buvid3值存在与该链接的响应cookie中。四、进入Object(l.a)()函数。二、Python代码实现。原创 2023-05-12 15:29:39 · 684 阅读 · 0 评论 -
JS逆向 -- 某房登录加密分析
五、下断后,document.forms[0].j_password.value可以看到是原密码,desEncrypt是加密函数。九、getSessionId()查看cookies信息,点击应用,查看Cookie值,和上面获取的值一样。八、security是常量值,key和iv向量又都来自SECURITYKEY._2()函数,进入该函数。七、aes加密,需要key,iv向量,他们都来自KeyObj,进入该函数查看。六、跟踪desEncrypt函数,xForm为空,所以走的是aes加密。原创 2023-05-09 16:01:15 · 593 阅读 · 0 评论 -
JS逆向 -- 某联盟登录密码分析
四、断下来后,查看formDate的值,正好是POST提交的数据,只是此时的password还没有加密。3、加载代码,缺少biFromHex函数,查找该函数所在js文件,将JS代码全部复制。2、查找encryptedString函数所在js文件,将JS代码全部复制过来。4、重新加载代码,缺少BarrettMu函数,查找该函数所在js文件,全部复制。5、重新加载代码,没有报错,双击要调用的函数,点击运行,会发现程序卡死了。6、重新分析关键代码处,发现setMaxDigits函数,我们重新调用一下。原创 2023-05-08 15:20:10 · 661 阅读 · 0 评论 -
JS逆向 -- 某平台登录算法分析(RSA加密)
四、局部搜索,定位加密的关键点,通过JSEncrypt,setPublicKey等关键字分析是RSA加密。3、获取公钥,将鼠标放到setPublicKey,就可以看到一长串字符串。三、全局搜索password关键字,挨个分析,在箭头标记处找到了关键代码。2、定位encrypt函数,定位到该JS文件,直接把原代码拷贝过来。二、F12打开开发者工具,抓包分析,password被加密了。1、调用RSA加密的基本代码编写。六、python调用该JS代码。一、输入账号密码,进行抓包。2、Python代码。原创 2023-05-07 21:39:25 · 477 阅读 · 0 评论 -
JS逆向 -- 某平台登录加密分析
八、选中“m(n.pwd.substr(0, 16))”,鼠标放上去,自动提示加密结果,可以分析除,是m函数进行了加密。十一、将该函数的同作用域范围的函数都复制到调试软件,并将该匿名函数改为aiyou函数,点击加载代码,成功加载。九、把鼠标放到m函数上,自动弹出下面的对话框,可以查看m函数所在的位置,点击进入该函数。十二、调用该函数,双击该函数,输入参数,点击运行获取结果。三、加密结果是32位,首先考虑是md5加密。六、找到给pwd赋值的语句,双击左边,下断,四、全局搜索pwd,点击右上角,点击搜索。原创 2023-05-06 16:06:57 · 2079 阅读 · 0 评论 -
Scrapy框架 -- crawlSpider爬虫
一、新建一个分布式爬虫项目,并进入该项目创建爬虫文件。二、修改配置文件settings。2、获取图片的名称和详情页地址。5、管道文件打印items对象。4、赋值给items对象。3、items添加字段。1、指定要爬取的网址。原创 2023-04-27 10:14:46 · 370 阅读 · 0 评论 -
Scrapy框架 -- 结合百度AI实现文本处理
五、点击管理,保存好APPID,APIKey,SecretKey。二、点击左上角的三条杠,选择产品服务,选择自然语言处理。四、选中我们要进行的文章分类和文章标签,点击立即创建。一、进入百度AI首页,点击右上角的控制台。三、点击应用列表,点击创建引用。六、文章标签实现代码。七、文章分类代码实现。原创 2023-04-26 17:43:31 · 137 阅读 · 0 评论 -
Scrapy框架 -- 结合selenium获取动态加载数据
一、新建一个Scrapy项目wangyi,进入该项目,创建wangyipc爬虫文件。四、由于新闻的详细信息是动态加载,所以我们需要结合selenium来进行操作。二、修改settings文件。三、获取这四个板块的响应内容。2、在爬虫文件创建浏览器对象。5、爬虫文件完成最后解析。6、items添加对象。原创 2023-04-25 14:49:01 · 168 阅读 · 1 评论 -
Scrapy框架 -- 中间件介绍
一、创建Scrapy项目zhongjj,进入zhongjj项目,创建爬虫文件zhongjjpc。1、删除爬虫中间件类ZhongjjSpiderMiddleware。三、添加三个目标地址,其中最后一个地址是错误的url。3、在settings文件里面开启中间件。2、修改拦截内容响应内容及异常内容。五、运行结果,三个函数都被调用。3、Cookies中间件。原创 2023-04-24 11:42:17 · 165 阅读 · 0 评论 -
Scrapy框架 -- POST请求实现案例
六、如果首页地址是get请求,解析内容用到了POST请求,可以在psrse里面再进行post操作。一、创建一个Scrapy项目fanyi,并进入该项目创建,fanyipc爬虫文件。二、修改配置文件settings,关闭君子协议,只看报错信息,自定义UA头。三、分析目标网址,用的POST请求。四、重写父类方法实现POST请求。原创 2023-04-23 17:00:27 · 232 阅读 · 0 评论 -
Scrapy框架 -- 深度爬取并持久化保存图片
7、将图片地址和图片名字保存到itme对象,并提交给管道处理。2、解析该页面获取,获取详情页网址和图片名称。二、进入该项目并创建爬虫文件daimgpc。5、将图片地址和图片名称声明到items。6、将DaimgTiem函数导入爬虫文件。一、新建一个Scrapy项目daimg。三、修改配置文件settings.py。3、爬取多页图片标题及详情页。4、解析详情页,获取图片链接。9、配置文件填写保存的文件夹。四、进入爬虫文件,编写代码。1、线程数量,默认16。2、禁止cookies。1、指定要爬取的网站。原创 2023-04-21 09:35:54 · 261 阅读 · 0 评论 -
Scrapy爬虫框架 -- 多页面爬取和深度爬取
一、重新定义一个页面模板,并指定页面从第二页开始。二、重组多页模板,并让回调函数进行递归操作。3、将详情页内容当做字段写入items对象。四、在爬虫文件实例化字段并提交到管道。五、让其在管道文件输出,并开启管道。1、获取详情页,并通过回调函数调用。三、在items中添加两个字段。原创 2023-04-10 16:43:43 · 1082 阅读 · 0 评论 -
Scrapy爬虫框架 -- 图片爬取
二、进入到tupian项目,新建一个image爬虫文件。九、开启管道,由于不是默认的管道类,所以需要修改一下。八、新建管道类,并导入ImagesPipeline。七、将item对象导入爬虫文件,并实例化该对象。一、新建一个tupian爬虫项目。三、修改配置文件settings。六、构建items对象。十、指定图片保存的路径。四、指定要爬取的页面。原创 2023-04-07 21:55:56 · 274 阅读 · 0 评论 -
Scrapy爬虫框架 -- Mysql数据库存储数据
七、在爬虫文件导入MyslqstItem函数,将获取的字段对象交给管道处理。九、在mysql中新建一个数据库aiyou和一个表lizhi。二、进入到项目目录并增加爬虫文件xiaohua。十、管道文件导入mysql库,并创建数据库连接。三、修改配置文件,并开启管道存储。八、在管道文件接收获取的字段对象。十一、执行sql语句,添加内容。六、将字段添加到items。原创 2023-04-05 16:47:26 · 167 阅读 · 0 评论 -
Scrapy爬虫框架 -- 命令持久化存储与管道持久化存储
2、从获取的列表再获取标题和浏览量。1、复制所有标题的xpath。原创 2023-03-30 16:54:01 · 47 阅读 · 0 评论 -
2023爬虫学习笔记 -- Scrapy爬虫数据解析
2、从获取的列表再获取标题和浏览量。1、复制所有标题的xpath。原创 2023-03-29 17:12:03 · 242 阅读 · 0 评论 -
2023爬虫学习笔记 -- 第一个Scrapy爬虫框架
5、修改相关配置settings.py,绕过某些限制。2、进入到创建的目录,并执行下面代码。6、在pycharm的终端中运行项目。1、在Pycharm的终端里面运行。一、安装scrapy库文件。3、自动创建的文件及目录。原创 2023-03-27 20:42:50 · 277 阅读 · 0 评论 -
2023爬虫学习笔记 -- MongoDB数据库
6、在命令提示符窗口输入 mongod,弹出以下内容后继续输入 mongosh运行mongosh。use xxxx: 使用指定数据库/创建数据库(新库中插入数据才可以显示新库)5、将下载的解压包里面的两个文件复制到MongoDB的bin目录里面。show collections: 显示当前数据库中所有的集合。四、修改数据,multi如果多条数据满足条件是否修改。2、一路下一步安装,路径不要出现空格中文等特殊字符。三、插入内容,如果表名不存在则新建一个表。七、Python连接MongoDB数据库。原创 2023-03-25 15:25:58 · 424 阅读 · 0 评论 -
2023爬虫学习笔记 -- Python链接Mysql数据库
2、创建游标对象,用来执行sql语句。一、Mysql数据库开启外连接。二、安装pymysql库文件。三、代码实现连接mysql。1、创建mysql连接对象。3、执行sql语句,并提交。4、执行完毕后记得关闭连接。原创 2023-03-23 10:52:45 · 126 阅读 · 0 评论 -
2023爬虫学习笔记 -- Mysql数据库环境搭建
3、继续选择MySQL Community Server。1、将压缩包解压到任意磁盘目录,目录不能出现中文字符。4、修改数据库(数据库名称无法修改,一般只修改编码)4、选择mysql数据相应的版本和支持的平台。3、以管理员身份运行CMD,执行下面两行代码。三、图形化管理数据库,下载安装Navicat。1、创建数据库,指定编码格式,也可以不指定。2、选择数据库,对数据库里面的数据进行操作。二、配置Mysql数据库的环境变量。一、下载Mysql数据库的安装包。6、数据库里面创建表。原创 2023-03-21 15:07:53 · 196 阅读 · 0 评论 -
2023爬虫学习笔记 -- selenium反爬虫操作(window.navigator.webdriver属性值)
二、有些网站通过判断window.navigator.webdriver属性值来判断是否有爬虫行为。三、修改window.navigator.webdriver属性值。2、通过webdriver访问浏览器,该属性值为true。1、导入需要的函数,固定写法,并设置相关浏览器参数。1、正常访问浏览器,该属性值为false。4、此时检测该属性值为undefined。2、访问时添加上浏览器设置的参数。3、通过执行JS代码绕过检测机制。1、添加先关的参数,固定写法。2、请求的时候加上参数设置。原创 2023-03-16 17:01:22 · 1474 阅读 · 0 评论 -
2023爬虫学习笔记 -- selenium库的实际应用
第一个参数通过什么方式,支持id,classname等,然后右击复制xpath路劲。6、再对标签进行移动操作,移动操作,每次向下移动10个像素。5、获取搜索按钮xpath,并点击。3、获取标签所在的iframe标签。一、安装selenium库文件。4、获取拖动标签的xpath。5、先对标签进行按住的操作。二、查看浏览器版本信息。三、下载对应的驱动程序。3、获取网站的关键标签。4、输入要搜索的内容。7、浏览器前进和后退。原创 2023-03-11 11:04:57 · 98 阅读 · 0 评论 -
2023爬虫学习笔记 -- 通过协程下载m3u8视频
一、下载视频的时候是耗时操作,所以将下载视频的代码写到回调函数里面。1、创建协程访问网站,返回读取的内容及单条视频的下载地址。3、通过事件挂接协程任务。原创 2023-03-09 11:04:22 · 810 阅读 · 0 评论 -
2023爬虫学习笔记 -- m3u8视频下载
2、将m3u8地址复制到浏览器,会自动下载下来,index内容如下。3、发现第二个才是我们需要的,重组m3u8地址,真实视频地址如下。1、点击XHR,刷新页面,会看到这里有两个m3u8文件。3、提取重要内容,重组真实的网址下载地址。4、通过真实地址,下载并保存视频。1、创建文件夹存放下载的片段。2、获取真是m3u8内容。二、获取mu38文件。原创 2023-03-07 20:26:24 · 1648 阅读 · 0 评论 -
2023爬虫学习笔记 -- 协程操作
2、在函数开头需要加上关键字async,创建一个协程请求aiohttp.ClientSession(),相当于requests,然后通过text()获取网页的内容,并且返回。一、普通访问,获取网站内容需要1秒左右,但是如果用协程,会更快一点。4、创建一个时间循环,固定写法,将创建的协程任务放到该事件中执行。3、这是解析操作,协程中把耗时操作单独写出来。5、创建任务,把所有任务写到一个任务列表中。1、设置程序开始时间,定义一个目标列表。6、再把任务列表传递给事件循环中执行。7、运行结果,比普通函数快了很多。原创 2023-03-03 15:27:26 · 198 阅读 · 0 评论 -
2023爬虫学习笔记 -- 多线程操作
四、调用函数,并获取时长,每次程序运行时间在6-7秒之间。三、创建一个函数访问网站,模拟爬取数据操作(耗时操作)3、让子线程执行完毕,主程序再结束,并获取程序运行时间。4、总耗时长在2-3秒之间,是上面的三倍。2、创建一个线程,并将所有子线程放进去。二、创建几个网址,模拟目标网站。一、定义一个程序开始时间。1、前三步和上面一样。原创 2023-03-02 15:05:04 · 79 阅读 · 0 评论 -
2023爬虫学习笔记 -- 使用代理爬取数据
三、利用代理访问网页,在请求代码出添加一个proxies信息。一、正常访问网页,获取本地访问的地址。3、通过源码解析出本地地址。2、获取目标地址网页源码。1、目标地址及头信息。原创 2023-02-27 16:29:14 · 1045 阅读 · 0 评论 -
2023爬虫学习笔记 -- 解决爬虫Cookies问题
1、通过session自动获取相关cookie信息,没有cookie该网站禁止获取信息。2、通过刷新页面,发现内容是通过Ajax加载,主要是通过max_id参数获取内容。5、第二页往后通过JSON数据获取用户名信息。2、通过正则获取max_id的起始值。4、第一页内容通过xpath获取。3、找到起始的max_id。3、构造Ajax动态网址。二、分析要获取的内容。1、获取这些用户名字。原创 2023-02-24 10:55:40 · 1024 阅读 · 0 评论 -
2023爬虫学习笔记 -- 某简历模板的爬取过程
1、新建一个模板的文件夹,将下载好的模板全部放进去。5、从响应内容获取简历名称及详情页地址。3、分析第一页第二页和第三页的网址。3、获取响应页面的内容,出现乱码。1、首先获取模板的名字和详情页。4、对获取的内容进行编码处理。2、详情页内获取下载地址。6、从详情页获取下载地址。二、分析要获取的数据。2、构建动态爬取网址。原创 2023-02-23 17:39:24 · 170 阅读 · 0 评论 -
2023爬虫学习笔记 -- 优化xpath解析代码
2、程序有个错误提示,这个提示需要在请求参数上多添加一个值,verify=False,或者将https变为http。5、第三步和第四步代码重复,可以通过管道符号“|”将两个表达分割,代码如下。二、分析要获取数据,热门城市、全部城市。3、通过xpath解析出热门城市。4、通过xpath解析出全部城市。仅供学习交流,勿作他用。原创 2023-02-20 19:29:38 · 467 阅读 · 0 评论