SQL Injection uloha

Programovacie jazyky, rady, poradňa...
feromakovi
Expert
Expert
Príspevky: 165
Registrovaný: 24 okt 2008, 14:16
Bydlisko: Bánovce nad Bebravou

SQL Injection uloha

Príspevok od používateľa feromakovi »

Ahojte,

uz 3 den sa trapim s ulohou na SQL Injection. Neviem na nete najst riesenie a mne osobne to nenapada a potreboval by som pomoc, nech mozem zase kludne spavat :)
Ak by s tym niekto vedel pohnut, poprosil by som aj nejake kratke vysvetlenie. Momentalne sa viem prihlasit ako admin ale ta druha cast s tym heslom, vobec neviem ako to vyriesit.
Neviem splnit tu podmienku aby heslo z db bolo rovnake ako to co zadam do query ako param.

Zadanie:
napisat SQL Injection do query do parametra pw tak aby boli splnene podmienky prihlasenia sa ako admin a to porovnanie hesla.
eg: http://url_k_php_suboru.php?pw=neviem_co_sem_napisat :)

Vdaka

Kód: Vybrať všetko

<?php 
  include "../config.php"; 
  login_chk(); 
  dbconnect(); 
  if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); 
  $query = "select id from prob_orc where id='admin' and pw='{$_GET[pw]}'"; 
  echo "<hr>query : <strong>{$query}</strong><hr><br>"; 
  $result = @mysql_fetch_array(mysql_query($query)); 
  if($result['id']) echo "<h2>Hello admin</h2>"; 
   
  $_GET[pw] = addslashes($_GET[pw]); 
  $query = "select pw from prob_orc where id='admin' and pw='{$_GET[pw]}'"; 
  $result = @mysql_fetch_array(mysql_query($query)); 
  if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("orc"); 
  highlight_file(__FILE__); 
?>
*****HERO*****
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2446
Registrovaný: 08 máj 2006, 1:34

Re: SQL Injection uloha

Príspevok od používateľa *****HERO***** »

asi si sem zabudol napisat zadanie tej ulohy
eMPiko
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3085
Registrovaný: 11 jan 2007, 16:40

Re: SQL Injection uloha

Príspevok od používateľa eMPiko »

Ak dobre rozoumiem tak dokazes SQL Injection spravit v tom prvom query. Nemohol by si v nom rozno aj zmenit heslo?
feromakovi
Expert
Expert
Príspevky: 165
Registrovaný: 24 okt 2008, 14:16
Bydlisko: Bánovce nad Bebravou

Re: SQL Injection uloha

Príspevok od používateľa feromakovi »

ano je to vlastne len o napisany injection do toho pw parametra. Ale heslo tam zmenit nevies lebo nevies pristupit k tabulke. cize toto nebude spravna cesta. Ale ako splnit tu podmienku ze to heslo v DB sa musi rovnat heslu z pw query param, to naozaj neviem.
eMPiko
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3085
Registrovaný: 11 jan 2007, 16:40

Re: SQL Injection uloha

Príspevok od používateľa eMPiko »

Preco nevies pristupit k tabulke?
*****HERO*****
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2446
Registrovaný: 08 máj 2006, 1:34

Re: SQL Injection uloha

Príspevok od používateľa *****HERO***** »

mozno preto, lebo sa nazov tej tabulky kontroluje v preg matchi predtym. a hlavne si nemyslim, ze by do hentoho prveho selectu dokazal vrazit nejakym sposobom update. mysql_query podporuje len jednu querynu.

parameter do tej druhej queryny je zas osetreny cez addslashes(). to sa da zneuzit v pripade niektorych multibyte charsetov, ale v tomto pripade ma nenapada jak tam nieco injectnut, hlavne ked ten parameter do oboch queryn ide z toho isteho vstupu
feromakovi
Expert
Expert
Príspevky: 165
Registrovaný: 24 okt 2008, 14:16
Bydlisko: Bánovce nad Bebravou

Re: SQL Injection uloha

Príspevok od používateľa feromakovi »

*****HERO***** napísal:mozno preto, lebo sa nazov tej tabulky kontroluje v preg matchi predtym. a hlavne si nemyslim, ze by do hentoho prveho selectu dokazal vrazit nejakym sposobom update. mysql_query podporuje len jednu querynu.

parameter do tej druhej queryny je zas osetreny cez addslashes(). to sa da zneuzit v pripade niektorych multibyte charsetov, ale v tomto pripade ma nenapada jak tam nieco injectnut, hlavne ked ten parameter do oboch queryn ide z toho isteho vstupu
Ano presne. Cize meno tabulky tam nenapises, cize nieco ako vnutorna query nepripada do uvahy. A hej presne, ze ten vstup je rovnaky ale aj ta podmienka, ze vytiehnes pw z DB a to musi byt rovnake ako ten param co zadas v URL. Tazke uverit ze sa to da injectnut :)
Michaelo
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6177
Registrovaný: 16 júl 2008, 20:29
Bydlisko: Pri PC
Kontaktovať používateľa:

Re: SQL Injection uloha

Príspevok od používateľa Michaelo »

Ono do toho prveho sa injection da dat dost lahko, ale do druheho je to docela problematicke IMO, hlavne ked musis pouzit jediny vstup na obe naraz (hlavne ked IRL nieco take nikto nerobi).

Prvy SQL: http://www.sqlfiddle.com/#!9/32483/12 (staci ti ako PW dat -> ' OR '1' = '1 )

Ohladne addslashes: http://stackoverflow.com/questions/8609 ... es#tab-top
Napísať odpoveď