当前位置 主页 > 网站技术 > 代码类 >
在Web渗透流程的暴力登录场景和爬虫抓取场景中,经常会遇到一些登录表单用DES之类的加密方式来加密参数,也就是说,你不搞定这些前端加密,你的编写的脚本是不可能Login成功的。针对这个问题,现在有三种解决方式:
①看懂前端的加密流程,然后用脚本编写这些方法(或者找开源的源码),模拟这个加密的流程。缺点是:不懂JS的话,看懂的成本就比较高了; ②selenium + Chrome Headless。缺点是:因为是模拟点击,所以效率相对①、③低一些; ③使用语言调用JS引擎来执行JS函数。缺点是:每个JS引擎执行的效果会不一致,导致一些小偏差; 第③种方式中,Python语言能利用的库有PyExecJS、PyV8、Js2Py三种,PyV8使用就报错(我暂时没解决),Js2Py相当于将JS翻译成Pyhton,Js2Py对于复杂JS而言非常容易出错。所以本文主要讨论通过Python语言的PyExecJS库(切换不同的JS引擎)来执行JS函数的过程。PyExecJS官网案例
pip 安装:
pip install PyExecJS
Demo:
import execjs print(execjs.eval("'red yellow blue'.split(' ')")) ctx = execjs.compile(""" function add(x, y) { return x + y; } """) print(ctx.call("add", 1, 2))
输出:
['red', 'yellow', 'blue'] 3
查看JS引擎信息
# 1.在windows上不需要其他的依赖便可运行execjs, 因为默认有个JScript库,如果要运行其他JS引擎库,就需要另外安装了。 # windows默认执行的JS环境 execjs.get().name #返回值: JScript # 如果想要切换,用os.environ["EXECJS_RUNTIME"] = "XXX",如果刚安装完其他JS引擎,必须配置环境变量,还可能需要重启电脑或重启IDE。 # 如果windows上装有Node.js , 可以切换Node os.environ["EXECJS_RUNTIME"] = "Node" print(execjs.get().name) #返回值: Node.js (V8) # 如果windows上装有PhantomJSs , 可以切换PhantomJS os.environ["EXECJS_RUNTIME"] = "PhantomJS" print(execjs.get().name) #返回值: PhantomJS # 2.在ubuntu下需要安装执行JS环境依赖, 作者的环境为PhantomJS execjs.get().name #返回值: PhantomJS # 3.源码中给出, 可执行execjs的环境: PyV8 = "PyV8" Node = "Node" JavaScriptCore = "JavaScriptCore" SpiderMonkey = "SpiderMonkey" JScript = "JScript" PhantomJS = "PhantomJS" SlimerJS = "SlimerJS" Nashorn = "Nashorn"
安装PhantomJS步骤
下载地址:
http://phantomjs.org/download.html
拷贝到脚本到你的Python环境里:
把下载下来的文件解压,找到目录里.\phantomjs-2.1.1\bin\
下的phantomjs.exe,移动到使用的python文件夹下的Script中。
# 举例 Anaconda3 D:\programfiles\Anaconda3\Scripts
添加系统变量:
D:\programfiles\Anaconda3\Scriptsphantomjs.exe
添加到系统变量中。
验证:
添加环境变量后,在cmd中验证可以使用phantomjs命令,说明环境搭建好了。
在python中切换成PhantomJS:
os.environ["EXECJS_RUNTIME"] = "PhantomJS"
案例1
1.访问目标网站的登录页面并查看源码
代做工资流水公司常德办背调流水淮安企业贷流水制作泰安企业对公流水代办汕头流水报价孝感流水查询常德查背调流水徐州企业流水打印制作湖州入职流水价格福州背调工资流水多少钱佛山薪资银行流水公司常州对公账户流水查询重庆流水查询铜陵企业贷流水办理沈阳代办离职证明太原工资流水单代开郑州离职证明图片绍兴签证工资流水代做太原做工资流水账单南通企业对私流水代开济南自存银行流水打印泰州代开签证流水邯郸办签证流水东莞贷款流水模板肇庆公司流水费用三亚在职证明费用金华制作日常消费流水宜昌背调流水打印九江入职工资流水价格威海工资流水账单开具大连办理贷款工资流水香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