ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #10  
Старый 12.04.2009, 17:24
[underwater]
Познающий
Регистрация: 29.03.2009
Сообщений: 87
Провел на форуме:
2185909

Репутация: 308
По умолчанию

Как написал Dr.Z3r0 не всегда возможно использовать кавычки в SQL-запросах, например, при чтении файлов через LOAD_FILE().Можно использовать альтернативные констуркции:
'string' =

char(115)+char(116)+char(114)+char(105)+char(110)+ char(103)
'string' = 0x737472696E67

Так вот собственно скрипт для этого:
(Конечно понятно что сейчас полно инструментов для кодирования строки в char() представление, но мне ,например, так удобней, тем более скрипт 0x123-представлние заменяет на %2b, что необходимо в случае GET запроса)

Код:
<html>
<head>
<title>String Convertor for SQL-query</title>
<script language="javascript">
function baseConverter (number,ob,nb) { 
	number = number.toUpperCase();
	var list = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var dec = 0;
	for (var i = 0; i <=  number.length; i++) {
		dec += (list.indexOf(number.charAt(i))) * (Math.pow(ob , (number.length - i - 1)));
	}
	number = "";
	var magnitude = Math.floor((Math.log(dec))/(Math.log(nb)));
	for (var i = magnitude; i >= 0; i--) {
		var amount = Math.floor(dec/Math.pow(nb,i));
		number = number + list.charAt(amount); 
		dec -= amount*(Math.pow(nb,i));
	}
	return number;
}

function recode(target)
{
 var s = new String(target);
 var out = new String("");
 var plus = "";
 if (document.forms[0].replaceplus.checked)
 { plus = "%2b"; } else { plus = "+"; }
 for(i=0;i<s.length;i++)
 {
  out += "char(" + s.charCodeAt(i) + ")"; 
  if (i+1<s.length){ out += plus; }
 }
 return out;
}
function recode16(target16)
{
 var s = new String(target16);
 var out = new String("0x");
 for(i=0;i<s.length;i++)
 {
  if (s.charCodeAt(i) < 10)
  {
   out += "0" + baseConverter(String(s.charCodeAt(i)),10,16);
  }
  else
  {
   out += baseConverter(String(s.charCodeAt(i)),10,16);
  }
 }
 return out;
}

</script>
<style type="text/css">
BODY {
	scrollbar-base-color: #252525;
	scrollbar-arrow-color: #bbbb88;
	COLOR: #e4e4e4;
	margin:	0;
	font-family: Verdana;
	font-size: 13px;
	background-color: #444444;
	}
td	{
	font-family: Verdana;
	COLOR: #e4e4e4;
	font-size: 13px;
}
SELECT {
	FONT-FAMILY: Verdana;
	FONT-SIZE: 10px;
	COLOR: #e4e4e4;
	font-weight: bold;
	BACKGROUND-COLOR: #444444;
}
TEXTAREA, {
	FONT-SIZE: 13px;
	FONT-FAMILY: Verdana;
	COLOR: #EEEEEE;
	BACKGROUND-COLOR: #252525;
}
.days {
	FONT-FAMILY: Verdana;
	border : none;
	FONT-SIZE: 10px;
	COLOR: #e4e4e4;
	BACKGROUND-COLOR: #222222;
}
.bginput {
	FONT-SIZE: 11px;
	FONT-FAMILY: Verdana;
	font-weight: bold;
	COLOR: #EEEEcc;
	BACKGROUND-COLOR: #252525;
}

A:link, A:visited, A:active {
	COLOR: #e2e5cc;
	text-decoration: none;
}
A:hover {
	COLOR: #FFffcc;
}
.thtcolor {
	COLOR: #f5f5f5;
}
.bright {
	BACKGROUND-COLOR: #dddddd;
	padding-bottom : 5px;
 	padding-left : 5px;
 	padding-right : 5px;
 	padding-top : 5px;
	FONT-SIZE: 11px;
}
.qu {
BACKGROUND-COLOR: #3b3b3b;
 border : thin inset;
 margin-bottom : 5px;
 margin-left : 15px;
 margin-right : 5px;
 margin-top : 5px;
 padding-bottom : 5px;
 padding-left : 5px;
 padding-right : 5px;
 padding-top : 5px;
border-width : 1px 1px 1px 1px;
}
</style>
</head>

<body>
<form>
<table border=0 cellpadding=2>
<tr><td align=center>source</td></tr>
<tr><td align=center><textarea name="_in" cols=80 rows=7></textarea></td></tr>
<tr><td align=center>char(123)-like result. <input type=checkbox name="replaceplus"> Replace "+" with "%2b"</td></tr>
<tr><td align=center><textarea name="_out" cols=80 rows=7></textarea></td></tr>
<tr><td align=center>0x0123-like result</td></tr>
<tr><td align=center><textarea name="_out16" cols=80 rows=7></textarea></td></tr>
<tr><td align=center><input type="button" onClick="document.forms[0]._out.value=recode(document.forms[0]._in.value); document.forms[0]._out16.value=recode16(document.forms[0]._in.value);" value=" encode "></td></tr>
</table>
</form>
</body>

</html>
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL Injection: Modes of Attack, Defence, and Why It Matters bxN5 Forum for discussion of ANTICHAT 1 09.04.2007 19:07
SQL Injection FAQ bx_N Forum for discussion of ANTICHAT 2 08.03.2007 18:48
Обнаружение Sql инъекций в Oracle, часть вторая k00p3r Чужие Статьи 0 13.06.2005 11:26
Sql инъекция и Oracle, часть первая k00p3r Чужие Статьи 0 13.06.2005 11:23
SQL Injection в Oracle k00p3r Чужие Статьи 0 12.06.2005 12:41



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