<![CDATA[Messages posted by "pdah"]]> /hvaonline/posts/listByUser/124889.html JForum - http://www.jforum.net Hỏi cách post 1 bải lên 1 diễn vBulletin bằng Python vbb nó có cái javascript md5 cái pass rồi mới gửi lên server xử lý tiếp đó anh iu ^^ .  VBB có 2 chế độ login, nếu trình duyệt đã disable javascript thì 2 trường vb_login_md5password và vb_login_md5password_utf8 sẽ được để trống, và trường vb_login_password sẽ chứa password chưa mã hóa của mình.]]> /hvaonline/posts/preList/39058/239666.html#239666 /hvaonline/posts/preList/39058/239666.html#239666 GMT Hỏi cách post 1 bải lên 1 diễn vBulletin bằng Python /hvaonline/posts/preList/39058/239630.html#239630 /hvaonline/posts/preList/39058/239630.html#239630 GMT Google chrome for linux PS: Không hiểu sao Google Chrome lại thiếu mất tính năng cho phép người dùng chọn minimum font size ngay trên trình duyệt vậy? (default font quá bé, nhìn toét cả mắt). Đã bạn nào chỉnh được minimum_font_size với lại minimum_logical_font_size trong ~/.config/google-chrome/Default/Preferences chưa vậy?  Em dùng Chrome trên Slack và vẫn chỉnh được font chữ mặc định bằng 2 thông số đó. Em thấy trên Slacky.eu có bản Slackbuild cho Slackware users đó anh quanta, ngoài ra bác lukas@vnsec cũng có một bản build cho version mới nhất của Chrome trên slackware 13.0.]]> /hvaonline/posts/preList/32477/200557.html#200557 /hvaonline/posts/preList/32477/200557.html#200557 GMT Cài g++ cho Ubuntu /hvaonline/posts/preList/32060/197896.html#197896 /hvaonline/posts/preList/32060/197896.html#197896 GMT Apache server không hiển thị được code PHP /hvaonline/posts/preList/30752/189836.html#189836 /hvaonline/posts/preList/30752/189836.html#189836 GMT Để trở thành hacker!

quanta wrote:
Vậy thì có lẽ em chọn nhầm diễn đàn rồi. 
Không thể có câu trả lời nào hay hơn câu này.]]>
/hvaonline/posts/preList/30706/189457.html#189457 /hvaonline/posts/preList/30706/189457.html#189457 GMT
Fenix Desktop 2009- distro linux của Việt Nam Với tham vọng và niềm tin vào trí tuệ Việt, các kỹ sư phát triển Fenix Desktop 2009 đã đặt mục tiêu “thách thức với Microsoft” trong phát triển hệ điều hành máy tính tại thị trường trong nước và xa hơn là tại thị trường quốc tế.  ]]> /hvaonline/posts/preList/30681/189234.html#189234 /hvaonline/posts/preList/30681/189234.html#189234 GMT How To Add domain user account by Excel file /hvaonline/posts/preList/30653/189005.html#189005 /hvaonline/posts/preList/30653/189005.html#189005 GMT Cần tuyển nhân viên giám sát an toàn thông tin vui lòng gửi CV (tiếng Anh hay tiếng Việt đều được) về địa chỉ email thaidn AT dongabank.com.vn   Cái chữ "địa chỉ email" nằm chình ình ra đấy, là một sinh viên IT mà không biết tự thắc mắc những từ đằng sau đó mang ý nghĩa gì hay sao ? Nếu biết tự thắc mắc thì hẳn là sẽ tự trả lời được vì bạn là người "Tuy tự học nhưng chắc gì mấy người được đào tạo chính quy hơn em chưa" cơ mà :) Dù sao thì cách viết như vậy cũng hay, tránh nhận được email của những bạn như thế này. Lần sau viết luôn thành "thaidn AT dongabank DOT com DOT vn" đi anh :P]]> /hvaonline/posts/preList/30488/188977.html#188977 /hvaonline/posts/preList/30488/188977.html#188977 GMT HVA có thể thêm tính năng hiện bài viết mới ở trang chủ diễn đàn ko ? /hvaonline/posts/preList/24738/188975.html#188975 /hvaonline/posts/preList/24738/188975.html#188975 GMT resolving......... name or service not know Code:
nameserver 208.67.220.220
nameserver 208.67.222.222
]]>
/hvaonline/posts/preList/30577/188593.html#188593 /hvaonline/posts/preList/30577/188593.html#188593 GMT
Đánh đố HTML Code:
#! /usr/bin/python
input = open("index.html", 'r')
s = ''
s += input.readline()
s += input.readline()
line3 = input.readline()
for x in line3 :
    s += chr(ord(x)&0x7f)
