banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận thâm nhập Làm sao đăng nhập vào chodientu.vn bằng Java  XML
  [Question]   Làm sao đăng nhập vào chodientu.vn bằng Java 05/05/2012 14:59:32 (+0700) | #1 | 262511
iminhnhi
Member

[Minus]    0    [Plus]
Joined: 04/05/2012 22:05:59
Messages: 3
Offline
[Profile] [PM]
Hiện tôi muốn viết một ứng dụng bằng java để đăng nhập vào chodientu.vn. Bạn nào biết cách hướng dẫn tui với. Thanks!!!
[Up] [Print Copy]
  [Question]   Làm sao đăng nhập vào chodientu.vn bằng Java 05/05/2012 17:00:39 (+0700) | #2 | 262514
[Avatar]
maitan_10000
Member

[Minus]    0    [Plus]
Joined: 12/02/2011 10:56:12
Messages: 43
Offline
[Profile] [PM]
Bạn có thể xem dữ liệu post của nó khi đăng nhập rồi từ đó hiện thực lại việc post này bằng java để đăng nhập. Mình cũng chưa viết bao giờ nên chỉ gợi ý giúp bạn chút đó thôi.
[Up] [Print Copy]
  [Question]   Làm sao đăng nhập vào chodientu.vn bằng Java 05/05/2012 19:22:16 (+0700) | #3 | 262520
iminhnhi
Member

[Minus]    0    [Plus]
Joined: 04/05/2012 22:05:59
Messages: 3
Offline
[Profile] [PM]
Mình cũng thử như thế nhưng có vẻ như file action của form đó bị ẩn đi không đúng thì phải. mình dùng Live http để bắt header và làm thử mà ko được!
[Up] [Print Copy]
  [Question]   Làm sao đăng nhập vào chodientu.vn bằng Java 05/05/2012 21:05:02 (+0700) | #4 | 262525
[Avatar]
maitan_10000
Member

[Minus]    0    [Plus]
Joined: 12/02/2011 10:56:12
Messages: 43
Offline
[Profile] [PM]

iminhnhi wrote:
Mình cũng thử như thế nhưng có vẻ như file action của form đó bị ẩn đi không đúng thì phải. mình dùng Live http để bắt header và làm thử mà ko được! 

Thử post thế này đi:

Url:
Code:
http://chodientu.vn/dang-nhap.html?ref=home

Header:
Code:
Host: chodientu.vn
Content-Type: application/x-www-form-urlencoded


Post content:
Code:
form_module_id=1511&userName=USER&password=PASS
[Up] [Print Copy]
  [Question]   Làm sao đăng nhập vào chodientu.vn bằng Java 06/05/2012 03:09:19 (+0700) | #5 | 262534
[Avatar]
chiro8x
Member

[Minus]    0    [Plus]
Joined: 26/09/2010 00:38:37
Messages: 661
Location: /home/chiro8x
Offline
[Profile] [PM] [Yahoo!]
Bồ biết được gì rồi ? Bộ học những gì rồi ?.
Theo như link bồ đưa ở trên server sử dụng HTTP, bồ phải tóm một session của nó xem nó làm những việc gì, sau đó thử (đổi IP) giữ nguyên trình duyệt và máy đó vào lại xem cookie có hiệu lực không (trường hợp check IP của user). Tiếp theo bồ phải thử với một số trình duyệt khác nhau, login và logout nhiều lần, xoá cache cookie, sau đó thử lại.

Mục đích của giai đoạn này là phân tích xem quá trình tiếp nhận các request và trả lời các request như thế nào. Nếu như đã nắm vứng phương thức mà người ta sử dụng để login thì bạn có thể chuyển sang bước tiếp theo.

Ở bước tiếp theo bạn cần tìm hiểu về "socket programing".
http://www.javaworld.com/javaworld/jw-12-1996/jw-12-sockets.html

Bạn viết chương trình connect tới port 80 (TCP) của trang web sau đó gửi các gói tin theo thứ tự của nó để đăng nhập.
while(1){}
[Up] [Print Copy]
  [Question]   Làm sao đăng nhập vào chodientu.vn bằng Java 06/05/2012 03:30:28 (+0700) | #6 | 262536
