▲软件脚本步骤说明▲:
这个登陆比较科学化,但也是比较呆板化的,如果你想用POST去搞,那你得扒一层皮,但你要是利用他的一个自动登陆去登陆的话,就神奇许多了。能自动登陆上,但验证码就是不可避免的。如下图所示,他点登陆后会弹出这个验证码,是点触式的,我们用第七步把这个关闭一下,然后把出来的验证码采集,交给极验识别出来。
然后会找到这个识别验证码锁所在的地方,加上钥匙去开,就会发现,能自动上去,如果他弹出二次验证码。
也就是下面这个验证码,他有可能弹出二段验证码的话,就不能整了。只能用软件判断他登陆不成功,如果输入了:<input type="hidden" name="geetest_challenge">一般是能登陆成功的,因为识别成功了,也经过检验了,验证码是对的话都基本可以成功的。但他有时很变态,会弹出二段,那就只能判断他不成功,做一个逻辑判断去跳转,再次重来。
如下图所示,这里会弹出这段代码,判断有没有成功或没有成功,没有成功就重登陆的状态。
似乎只有我软件才有这种强制后台写入验证码,并且登陆成功了,其它软件不具备这种后台功能的,特别是百度知道,也有这种操作,改变问题网址的input指向,就可以回答问题成功的。
这个脚本只是利用了它自动登陆JS进行自动登陆的,但成功率是百分之五十左右,加上逻辑判断成功不成功,那登陆也是百分百成功的存在了。由于登陆账号有可能是封了的,或是有可能密码不对的,所以这个逻辑判断最好还是加一个切换ID,让ID切换一次,再次发登陆,不至于变成死循环,或是这个判断成功里,写上三次,也是可以避免死循环的事,我这里没有加,你认为哪一种方式适合,就在这个判断逻辑判断成功不成功的上面写上数字3或是加一个切换ID,也是可以的,各有各的优点,也有各的缺点。应该能明白吧。
这个脚本文案记录在这,以防以后找此类网站漏洞的时候,方便一些,比如百度知道,和这个直接登陆网站的化工网站,都可以用这种方法进行登陆的。这些是整个脚本的所有代码,放在这里想用哪一段就复制哪一段,方便快捷。
<% keyID=清空浏览器缓存22295
{清空浏览器缓存}
<模式>稳定模式</模式>
{/清空浏览器缓存}
%>
<% keyID=打开网址89923
{打开网址}
<URL>https://passport.cnblogs.com/use ... .com%2F</URL>
{/打开网址}
%>
<% keyID=倒计时-36941
{倒计时}<秒>3</秒><备注>倒计时3秒</备注>{/倒计时}
%>
<% keyID=输入54478
{输入}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>ID</定位类型>
<定位值>input1</定位值>
<元素序号>0</元素序号>
<输入值>{获取列表值}ID列表|账号|自动{/获取列表值}</输入值>
<输入类型>模拟键盘</输入类型>
<限制字数>0</限制字数>
<备注>输入帐号</备注>
{/输入}
%>
<% keyID=输入38390
{输入}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>ID</定位类型>
<定位值>input2</定位值>
<元素序号>0</元素序号>
<输入值>{获取列表值}ID列表|密码|自动{/获取列表值}</输入值>
<输入类型>模拟键盘</输入类型>
<限制字数>0</限制字数>
<备注>输入密码</备注>
{/输入}
%>
<% keyID=点击54452
{点击}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>ID</定位类型>
<定位值>signin</定位值>
<元素序号>0</元素序号>
<点击方式>模拟鼠标</点击方式>
<等待新窗体>True</等待新窗体>
<允许新窗口>False</允许新窗口>
<备注>点击登录</备注>
{/点击}
%>
<% keyID=倒计时-93454
{倒计时}<秒>5</秒><备注>倒计时5秒</备注>{/倒计时}
%>
<% keyID=点击43068
{点击}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>部分源码</定位类型>
<定位值><span aria-hidden="true">×</定位值>
<元素序号>0</元素序号>
<点击方式>元素点击</点击方式>
<等待新窗体>False</等待新窗体>
<允许新窗口>False</允许新窗口>
<备注>点关闭</备注>
{/点击}
%>
<% keyID=倒计时-9345469
{倒计时}<秒>5</秒><备注>倒计时5秒</备注>{/倒计时}
%>
<% keyID=POST动作-3023
{GET}
<网址>https://passport.cnblogs.com/gee ... 35691340092586</网址>
<COOKIE>自动</COOKIE>
<HTTP头>自动</HTTP头>
<数据解码>GBK</数据解码>
<存入变量>OST返回数据</存入变量>
<备注>OST动作-3023</备注>
{/GET}
%>
<% keyID=采集-3258
{万能采集}
<规则>
<要采集的数据>[POST返回数据]</要采集的数据>
<分割代码></分割代码>
<结果中含有></结果中含有>
<结果中不含有></结果中不含有>
<开始部分>"gt":"</开始部分>
<结束部分>"</结束部分>
<查找></查找>
<替换为></替换为>
<采集补全><采集结果></采集补全>
<结果存入>变量</结果存入>
<存入>gt</存入>
</规则>
<规则>
<要采集的数据>[POST返回数据]</要采集的数据>
<分割代码></分割代码>
<结果中含有></结果中含有>
<结果中不含有></结果中不含有>
<开始部分>"challenge":"</开始部分>
<结束部分>"</结束部分>
<查找></查找>
<替换为></替换为>
<采集补全><采集结果></采集补全>
<结果存入>变量</结果存入>
<存入>challenge</存入>
</规则>
{/万能采集}
%>
<% keyID=POST动作-7049
{GET}
<网址>http://jiyanapi.c2567.com/shibie?gt=[gt]&challenge=[challenge]&referer=https://passport.cnblogs.com/user/signin?ReturnUrl=https%3A%2F%2Fwww.cnblogs.com%2F&user={获取列表值}极验账号|账号|自动{/获取列表值}&pass={获取列表值}极验账号|密码|自动{/获取列表值}&return=json&model=3&format=utf8</网址>
<COOKIE>自动</COOKIE>
<HTTP头>自动</HTTP头>
<数据解码>GBK</数据解码>
<存入变量>OST返回数据</存入变量>
<备注>识别</备注>
{/GET}
%>
<% keyID=采集-2406
{万能采集}
<规则>
<要采集的数据>[POST返回数据]</要采集的数据>
<分割代码></分割代码>
<结果中含有></结果中含有>
<结果中不含有></结果中不含有>
<开始部分>challenge":"</开始部分>
<结束部分>"</结束部分>
<查找></查找>
<替换为></替换为>
<采集补全><采集结果></采集补全>
<结果存入>变量</结果存入>
<存入>challenge</存入>
</规则><规则>
<要采集的数据>[POST返回数据]</要采集的数据>
<分割代码></分割代码>
<结果中含有></结果中含有>
<结果中不含有></结果中不含有>
<开始部分>validate":"</开始部分>
<结束部分>"</结束部分>
<查找></查找>
<替换为></替换为>
<采集补全><采集结果></采集补全>
<结果存入>变量</结果存入>
<存入>validate</存入>
</规则><备注>采集-2406</备注>
{/万能采集}
%>
<% keyID=输入58165
{输入}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>部分源码</定位类型>
<定位值><input type="hidden" name="geetest_challenge"></定位值>
<元素序号>0</元素序号>
<输入值>[challenge]</输入值>
<输入类型>value</输入类型>
<限制字数>0</限制字数>
<备注>challenge</备注>
{/输入}
%>
<% keyID=倒计时-36375
{倒计时}<秒>5</秒><备注>倒计时5秒</备注>{/倒计时}
%>
<% keyID=逻辑判断-8828
{如果}<逻辑>[网页源码]<不包含>>退出</逻辑><否则跳转到结束>keyid=77543</否则跳转到结束><备注>判断有没有登陆成功</备注>
{/如果}
%>
<% keyID=动作跳转88069
{动作跳转}
<当>直接跳转</当>
<条件>包含</条件>
<值></值>
<跳转到>keyid=清空浏览器缓存22295</跳转到>
<跳转频率>0</跳转频率>
{/动作跳转}
%>
<% keyID=77543
{否则}{/否则}
%>
<% keyID=77543else
{逻辑结束}{/逻辑结束}
%>
<% keyID=打开网址24448
{打开网址}
<URL>https://i.cnblogs.com/EditArticles.aspx?opt=1</URL>
{/打开网址}
%>
<% keyID=倒计时-70714
{倒计时}<秒>3</秒><备注>倒计时3秒</备注>{/倒计时}
%>
<% keyID=输入72664
{输入}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>ID</定位类型>
<定位值>Editor_Edit_txbTitle</定位值>
<元素序号>0</元素序号>
<输入值>{获取列表值}总标题内容|标题|自动{/获取列表值}</输入值>
<输入类型>value</输入类型>
<限制字数>0</限制字数>
<备注>标题</备注>
{/输入}
%>
<% keyID=输入91036
{输入}
<框架定位类型>Xpath</框架定位类型>
<框架定位值>//*[@id="Editor_Edit_EditorBody_ifr"]</框架定位值>
<定位类型>ID</定位类型>
<定位值>tinymce</定位值>
<元素序号>0</元素序号>
<输入值>{获取列表值}总标题内容|内容|自动{/获取列表值}</输入值>
<输入类型>innerHTML</输入类型>
<限制字数>0</限制字数>
<备注>内容</备注>
{/输入}
%>
<% keyID=点击51225
{点击}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>ID</定位类型>
<定位值>Editor_Edit_lkbPost</定位值>
<元素序号>0</元素序号>
<点击方式>元素点击</点击方式>
<等待新窗体>False</等待新窗体>
<允许新窗口>False</允许新窗口>
<备注>点击发布</备注>
{/点击}
%>
<% keyID=倒计时-21681
{倒计时}<秒>[文本框:发送时间]</秒><备注>倒计时10秒</备注><备注>倒计时10秒</备注>
{/倒计时}
%>
<% keyID=请选择要切换的列表51523
{切换列表}
<列表集合>
图片2|否
成功网址|否
总标题内容|否
上传图片|否
产品关键词|否
大系分类|否
关键字|否
标题1|否
标题2|否
标题3|否
标题4|否
变量1|否
内容1|否
内容2|否
内容3|否
内容4|否
变量2|否
图片1|否
</列表集合>
{/切换列表}
%>
<% keyID=动作跳转59885
{动作跳转}
<当>直接跳转</当>
<条件>包含</条件>
<值></值>
<跳转到>keyid=打开网址24448</跳转到>
<跳转频率>[文本框:发多少换号]</跳转频率>
<备注>动作跳转59885</备注>
{/动作跳转}
%>
<% keyID=清空浏览器缓存35658
{清空浏览器缓存}
<模式>稳定模式</模式>
<备注>稳定模式</备注>{/清空浏览器缓存}
%>
<% keyID=ID列表54165
{切换列表}
<列表集合>
ID列表|否|下一行|0|
</列表集合>
{/切换列表}
%>
<% keyID=动作跳转62183
{动作跳转}
<当>直接跳转</当>
<条件>包含</条件>
<值></值>
<跳转到>keyid=清空浏览器缓存22295</跳转到>
<跳转频率>0</跳转频率>
{/动作跳转}
%>