s += input.readline()
print s
Cho em nó chạy : Code:
$ ./step1.py > index1.html
2. Cửa ải đầu tiên mang tên mineGame3 ---------------------------------------------- Kéo chuột từ trên xuống dưới để kiểm tra file index1.html, lại thấy một đống bùi nhùi từ dòng 743. Thay hàm document.write bằng alert, ai dùng Firefox và có cài Firebug thì thay bằng console.log, dùng trình duyệt mở file này và thấy được nội dung : Code:
<script>function dF(s){var s1=unescape(s.substr(0,s.length-1)); var t='';for(i=0;i<s1.length;i++)t+=String.fromCharcode(s1.charcodeAt(i)-s.substr(s.length-1,1));document.write(unescape(t));}</script>
Copy đoạn này lại và paste nó vào index1.html, ngay trước dòng Code:
<SCRIPT LANGUAGE="JavaScript" id="mineGame3">
Đồng thời xóa đoạn code cũ đi, lại thay hàm document.write bằng alert hoặc console.log và mở bằng trình duyệt, ta thấy được nội dung này : Code:
<script language=JavaScript>function l11111l(l1111ll){try{ll111II(ll11ll11l);for(var IIIlIII = 0; IIIlIII < ll111ll.length; IIIlIII++) { IIIIIII += ll111ll.charcodeAt(IIIlIII) }IIIIIII = IIIIIII % 200000;var lllIlll = new Array; lllIlll = l1111ll.split(",");var IIIIIll = ""; for(var IIIlIII = 0; IIIlIII < lllIlll.length; IIIlIII++) { IIIIIll += String.fromCharcode(((lllIlll[IIIlIII])-IIIIIII) ^ llIlIII.charcodeAt(IIIlIII%llIlIII.length));}var IIIlllI=IIIIIll.length,lIlIlIl,IIlllII,IlllIll,IlIlIlI=(512*2),llIlIIl=0,llIllll=0,lllllll=0;for(llIIIII= Math.ceil(IIIlllI/IlIlIlI);llIIIII>0;llIIIII--){IlllIll=''; for(lIlIlIl=Math.min(IIIlllI,IlIlIlI);lIlIlIl>0;  lIlIlIl--,IIIlllI--){lllllll|=(IIIlIIl[ IIIIIll.charcodeAt(llIlIIl++)-48])<<llIllll;if(llIllll){IlllIll+=String.fromCharcode(209^lllllll&255);lllllll>>=8;llIllll-=2}else{llIllll=6};} ll111II(IlllIll) } } catch(error) {}}</script><script language=JavaScript>var IIIlIIl=Array(63,12,6,53,0,48,43,54,42,47,0,0,0,0,0,0,59,13,25,30,50,60,1,18,61,8,16,56,20,49,51,21,45,28,22,31,35,5,14,23,27,37,2,0,0,0,0,55,0,11,33,9,19,40,41,15,62,3,39,10,32,17,44,36,24,7,52,26,29,58,57,46,4,34,38);l11111l("71496,71517,71488,71525,71484,71487,71467,71528,71541,71503,71531,71511,71530,71530,71546,71482,71515,71499,71531,71511,71442,71540,71525,71497,71516,71474,71507,71464,71441,71449,71525,71526,71542,71540,71546,71474,71443,71543,71477,71532,71506,71448,71448,71492,71546,71542,71486,71471,71455,71522,71455,71475,71565,71477,71459,71467,71464,71473,71488,71478,71473,71475,71452,71453,71548,71527,71524,71558,71554,71531,71450,71553,71502,71495,71450,71480,71445,71506,71558,71553,71481,71484,71509,71525,71563,71503,71448,71463,71474,71442,71454,71528,71473,71488,71454,71510,71484,71501,71450,71526,71489,71455,71458,71551,71549,71551,71537,71507,71562,71455,71450,71485,71567,71470,71553,71501,71554,71459,71565,71464,71443,71481,71562,71447,71537,71526,71486,71466,71481,71484,71498,71467,71455,71489,71523,71533,71446,71487,71553,71488,71443,71501,71485,71553,71562,71476,71513,71519,71445,71492,71458,71453,71480,71448,71451,71453,71464,71533,71512,71479,71460,71455,71488,71479,71567,71497,71512,71518,71554,71452,71554,71448,71449,71557,71561,71453,71447,71494,71447,71510,71497,71462,71485,71553,71494,71466,71469,71510,71449,71516,71527,71441,71454,71526,71442,71464,71506,71468,71471,71524,71465,71475,71477,71532,71498,71475,71448,71492,71561,71546,71538,71501,71562,71531,71531,71538,71502,71526,71552,71509,71513,71481,71474,71508,71529,71559,71550,71517,71538,71565,71495,71445,71484,71531,71553,71442,71468,71501,71568,71526,71536,71513,71527,71542,71552,71563,71534,71466,71484,71496,71461,71458,71508,71498,71462,71513,71554,71448,71442,71532,71498,71448,71475,71568,71542,71514")</script>
Nhìn thoáng qua đoạn này sẽ thấy có lời gọi hàm ll111II(), search nguyên file thì không thấy hàm này được định nghĩa ở đâu cả. Điều này chứng tỏ đoạn mã định nghĩa nó đã bị che đi bằng 1 cách nào đó. 3. Cửa ải thứ 2 mang tên mineGame2 ---------------------------------------------- Trong cả 2 lần che dấu code trước, tác giả đểu dùng hàm document.write, vì vậy sao ta không thử tìm các hàm document.write khác xuất hiện trong file. Trong số kết quả tìm được, đáng nghi ngờ nhất hẳn là dòng này : Code:
document.write(mineCount2);
Đi ngược lên một chút để xem mineCount2 là cái gì : Code:
minelist2=document.getElementById('mineGame2').innerHTML.split('\r\n');		 					
mineCount2 = "";	  	  		
	  	  		