[Avatar]
chiro8x
Member

[Minus]    0    [Plus]
Joined: 26/09/2010 00:38:37
Messages: 661
Location: /home/chiro8x
Offline
[Profile] [PM] [Yahoo!]



Đây là phiên làm việc tớ tóm đc, để ý thấy trước đó cookie đã được set. Chúng ta truy ngược lại lúc truy vấn vào /.




Bạn thấy trước đó cookie đã được thiết lập. Bạn cần làm là chuyển cái phần Set-cookie: * vào Cookie: * trong request tiếp theo của bạn. Nên nhớ đây là một quá trình step-by-step không được bỏ qua bất kì bước nào mà ở đó cookie và session-id thay đổi.
while(1){}
[Up] [Print Copy]
  [Question]   Làm sao đăng nhập vào chodientu.vn bằng Java 06/05/2012 09:10:33 (+0700) | #7 | 262541
iminhnhi
Member

[Minus]    0    [Plus]
Joined: 04/05/2012 22:05:59
Messages: 3
Offline
[Profile] [PM]
Mình thử như trên mà vẫn có lỗi thế này:
Chương trình:
public class Dgn {
public static void main(String[] args){

try {
// Construct data
String data = URLEncoder.encode("form_module_id", "UTF-8") + "=" + URLEncoder.encode("1511", "UTF-8");
data += "&" + URLEncoder.encode("userName", "UTF-8") + "=" + URLEncoder.encode("ten", "UTF-8");
data += "&" + URLEncoder.encode("password", "UTF-8") + "=" + URLEncoder.encode("matkhau", "UTF-8");

// Create a socket to the host
String hostname = "chodientu.vn";
int port = 80;
InetAddress addr = InetAddress.getByName(hostname);
Socket socket = new Socket(addr, port);

// Send header
String path = "/dang-nhap.html?ref=home";
BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF8"));
wr.write("POST "+path+" HTTP/1.1\r\n");
wr.write("Content-Length: "+data.length()+"\r\n");
wr.write("Content-Type: application/x-www-form-urlencoded\r\n");
wr.write("X-Requested-With: XMLHttpRequest\r\n");
wr.write("Cookie: 3mk033ireo724tke4s641kmue2\r\n");
wr.write("\r\n");

// Send data
wr.write(data);
wr.flush();

// Get response
BufferedReader rd = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
System.out.println(line);// Process line...
}
wr.close();
rd.close();
} catch (Exception e) {
System.err.println(e);
}
}
}

/////Lỗi
HTTP/1.1 400 Bad Request
Date: Sun, 06 May 2012 03:05:10 GMT
Server: Apache
Vary: Accept-Encoding
Content-Length: 226
Connection: close
Content-Type: text/html; charset=iso-8859-1
Set-Cookie: SERVERID=A; path=/

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
</body></html>
[Up] [Print Copy]
  [Question]   Làm sao đăng nhập vào chodientu.vn bằng Java 06/05/2012 09:30:22 (+0700) | #8 | 262546
[Avatar]
chiro8x
Member

[Minus]    0    [Plus]
Joined: 26/09/2010 00:38:37
Messages: 661
Location: /home/chiro8x
Offline
[Profile] [PM] [Yahoo!]
Bệnh nặng rồi ! haizz ! không biết \n\r là gì mà cứ nện đại vào \r\n à. Cái gì cũng có thứ tự của nó, đây là kí tự xuống dòng. Trong windows sử dụng 2 kí tự là 0x0A và 0x0D để làm kí tự xuống dòng.
0x0A = 10 (dec) khi lập trình viết \n
0x0D = 13 (dec) khi lập trình viết \r

Chú ý ! trong file với linux nó chỉ dùng 0x0A và không sử dụng kèm với 0x0D.

Khi làm sai hãy cổ gắng tìm hiểu lí do, nó sẽ giúp bạn phát triển kỹ năng của mình tốt hơn. Cuối tuần vui.

Bạn nên lưu ý những gì mình nói ở trên về việc cookie được set trước đó, login là một quá trình step-by-step.

P/S: chú ý cái charset đi không lại khóc lóc ISO-8859-1 đừng gắng để UTF-8 làm gì.
while(1){}
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|