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"