for(c=4; c < (e+4); c++)	 		 		 
{	  	  		
	mineName2=minelist2[c];	 		 		 
        	 		 		 
	for(f=0; f < d; f++)	 		 		 
	{		 					
		y = ((mineName2.length - (8*d)) + (f*8));		 	 	  
		v = 0;		 					
		for(x = 0; x < 8; x++)	 	   		
		{		 			 	
			if(mineName2.charcodeAt(x+y) > 9)	  				 
			{	   		  
				v++;	  		 	 
			}	  			  
			if(x != 7)	 	   		
			{		 			 	
				v = v << 1;		 					
			}		 	 	  
		}		 					
		mineCount2 += String.fromCharcode(v);	  	  		
	}	  	    
}	  			
document.write(mineCount2);
Bổn cũ soạn lại, thử quăng hàm alert vào, lần này chờ mãi ko thấy cái message box nào nhảy ra, nhìn kỹ lại code: Code:
minelist2=document.getElementById('mineGame2').innerHTML.split('\r\n');
mineGame2 chính là id của thẻ script chứa đoạn mã này, hóa ra đoạn mã đang dùng chính nó để giải mã, dẫn đến việc thay đổi nội dung trong code chỉ có phản tác dụng mà thôi. Thử copy nội dung của script đó ra 1 file mới ( đặt tên là mineGame2 ) và viết một đoạn giải mã tương đương bằng python để mã hóa nó : Code:
#! /usr/bin/python
input = open("mineGame2", 'r')
d=1;
e=165;		    	 
mineCount2 = "";	  	  		
for i in xrange(0,4):
    input.readline()  	  		

