2008-06-15, 13:45
  #1
Medlem
Hej!

Jag har suttit och letat lite hur man bypassar mysql_real_escape_string, och kom över denna sida: http://shiflett.org/blog/2006/jan/ad...-escape-string

Grejen är den att jag fattar inte hur jag ska använda '0xbf27' som han skriver.
Skriver jag det i URL'en tex så får jag errorn:
Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (gbk_chinese_ci,IMPLICIT) for operation 'UNION'

Några tips eller så hur man ska göra?
__________________
Senast redigerad av pzhukke 2008-06-15 kl. 14:05.
Citera
2008-06-15, 14:09
  #2
Medlem
xobs avatar
http://www.flashback.org/showthread.php?t=691411
Citera
2008-06-15, 15:24
  #3
Medlem
MangoGreys avatar
Databasen som du ska haxxa måste köra med tekenkodeningen gbk_chinese_ci för att du ska kunna lura mysql_real_escape_string(). Så det där funkar i stort sett bara på asiatiska websidor.
Citera
2008-06-15, 16:11
  #4
Medlem
Zellboms avatar
Citat:
Ursprungligen postat av MangoGrey
Databasen som du ska haxxa måste köra med tekenkodeningen gbk_chinese_ci för att du ska kunna lura mysql_real_escape_string(). Så det där funkar i stort sett bara på asiatiska websidor.

Du verkar kunna det här.. har du ingen mer utförligare info om hur just det där tecknet kan hjälpa?
Citera
2008-06-15, 16:24
  #5
Medlem
Sweetiepies avatar
Exempel:

$id = mysql_real_escape_string($_GET["id"]);
mysql_query("SELECT * FROM news WHERE id = $id");


Mata in... union select för att hämta databasinnehåll från annan tabell bypassar mysql_real_escape_string pga att inga special-tecken används och i bästa fall är koden även så dålig att den kan skriva ut det man vill.

news.php?id=50 union select password from users where id=1/*
Citera
2008-06-15, 17:31
  #6
Medlem
Zellboms avatar
Citat:
Ursprungligen postat av Sweetiepie
$id = mysql_real_escape_string($_GET["id"]);
mysql_query("SELECT * FROM news WHERE id = $id");

Men om queryn istället ser ut såhär?

Kod:
$id mysql_real_escape_string($_GET["id"]);
mysql_query("SELECT * FROM news WHERE id = '$id'"); 

Då måste man använda specialtecken...
Citera
2008-06-16, 02:38
  #7
Medlem
MangoGreys avatar
Citat:
Ursprungligen postat av Zellbom
Du verkar kunna det här.. har du ingen mer utförligare info om hur just det där tecknet kan hjälpa?

Det hela gick ut på att trixa med tekenkodningar och få en mulitbytecharacter att escapas på ett felaktigt sätt så att slashen innan quoten blev någon helt annan bokstav. Det funkade bara på vissa teckenkodningar, t.ex. SJIS, BIG5 och GBK. Teckenkodningar som främst används i asien. Sårbarheten fixades i mysql 5.0.22, 24 maj 2006.
http://dev.mysql.com/doc/refman/5.0/en/news-5-0-22.html


Även funktionen addslashes() var känslig för detta. Vet ej om den har fixats, men förmodligen har den det.
Citera
2008-06-16, 10:50
  #8
Medlem
Zellboms avatar
Citat:
Ursprungligen postat av MangoGrey
Det hela gick ut på att trixa med tekenkodningar och få en mulitbytecharacter att escapas på ett felaktigt sätt så att slashen innan quoten blev någon helt annan bokstav. Det funkade bara på vissa teckenkodningar, t.ex. SJIS, BIG5 och GBK. Teckenkodningar som främst används i asien. Sårbarheten fixades i mysql 5.0.22, 24 maj 2006.
http://dev.mysql.com/doc/refman/5.0/en/news-5-0-22.html


Även funktionen addslashes() var känslig för detta. Vet ej om den har fixats, men förmodligen har den det.

Otur att bara asiaterna var smittade av denna bug..

Intressant läsning trots det
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in