1. js逆向——验证码案例【极验3滑动模式】
生成w以及相关参数
算法包括RSA,AES,MD5
验证流程分析
首先,分析抓包,只需请求1到6步骤
获取验证码图片
第一步:获取gt和challenge,直接请求
第二步:带上gt、challenge、w置空请求接口,返回slide类型验证码
第三步:再次请求,获取验证码信息,包括背景图、缺口图,取出新c、s、challenge(c不变)
注意:返回的challenge与前值尾部多两个字符
图片乱码,需要还原底图
识别方式:观察使用canvas绘图(F12查看元素)
方法一:打上canvas断点,观察绘制过程
方法二:hook canvas对象创建,直接网络参考代码
还原后图片类似下图
识别缺口距离,可手动或第三方平台,选择dddocr识别
生成轨迹:参考缓动函数,上代码
加密轨迹提交:搜索w,JS内部编码,查找编码,参考JS逆向实战
解密u参数:滑块操作后,进入查看,发现生成随机数加密
使用python实现RSA解密
L参数解析:分析参数对象,找出关键参数,通过方法实现
V方法解析:AES加密,通过库实现
h参数解析:m['$_FEE']加密l参数,进入$_FEE查看,发现返回参数
进入e查看,返回res和end
完成混淆还原
w计算:w = h + u
结果展示
总结:流程分析抓包,获取验证码信息,还原底图,识别缺口,生成轨迹,加密提交,完成验证
过程中遇到坑点,扣算法和js带来便利性,但需有经验,全扣法可简化,推荐新手尝试
2. js 怎么样随机输出一个四位数的验证码
var code = Math.floor(Math.random()*9000)+1000;
alert(code);
3. javascript中验证码如何以图片形式生成
/*
函数功能:随机生成一组图片验证码
*/
var str="";
var img="";
var strsource=['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'];
for(var i=0;i<4;i++){
var n=Math.floor(Math.random()*strsource.length);
str=str+strsource[n];
img=img+"<img src='../images/randomNums/"+n+".jpg' width='23' height='23'> ";//图片命名时,我从用的是数字这样在版读取图片时就方便多了
div1.innerHTML=img;
}
上面权的的函数你可以自己修改,来满足你的要求
你可以用电脑上的画图工具写出a-z,A-Z,0-9的字符然后一个一个的选定每个字符将他另存为成图片就可以了(还可以再字上喷地颜料就更好了 还可以直接将每个字符一一选定后复制到QQ聊天器上另存为更方便!)
4. JS如何实现图片验证码
<script language="JavaScript">
function reloadcode(){
var verify=document.getElementById('safecode');
verify.setAttribute('src','images/chknumber.jsp?'+Math.random());
//这里必须加入随机数不然地址相同我发重新加载
}
</script>
=========================
然后再验证码图片里面写onclick呼出上面的函数重新加载.
程序代码
<img src="images/chknumber.jsp" id="safecode" border="0" onclick="reloadcode()" style="cursor:hand;padding:2px 8px 0pt 3px;" />
5. JS点击图片后显示验证码 如何实现
最简单的来方法你把图一的显源示验证码也弄成一个图片,比如叫code.png,上面你的代码就能换成
<img src="code.png" onclick="this.src ={$maccms.path_tpl}picture/captcha.png"