for c in xrange(4,e+4) :
    mineName2 = input.readline()
    mineName2 = mineName2.replace("\r","");
    mineName2 = mineName2.replace("\n","");
    for f in xrange(0,d) :
        y = ((len(mineName2) - (8*d)) + (f*8))
        v = 0;		 					
        for x in xrange(0,8) :
            if ord(mineName2[x+y]) > 9 :
                v+=1
            if x != 7 :
                v = v << 1
        mineCount2 += chr(v)

print mineCount2;
Sau khi chạy đoạn script này có được kết quả : Code:
cript> var ll11ll11l = "var llIlIII = arguments.callee.toString(); var ll111ll = llIlIII + \"asec\" + location.hostname; var IIIIIII = 0;"; ll111II=eval; </script>��
( Đến bây giờ em vẫn không hiểu sao cái đoạn kết quả này lại bị lệch mất 2 ký tự như vậy, nếu chèn thêm 2 dòng trống vào đầu file mineGame2 thì sẽ có kết quả đúng, dù sao thì toàn bộ đoạn code quan trọng đều đã được tìm thấy ) 4. Dứt điểm --------------- Tuy nhiên copy đoạn mã trên vào file index1.html thì mọi thứ vẫn trơ trơ ra đó, ko có cái password nào hiện ra cả. Đành phải quay lại đoạn js lấy đc sau bước 2, beautify nó để dễ đọc 1 chút Code:
function l11111l(l1111ll) {
    try {
        ll111II(ll11ll11l);
        for (var IIIlIII = 0; IIIlIII < ll111ll.length; IIIlIII++) {
            IIIIIII += ll111ll.charcodeAt(IIIlIII)
            }
        IIIIIII = IIIIIII % 200000;
        var lllIlll = new Array;
        lllIlll = l1111ll.split(",");
        var IIIIIll = "";
        for (var IIIlIII = 0; IIIlIII < lllIlll.length; IIIlIII++) {
            IIIIIll += String.fromCharcode(((lllIlll[IIIlIII]) - IIIIIII)^llIlIII.charcodeAt(IIIlIII % llIlIII.length));
        }
        var IIIlllI = IIIIIll.length,
        lIlIlIl,
        IIlllII,
        IlllIll,
        IlIlIlI = (512 * 2),
        llIlIIl = 0,
        llIllll = 0,
        lllllll = 0;
        for (llIIIII = Math.ceil(IIIlllI / IlIlIlI); llIIIII > 0; llIIIII--) {
            IlllIll = '';
            for (lIlIlIl = Math.min(IIIlllI, IlIlIlI); lIlIlIl > 0; lIlIlIl--, IIIlllI--) {
                lllllll | =(IIIlIIl[IIIIIll.charcodeAt(llIlIIl++) - 48]) << llIllll;
                if (llIllll) {
                    IlllIll += String.fromCharcode(209^lllllll & 255);
                    lllllll >>= 8;
                    llIllll -= 2
                } else {
                    llIllll = 6
                };
            }
            ll111II(IlllIll)
            }
    } catch(error) {}
}
Để ý hàm sau dòng try : Code:
ll111II(ll11ll11l) 
tương đương với eval(ll11ll11l) 
tương đương với eval("var llIlIII = arguments.callee.toString(); var ll111ll = llIlIII + \"asec\" + location.hostname; var IIIIIII = 0;")
Có 2 giá trị cần phải lưu ý : ** arguments.callee.toString() : là mã nguồn của hàm đang chứa câu lệnh này, đó chính là hàm l11111l() ( lưu ý là mã nguồn *trước khi* beautify ) ** location.hostname : lần ngược lên đầu file HTML sẽ thấy có thẻ <BASE HREF="http://ahnlab-security.com/game/"> suy ra location.hostname là ahnlab-security.com. Ngoài ra để ý rằng hàm ll111II còn được sử dụng ở một vị trí khác trong hàm : ll111II(IlllIll); Thêm vào 1 dòng console.log hoặc alert để kiểm tra đoạn mã được thực thi là gì console.log(IlllIll); hoặc alert(IlllIll); Từ đó viết lại hàm l11111l() như sau ( các vị trí thay đổi được comment trong code ) Code:
function l11111l(l1111ll) {
    try {
        /* NEW code HERE */
        var llIlIII = "function l11111l(l1111ll){try{ll111II(ll11ll11l);for(var IIIlIII = 0; IIIlIII < ll111ll.length; IIIlIII++) { IIIIIII += ll111ll.charcodeAt(IIIlIII) }IIIIIII = IIIIIII % 200000;var lllIlll = new Array; lllIlll = l1111ll.split(\",\");var IIIIIll = \"\"; for(var IIIlIII = 0; IIIlIII < lllIlll.length; IIIlIII++) { IIIIIll += String.fromCharcode(((lllIlll[IIIlIII])-IIIIIII) ^ llIlIII.charcodeAt(IIIlIII%llIlIII.length));}var IIIlllI=IIIIIll.length,lIlIlIl,IIlllII,IlllIll,IlIlIlI=(512*2),llIlIIl=0,llIllll=0,lllllll=0;for(llIIIII= Math.ceil(IIIlllI/IlIlIlI);llIIIII>0;llIIIII--){IlllIll=''; for(lIlIlIl=Math.min(IIIlllI,IlIlIlI);lIlIlIl>0;  lIlIlIl--,IIIlllI--){lllllll|=(IIIlIIl[ IIIIIll.charcodeAt(llIlIIl++)-48])<<llIllll;if(llIllll){IlllIll+=String.fromCharcode(209^lllllll&255);lllllll>>=8;llIllll-=2}else{llIllll=6};} ll111II(IlllIll) } } catch(error) {}}"; 
        var ll111ll = llIlIII + "asec" + "ahnlab-security.com"; 
        /* END */
        var IIIIIII = 0;
        for (var IIIlIII = 0; IIIlIII < ll111ll.length; IIIlIII++) {
            IIIIIII += ll111ll.charcodeAt(IIIlIII)
            }

        IIIIIII = IIIIIII % 200000;
        var lllIlll = new Array;
        lllIlll = l1111ll.split(",");
        var IIIIIll = "";
        for (var IIIlIII = 0; IIIlIII < lllIlll.length; IIIlIII++) {
            IIIIIll += String.fromCharcode(((lllIlll[IIIlIII]) - IIIIIII)^llIlIII.charcodeAt(IIIlIII % llIlIII.length));
        }
        var IIIlllI = IIIIIll.length,
        lIlIlIl,
        IIlllII,
        IlllIll,
        IlIlIlI = (512 * 2),
        llIlIIl = 0,
        llIllll = 0,
        lllllll = 0;
        for (llIIIII = Math.ceil(IIIlllI / IlIlIlI); llIIIII > 0; llIIIII--) {
            IlllIll = '';
            for (lIlIlIl = Math.min(IIIlllI, IlIlIlI); lIlIlIl > 0; lIlIlIl--, IIIlllI--) {
                lllllll |=(IIIlIIl[IIIIIll.charcodeAt(llIlIIl++) - 48]) << llIllll;
                if (llIllll) {
                    IlllIll += String.fromCharcode(209^lllllll & 255);
                    lllllll >>= 8;
                    llIllll -= 2
                } else {
                    llIllll = 6
                };
            }
            ll111II(IlllIll);
            /* NEW code HERE */
            console.log(IlllIll);  
            /* END */
            }
    } catch(error) {}
}
Vào browser refresh 1 phát, ta thấy được đoạn mã được thực thi như sau : Code:
function print_password() { alert('ASEC is AhnLab Security E-response Center'); } if( location.hash == '#ASEC' ) { print_password(); } else { alert('Good~! Go Go!'); }
Hết phim]]>
/hvaonline/posts/preList/25580/188467.html#188467 /hvaonline/posts/preList/25580/188467.html#188467 GMT
Đánh đố HTML /hvaonline/posts/preList/25580/188466.html#188466 /hvaonline/posts/preList/25580/188466.html#188466 GMT Muốn dùng mod security cấm người dùng sử dụng trình duyệt Firefox!

