masq Posted November 13, 2009 Report Posted November 13, 2009 (edited) source kods: $id = $_GET['id']; $result = mysql_query("SELECT * FROM items WHERE id='$id'"); $row = mysql_fetch_array($result); links: http://localhost/show.php?id=20';DROP TABLE items; -- errors: Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\show.php on line 220 Ko es daru nepareizi? Man raksts ir pilnībā ,un tikai mācību nolūkiem. Mērķis: Izdzēst table -> items Edited November 13, 2009 by masq Quote
marcis Posted November 13, 2009 Report Posted November 13, 2009 mysql_query() manuālis stāsta: [..] sends a unique query (multiple queries are not supported) to the currently active database [..] Tas nozīmē, ka 2 kverijus tu tam neiebarosi, tu vari taisīt otru selektu ar union un izselektēt, piemēram, admina paroli Quote
waplet Posted November 13, 2009 Report Posted November 13, 2009 var nodroppot, vismaz man tā liekas.. ar mysql pēcbūtības tātad neko nograut nevar? union all select from information_schema.tables vai union all select users into outfile "full/path/tofile/123.php" Quote
masq Posted November 13, 2009 Author Report Posted November 13, 2009 Tajā datubāzē nekādi admini nepastāv ftr , bet tas nozīmē ,ka man nav nekādas iespējas ne DROp ne DELETE taisīt? Quote
Grey_Wolf Posted November 14, 2009 Report Posted November 14, 2009 gluzji vienkarshi mysql_query() NENJEM 2 kverijus reizee, ka tu megjinaji vienjam 'iebarot' Peec tava koda sanaca , ka tiek padots ~~ sads kverijs SELECT * FROM items WHERE id=20;DROP TABLE items; Un tie jau ir 2 Kveriji -- Vispar jau Elementarakaa ( un arii nepieciesama) aizsardziba pret sada veida darbiibam ir, No arejaa WEB vispar neljaut veikt DROP etc darbibas, tas ir izmantot 2 Mysql Lietotajus. 1. CMS dalja ( PHPAdmin) --> atlajut visus nepieciesamo 2. Weba, kuram atlajut tikai SELECT, UPDATE, INSERT ( un pat jautajums vai atljaut DELETE) , respektiivi TIKAI pashu minimali nepiesiesamo . Quote
xPtv45z Posted November 15, 2009 Report Posted November 15, 2009 Tur gan komentāros viens norāda, ka multiple queries ir iespējami, tikai tas speciāli jānorāda. http://lv.php.net/manual/en/function.mysql-query.php#91669 Quote
masq Posted November 17, 2009 Author Report Posted November 17, 2009 (edited) Lieta tāda ,ka es biju noobs un nenodrošinājos pret to ,kas notika. Es čalim uzstaisīju lapu , un šis mani apšmauca ,nekontaktējas ar mani u.t.t. vopšim zen no viņa neredzēt. Ja kāds man varētu pamācīt ,kā man savu veidoto lapu uzlauzst ,tā lai vairāk nekas nestāv datubāzē. Es varu uzreiz atbalstīt ar pilnīgi visu source kodu ja ir vajadzība. EDIT: Es domāju vai ir veids ,kā iepriekšējo kveriju ķipa izslēgt no izpildīšanas. (long shot- jo man liekas ka nav) EDIT2: šī ir tā mājaslapa http://gribiletak.lv EDIT3: Es domāju kautkā esošajā kverijā SELECT * FROM blabla WHERE id=blabla , ielikt beigās kautko ,kas visu tekstu vairs neņem vērā ,bet ņem vērā tikai nākamo tekstu(charus). Kā es to iedomājos: |+| = kautkas ,kas sāk lasīt tikai no šejienes mysql_query("SELECT * FROM blabla WHERE id=blabla |+| DROP DATABASE;") Edited November 17, 2009 by masq Quote
briedis Posted November 17, 2009 Report Posted November 17, 2009 Žēl, ka tev tā sanācis. Sarunā kādu bariņu ar čomiem, un sarunā ar savu izbijušo klientu kādu tikšanos :) Varbūt te kaut kas palīdz: http://ferruh.mavituna.com/sql-injection-cheatsheet-oku/ Quote
masq Posted November 17, 2009 Author Report Posted November 17, 2009 (edited) Jau sen palasīju , žēl ,ka mysql neizdomāja kā iepriekšējos charus padarīt piemēram par komentāru... EDIT: Nezinu vai es tā darīšu, bet gribas jau ļoti. Edited November 17, 2009 by masq Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.