Просмотр полной версии : MsSql инъекции
Вот пара вопросов, тем кто сталкивался, или знает:
1)как просмотреть свои привелегии(в частности, имею право на работу с файлами)?
2)как обратиться из одной базы данных в другую?,т.е. запрос делает выборку из одной бд, а мне надо в другую(вариант типа 'UNION SELECT * FROM otherdb.table1 не катит)
1) работать с файлами средствами мсскл можно разными способами. можно через ком-обьекты, можно получить содержимое bulk'ом. для обоих этих действий необходимы права sysadmin (существуют и права типа булкадмин но их расматривать не нужно тк на практике такое врядли встретишь). проверить принадлежность к группе администраторов можно попробовав обратиться к таблице master..syslogins
2) там по-другому нужно - имя_базы.имя_юзера.таблица чтобы не морочиться обратись просто bd..xek_tablico
Спасибо, ЗаКо,
я узнал что прав на работу с файлами нету, а вот как узнать хватит ли прав сделать
exec master..xp_cmdshell 'dir > %temp%/hi.txt'
возможности проверить успех выполнения опреции нет, так как нет возможности читать файлы, вариант ping yourself меня совсем не радует.
2)сделал
SELECT catalog_name,schema_name FROM INFORMATION_SCHEMA.SCHEMATA--
получил(как я понял имена БД, принадлежащих текущему пользователю), далее хотел узнать какие таблицы содержат эти бд,но ни один запрос не выполняеться нормально(умирает с ошибкой(ошибку не видно))
SELECT * FROM new_db..INFORMATION_SCHEMA.TABLES;
SELECT * FROM new_db.INFORMATION_SCHEMA.TABLES;
и всякие другие извращенные попытки.
2Xex попробуй подтелнетиться к каком-нибудь самопальному скрипту\программе)
ну к другой базе неудивительно что прав нет. обычно все так и есть)
to ZaCo:
re:"попробуй подтелнетиться к каком-нибудь самопальному скрипту\программе" - эту прогу/скрипт надо залить,затем запустить, что оч трудно, путей к вебсерверу не знаю,только из БД вытащил filename(e:\mssql7\data\file_Log.LDF) - может поможет.
re:"ну к другой базе неудивительно что прав нет. обычно все так и есть)" - даже несмотря на то, что у всех бд SCHEMA_OWNER один и тот же?
P>S>тык вот этот запрос верен?
-->SELECT TABLE_NAME FROM new_db.INFORMATION_SCHEMA.TABLES--
P>S>S>слушай дай асю, проконсультируюсь=)
нет, запустить прогу нужно у себя. ты начинаешь слушать порт к примеру 80 и делаешь телнет через xp_cmdshell к себе. ну и если к тебе кто-то конектится то пишешь че-нить чтобы понять выполняетс цмд или нет.
если владелец один тогда должно читаться.
SELECT TABLE_NAME FROM new_db.юзер.INFORMATION_SCHEMA.TABLES--
или попробуй так
SELECT TABLE_NAME FROM new_db..INFORMATION_SCHEMA.TABLES--
re:"делаешь телнет через xp_cmdshell к себе" - я этой темы никогда не понимал,
если делаешь телнет к себе, ты же явно палишь свой ip, объясни мне ящику такому.
мда. возьми шелл залей на какой-нибудь сервак, там запусти свой скрипт который будет слушать 6666-й порт (хотя лучше что-нибудь из стандартного) и при коннекте будет чтонибудь писать в файл например. ну вот, если никаких особых правил для фаерволла сервера с мсскл не стоит тогда при удачном телнете твой скрипт запишет что-нибудь в файл. если он запишет то xp_cmdshell пашет иначе либо фаер либо хер :)
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot