| Autor | Správa |
Tominator
 Zablokovaný užívateľ
 Založený: 21.02.2007 Príspevky: 4009
 | Zaslal: Št 04.02.10 22:15 |   |
|
  |
 |
frosticek
 Zablokovaný užívateľ
 Založený: 12.04.2010 Príspevky: 12
 |
| miso250593 napísal: | napríklad, ja $_GET proste ošetrujem nejak takto
| kód: | | preg_replace("([^a-zA-Z0-9])", "", $_GET[nieco]); |
|
Myslim ze to je nie postacujuce... |
| |
  |
 |
miso250593
 Užívateľ
 Založený: 20.03.2008 Príspevky: 566
 | Zaslal: St 12.05.10 15:00 |   |
|
    |
 |
coldak
 Skúsený užívateľ
 Založený: 29.10.2008 Príspevky: 927
 |
|
  |
 |
stenley
 Moderátor
 Založený: 27.07.2007 Príspevky: 3715 Bydlisko: Bratislava Vek: 26
 |
asi preto, lebo nie kazdy ma moznost pouzivat mysqli a hodnoty z $_GET sa nepouzivaju len na pracu s db  |
_________________ Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB | |
    |
 |
coldak
 Skúsený užívateľ
 Založený: 29.10.2008 Príspevky: 927
 |
no dobre ale selectovanie typu "select 'a' from table" hadam existuje v MySql  |
| |
  |
 |
stenley
 Moderátor
 Založený: 27.07.2007 Príspevky: 3715 Bydlisko: Bratislava Vek: 26
 | Zaslal: Št 13.05.10 10:12 |   |
existuje, ale narazal som na prepared statement (vstavanu funkciu)
mozno niekomu pomoze: SQL Injection Cheat Sheet |
_________________ Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB | |
    |
 |
coldak
 Skúsený užívateľ
 Založený: 29.10.2008 Príspevky: 927
 | Zaslal: Št 13.05.10 12:29 |   |
smutne ze prepared statement nieje standardne k dispozicii. priznam sa ze o MySql a PHP viem minimum az takmer nic ale mohlo by zafunngovat nieco taketo :
| kód: |
create table dual (dummy varchar(1));
insert into dual(dummy) values ('X');
select a.pass
from TABLEXX as a,
(select $_GET[nieco] as COL1 from DUAL) as B
where a.login = b.col1;
|
|
| |
  |
 |
stenley
 Moderátor
 Založený: 27.07.2007 Príspevky: 3715 Bydlisko: Bratislava Vek: 26
 | Zaslal: Št 13.05.10 13:02 |   |
v mysql je ps dostupne, ale v php nie je na to podpora, a tak je jednoduchsie osetrit vstup priamo v php, ako to zlozitejsie riesit v sql... |
_________________ Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB | |
    |
 |
rooobertek
 Skúsený užívateľ
 Založený: 09.07.2008 Príspevky: 1582
 | Zaslal: Št 13.05.10 19:02 |   |
tak to je riadna dekadencia pisat este v php 4 |
_________________ neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to! | |
  |
 |
stenley
 Moderátor
 Založený: 27.07.2007 Príspevky: 3715 Bydlisko: Bratislava Vek: 26
 | Zaslal: Št 13.05.10 19:16 |   |
nj, ale cudoval by si sa, na kolkych firemnych serveroch je este nainstalovana stara verzia php... |
_________________ Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB | |
    |
 |
rooobertek
 Skúsený užívateľ
 Založený: 09.07.2008 Príspevky: 1582
 |
poznam jeden velmi velky portal, ktory nemoze prejst na 5 kvoli spatnej nekompatibilite jedneho modulu. Ale ak sa nemylim, php4 uz nema ani security updates
Mimochodom, niektore frameworky vedia simulovat prepared statements. Nakoniec aj tak iba escapuju, ale nemusite to robit rucne. Mne sa lepsie pise | kód: | | $objekt->funkcia("select ... where x=?", $_GET["meno"]) | ako | kód: | | "select ... from ... ".mysql_real_escape_string($_GET["meno"])."..." | samozrejme ak ide o cislo, pouzivam intval alebo nieco pribuzne |
_________________ neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to! | |
  |
 |
misko16
 Užívateľ
 Založený: 12.11.2008 Príspevky: 85
 |
vytvoril som si testovaci skript, kde je iba MySQL dopyt
| kód: |
$blabla = mysql_query("SELECT stlpec FROM tabulka WHERE id='$_GET[id]'")
|
nie je to teda nijak chranene a prepisanim linku v adress bare browsera je mozny sql injection. je tak?
potom by teda sql injection mohol vyzerat v adress bare takto
| kód: |
http://www.stranka.sk?id=1';DROP TABLE tabulka
|
tu je ale moj "problem" alebo skor otazka, ze preco mi to tak nejde? mysql dopyt sa vykona s tou jednotkou, ale dalej ten dopyt proste nepokracuje a ziadny DROP sa nevykona. takisto, ked do skriptu napisem rovno ten dopyt takto
| kód: |
mysql_query("SELECT stlpec FROM tabulka WHERE id='1';DROP TABLE tabulka")
|
vykona sa iba jeho prva cast, teda SELECT.
ako je to mozne? som teda voci sql injection imunny a ziadne operacie uz s tym $_GET[id] robit nemusim? |
| |
  |
 |
venom2
 Užívateľ
 Založený: 14.11.2010 Príspevky: 97
 |
| misko16 napísal: |
| kód: |
http://www.stranka.sk?id=1';DROP TABLE tabulka
|
|
myslim ze chyba je v tom, ze dotaz DROP TABLE nemas ukonceny bodkociarkou, a taktiez by asi trebalo "odstranit" ukoncovaci apostrof, medzi ktore vkladas premennu '$_GET[id]'
skus na koniec dopisat bodkociarku a dve pomlcky, cize
| kód: | | http://www.stranka.sk?id=1';DROP TABLE tabulka; -- |
EDIT: neviem ako ti to zobere prehliadac, kedze to je link s medzerou, ale ak by si to dal do vstupneho textoveho pola formulara, malo by to ist  |
| |
  |
 |
stenley
 Moderátor
 Založený: 27.07.2007 Príspevky: 3715 Bydlisko: Bratislava Vek: 26
 |
http://ferruh.mavituna.com/sql-injection-cheatsheet-oku/#StackingQueries |
_________________ Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB | |
    |
 |
|