bolzano_1989 wrote:
Nếu quản trị mạng cấm bừa bãi như vậy thì mình nên ứng xử thế nào hay phản ánh sự việc với những ai trong đơn vị các anh nhỉ ? Em thấy cấm kiểu này phản tiến bộ sao ấy, không đủ khả năng kĩ thuật => giết nhầm hơn bỏ sót . 
Chuyện giết nhầm hay không thì còn tùy vào mục đích và lý do người quản trị mạng đưa ra cái rule này nữa. Vội vàng phán họ không đủ khả năng kỹ thuật thì cũng oan uổng quá. Cái đáng nói ở đây là ... "giết sót" :P]]>
/hvaonline/posts/preList/30543/188435.html#188435 /hvaonline/posts/preList/30543/188435.html#188435 GMT
Muốn dùng mod security cấm người dùng sử dụng trình duyệt Firefox! https://addons.mozilla.org/en-US/firefox/addon/967 thì người dùng vẫn có thể truy cập bình thường ]]> /hvaonline/posts/preList/30543/188430.html#188430 /hvaonline/posts/preList/30543/188430.html#188430 GMT Muốn dùng mod security cấm người dùng sử dụng trình duyệt Firefox!

kingmoney wrote:

pdah wrote:
Có 2 thứ phải để ý là : 1. Dấu hiệu nào để nhận biết user đang dùng Mozilla ? 2. Dấu hiệu đó có thể bị thay đổi hay không ? Từ đó suy ra rằng việc viết rule để cấm user sử dụng Mozilla có ý nghĩa gì không. 
Em có việc mới nhờ đến ạ. cấm sử dụng ắc có nguyên nhân :( 
Cái mình muốn nói là bạn có muốn cấm cũng không thể cấm được, trả lời được 2 câu hỏi đó bạn sẽ hiểu thôi.]]>
/hvaonline/posts/preList/30543/188419.html#188419 /hvaonline/posts/preList/30543/188419.html#188419 GMT
Muốn dùng mod security cấm người dùng sử dụng trình duyệt Firefox! /hvaonline/posts/preList/30543/188400.html#188400 /hvaonline/posts/preList/30543/188400.html#188400 GMT Đánh đố HTML /hvaonline/posts/preList/25580/188345.html#188345 /hvaonline/posts/preList/25580/188345.html#188345 GMT Đánh đố HTML /hvaonline/posts/preList/25580/188318.html#188318 /hvaonline/posts/preList/25580/188318.html#188318 GMT Hướng dẫn khai thác SQL Injection đối với MySQL /hvaonline/posts/preList/25210/188191.html#188191 /hvaonline/posts/preList/25210/188191.html#188191 GMT Kiếm code một website viết bằng php ở đâu? /hvaonline/posts/preList/30494/188168.html#188168 /hvaonline/posts/preList/30494/188168.html#188168 GMT Đánh đố HTML /hvaonline/posts/preList/25580/188165.html#188165 /hvaonline/posts/preList/25580/188165.html#188165 GMT Đánh đố HTML /hvaonline/posts/preList/25580/188143.html#188143 /hvaonline/posts/preList/25580/188143.html#188143 GMT Đánh đố HTML /hvaonline/posts/preList/25580/188114.html#188114 /hvaonline/posts/preList/25580/188114.html#188114 GMT Bảo mật cho trang web thực thi file exe người dùng gửi lên

vduck wrote:
Quả là khó. Ai có thể giảng cho em về Sandbox không, em chẳng hiểu nó là cái gì. 
Trong bài đầu tiên bác mrro đã cho bạn cái link về sandbox rồi đấy.]]>
/hvaonline/posts/preList/30381/188098.html#188098 /hvaonline/posts/preList/30381/188098.html#188098 GMT
Bảo mật cho trang web thực thi file exe người dùng gửi lên /hvaonline/posts/preList/30381/188084.html#188084 /hvaonline/posts/preList/30381/188084.html#188084 GMT