argon bulletin board

Експертно търсене  

Новини:

Регистрирането на нови потребители е временно деактивирано.

Автор Тема: Reverse Turing Test  (Прочетена 4309 пъти)

hWnd

  • Гост
Reverse Turing Test
« -: 19.01.2007, 15:22:43 »

Интересно ми е къде е дупката в защитата тук, че bot-ове мога да submit-ват коментари?

'Георги
Активен

Jack Johnson

  • Неактивен Неактивен
  • Публикации: 704
  • Хора, пазете си здравето! То няма цена!
Re: Reverse Turing Test
« Отговор #1 -: 19.01.2007, 16:00:48 »

"Дупката" е в това, че с най-обикновен HTTP парсер при положение, че се знае коя е CMS  системата е напълно възможно да се напише програма, която да въвежда коментари като предварително се прочете и парсне редът за защита.

За тази цел хората са измислили защита с въвеждане на код от картинки, които по-трудно се поддават на хакове.

Познавам един човек, който преди време написа програма, която по ЕГН автоматично проверяваше в сайта на НОИ кой кога е осигурен и т.н. Сайтът на НОИ тогава имаше защита с въвеждане на код от картинка, но колегата проби защитата като анализира цветовете на различните букви и цифри в картинката и създаде шаблон за всеки знак. Положението на знаците в защитната картинка всеки път беше едно и също, и с най-обикновено налагане на шаблони защитата бе пробита!

Няма да споменавам името на човека, за да не го подгони НСБОП!

Нпоследък кодовете по защитните картинки в повечето сайтове са размазани/зачеркнати, с различен наклон/шрифт/цвят, верикално/хоризонтално изместване и т.н., но това само забавя хакерите!

Няма непробиваема защита! Има мързеливи програмисти, които не искат да я пробият... все още!
« Последна редакция: 19.01.2007, 16:09:57 от Иван Давидов »
Активен

JOKe

  • Неактивен Неактивен
  • Публикации: 2656
  • Code or Die
Re: Reverse Turing Test
« Отговор #2 -: 19.01.2007, 16:03:32 »

originalniq laf mai e :
nqma neshto koeto da ne moje da se hackne, ima neshta koito vse oshte ne sa hackanti.
Активен

hWnd

  • Гост
Re: Reverse Turing Test
« Отговор #3 -: 19.01.2007, 17:08:58 »

@Иван Давидов: Съгласен съм с всичко което казваш. Обаче разчитам на това, че CMS е моя и някакси не е достатъчно разпространена...
Активен

Иван Йорданов

  • Неактивен Неактивен
  • Публикации: 175
Re: Reverse Turing Test
« Отговор #4 -: 19.01.2007, 17:20:00 »

Не знам защо си мисля че кода на този CMS съм го виждал някъде.

изглежда нещо от рода на
function LoadModule($module)
{
$res = mysql_query("SELECT rank,file.... FROM {$this->prefix}modules WHERE module = '{$module}'")
$data = mysql_fetch_array($res)
if ($data['rank']<=$_SESSION['rank'])
{
//i can output content
eval(file_get_contents($data['file']));
}
else
{
LoadModule('access_denied');
}
}


е има и други екстри по кода предполагам, но това си спомням от това което съм виждал някъде, а нещата наистина много приличат
Активен
Иван Йорданов
Поздрави от
         The Bash Master Club

JOKe

  • Неактивен Неактивен
  • Публикации: 2656
  • Code or Die
Re: Reverse Turing Test
« Отговор #5 -: 19.01.2007, 17:23:21 »

a ve s Image e chhista rabota
tva sa shits :>
slushai sq na Java da ti q napisha ? :+P
nai Vyrlata zashtita e ne kakto kaza Ivan s cvetove i da e omazano ami pyrvo da e edin cviat primerno vinagi da sa cherni
samo che pyrvo
 imash IZRAZ s Cheren shrift leko deformiran otgore napliskan s cherni cherti i etc
stava hem - presmetni izraza
hem image
hem e omazan apa ako si fanatik napraskai i drugi cvetove :>
staa mazalo :>
Активен

Nikolay Manchev

  • Неактивен Неактивен
  • Публикации: 185
    • http://www.manchev.org
Re: Reverse Turing Test
« Отговор #6 -: 25.01.2007, 14:38:44 »

...верикално/хоризонтално изместване и т.н., но това само забавя хакерите!

Кракери, Иване. Недей смесва и ти понятията като неграмотните журналя.

Поздрави,

Николай
Активен

А.Пенев

  • Неактивен Неактивен
  • Публикации: 157
    • www.alexander-penev.info
Re: Reverse Turing Test
« Отговор #7 -: 26.01.2007, 12:54:02 »

Това с генерирането и разпознаването на защитни изображения (CAPTCHA) е интересен проблем.
Аз отдавана се каня да пусна две дипломни работи (или една) на подобна тема.
Ако някой студент от трети или по-малък курс се интересува нека да ме намери в ПУ. Добре е преди това да е попрочел малко (например http://en.wikipedia.org/wiki/CAPTCHA).

PS. Интересно ще се получи да се направят две дипломни и накрая да пуснем едната срещу другата  :wink:
PS2. Тук не става изобщо въпрос за квакерство или хакерство. Просто два проблема от генерирането и разпознаването на изображения.
« Последна редакция: 26.01.2007, 12:56:03 от A.Penev »
Активен
А.Пенев

Nikolay Manchev

  • Неактивен Неактивен
  • Публикации: 185
    • http://www.manchev.org
Re: Reverse Turing Test
« Отговор #8 -: 26.01.2007, 14:48:01 »

PS2. Тук не става изобщо въпрос за квакерство или хакерство. Просто два проблема от генерирането и разпознаването на изображения.

По същата логика, brute force-ването на пароли вероятно е просто проблем от областта на комбинаториката? Deface-ването на сайтове е просто cross-scripting и regex exploit проблем? Не е важен методът, а за какви цели се прилага. Моята мисъл е, че поне ние като информатици трябва да внимаваме в терминологията. За тези, които не правят разлика между кракер и хакер и си има wikipedia, да му се не види.
Активен

Иван Йорданов

  • Неактивен Неактивен
  • Публикации: 175
Re: Reverse Turing Test
« Отговор #9 -: 26.01.2007, 15:08:24 »

Аз отдавана се каня да пусна две дипломни работи (или една) на подобна тема.
Ако някой студент от трети или по-малък курс се интересува нека да ме намери в ПУ.

Аз лично се интересувам а и чуствам че ми трябва да се захвана с някакъв различен проект че вече ще взема да изперкам .. една година правя почти едно и също всеки ден. В кои дни мога да Ви намеря и в кой кабинет ?
Активен
Иван Йорданов
Поздрави от
         The Bash Master Club

А.Пенев

  • Неактивен Неактивен
  • Публикации: 157
    • www.alexander-penev.info
Re: Reverse Turing Test
« Отговор #10 -: 26.01.2007, 17:42:17 »

PS2. Тук не става изобщо въпрос за квакерство или хакерство. Просто два проблема от генерирането и разпознаването на изображения.

По същата логика, brute force-ването на пароли вероятно е просто проблем от областта на комбинаториката? Deface-ването на сайтове е просто cross-scripting и regex exploit проблем? Не е важен методът, а за какви цели се прилага. Моята мисъл е, че поне ние като информатици трябва да внимаваме в терминологията. За тези, които не правят разлика между кракер и хакер и си има wikipedia, да му се не види.
Разбира се че термините имат значение и трябва да се употребяват точно.
Аз имах в предвид, че дипломните работи няма да са: "Как да хакнем еди какво си..." или "Приложение на нещо си при кракването."  :-)
А що се отнася до кое проблем на какво е - както добре знаем обикновенно нещата са много по-комплексни и често са сечение на няколко области (както е в случая).
Активен
А.Пенев

А.Пенев

  • Неактивен Неактивен
  • Публикации: 157
    • www.alexander-penev.info
Re: Reverse Turing Test
« Отговор #11 -: 26.01.2007, 17:46:59 »

Аз лично се интересувам а и чуствам че ми трябва да се захвана с някакъв различен проект че вече ще взема да изперкам .. една година правя почти едно и също всеки ден. В кои дни мога да Ви намеря и в кой кабинет ?

Който иска да ме намери да ми прати лично съобщение, e-mail или просто да дойде някоя сряда в новата сграда на ПУ, където до края на семестъра ще имам упражнения по "Методи на транслация" (5-та компютърна). Не е задължително да се получи дипломна работа, така че ако някой се интересува просто да дойде и да поговорим.
Активен
А.Пенев

JOKe

  • Неактивен Неактивен
  • Публикации: 2656
  • Code or Die
Re: Reverse Turing Test
« Отговор #12 -: 07.02.2007, 10:36:47 »

am popadna mi ot edin blog
moje pa na nqkoi da mu e polezno :


generira se taka :
<%@ page import="java.util.*"%>
<%@ page import="java.io.*"%>
<%@ page import="javax.servlet.*"%>
<%@ page import="javax.servlet.http.*"%>
<%@ page import="java.awt.*"%>
<%@ page import="java.awt.image.*"%>
<%@ page import="javax.imageio.*"%>
<%@ page import="java.awt.geom.*"%>
<%
 //========================================================
 // Kick Ass Captcha JSP
 //
 // Michael Connor 2007
 //
 // I just couldn't handle the thought of downloading a
 // big jar and configuring some servlet.xml and having
 // little to no control of anything...
 // You can send in height and width parameters.
 // The captcha value will be placed in the session in
 // a parameter called 'captcha'
 //
 // Feel free to use this code and do whatever the hell
 // you want to it.
 //========================================================

 response.setContentType("image/jpg");

 try {
   
   Color backgroundColor = Color.red;
   Color borderColor = Color.red;
   Color textColor = Color.white;
   Color circleColor = new Color(160,160,160);
   Font textFont = new Font("Arial", Font.PLAIN, 24);
   int charsToPrint = 6;
   int width = request.getParameter("width") != null ? Integer.parseInt(request.getParameter("width")) : 150;
   int height = request.getParameter("height") != null ? Integer.parseInt(request.getParameter("height")) : 80;
   int circlesToDraw = 4;
   float horizMargin = 20.0f;
   float imageQuality = 0.95f; // max is 1.0 (this is for jpeg)
   double rotationRange = 0.7; // this is radians
   BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

   Graphics2D g = (Graphics2D) bufferedImage.getGraphics();

   //Draw an oval
   g.setColor(Color.red);
   g.fillRect(0, 0, width, height);

   // lets make some noisey circles
   g.setColor(circleColor);
   for ( int i = 0; i < circlesToDraw; i++ ) {
     int circleRadius = (int) (Math.random() * height / 2.0);
     int circleX = (int) (Math.random() * width - circleRadius);
     int circleY = (int) (Math.random() * height - circleRadius);
     g.drawOval(circleX, circleY, circleRadius * 2, circleRadius * 2);
   }

   g.setColor(textColor);
   g.setFont(textFont);

   FontMetrics fontMetrics = g.getFontMetrics();
   int maxAdvance = fontMetrics.getMaxAdvance();
   int fontHeight = fontMetrics.getHeight();

   // i removed 1 and l and i because there are confusing to users...
   // Z, z, and N also get confusing when rotated
   // 0, O, and o are also confusing...
   // lowercase G looks a lot like a 9 so i killed it
   // this should ideally be done for every language...
   // i like controlling the characters though because it helps prevent confusion
   String elegibleChars = "ABCDEFGHJKLMPQRSTUVWXYabcdefhjkmnpqrstuvwxy23456789";
   char[] chars = elegibleChars.toCharArray();

   float spaceForLetters = -horizMargin * 2 + width;
   float spacePerChar = spaceForLetters / (charsToPrint - 1.0f);

   AffineTransform transform = g.getTransform();

   StringBuffer finalString = new StringBuffer();

   for ( int i = 0; i < charsToPrint; i++ ) {
     double randomValue = Math.random();
     int randomIndex = (int) Math.round(randomValue * (chars.length - 1));
     char characterToShow = chars[randomIndex];
     finalString.append(characterToShow);

     // this is a separate canvas used for the character so that
     // we can rotate it independently
     int charImageWidth = maxAdvance * 2;
     int charImageHeight = fontHeight * 2;
     int charWidth = fontMetrics.charWidth(characterToShow);
     int charDim = Math.max(maxAdvance, fontHeight);
     int halfCharDim = (int) (charDim / 2);

     BufferedImage charImage = new BufferedImage(charDim, charDim, BufferedImage.TYPE_INT_ARGB);
     Graphics2D charGraphics = charImage.createGraphics();
     charGraphics.translate(halfCharDim, halfCharDim);
     double angle = (Math.random() - 0.5) * rotationRange;
     charGraphics.transform(AffineTransform.getRotateInstance(angle));
     charGraphics.translate(-halfCharDim,-halfCharDim);
     charGraphics.setColor(textColor);
     charGraphics.setFont(textFont);

     int charX = (int) (0.5 * charDim - 0.5 * charWidth);
     charGraphics.drawString("" + characterToShow, charX,
                            (int) ((charDim - fontMetrics.getAscent())
                                   / 2 + fontMetrics.getAscent()));

     float x = horizMargin + spacePerChar * (i) - charDim / 2.0f;
     int y = (int) ((height - charDim) / 2);
//System.out.println("x=" + x + " height=" + height + " charDim=" + charDim + " y=" + y + " advance=" + maxAdvance + " fontHeight=" + fontHeight + " ascent=" + fontMetrics.getAscent());
     g.drawImage(charImage, (int) x, y, charDim, charDim, null, null);

     charGraphics.dispose();
   }

   //Write the image as a jpg
   Iterator iter = ImageIO.getImageWritersByFormatName("JPG");
   if( iter.hasNext() ) {
     ImageWriter writer = (ImageWriter)iter.next();
     ImageWriteParam iwp = writer.getDefaultWriteParam();
     iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
     iwp.setCompressionQuality(imageQuality);
     writer.setOutput(ImageIO.createImageOutputStream(response.getOutputStream()));
     IIOImage imageIO = new IIOImage(bufferedImage, null, null);
     writer.write(null, imageIO, iwp);
   } else {
     throw new RuntimeException("no encoder found for jsp");
   }

   // let's stick the final string in the session
   request.getSession().setAttribute("captcha", finalString.toString());

   g.dispose();
 } catch (IOException ioe) {
   throw new RuntimeException("Unable to build image" , ioe);
 }
%>


edit :
aa da popadna mi ot :
http://www.jroller.com/page/mlconnor?entry=simple_captcha_jsp
Активен

Boris

  • Неактивен Неактивен
  • Публикации: 45
    • BorisV5
Re: Reverse Turing Test
« Отговор #13 -: 08.02.2007, 17:25:55 »

Браво JOKe примерчето е много интересно.
Все пак ако се намерят достатъчно добри библиотечки за разчитане на символите от такива картинки, тогава картинките ще бъдат заместени със движещи се GIF-чета на които по някое време ще се показват символите за въвеждане. Което ще въведе нова задачка закачка  :-D

BorisV5
Активен
BorisV5

Polizei

  • Неактивен Неактивен
  • Публикации: 2
Re: Reverse Turing Test
« Отговор #14 -: 10.02.2007, 19:36:18 »

@Николай Манчев:
Кракери?? интересно...  Ти знаеш ли, btw, кракерите с какво се занимават ?
Защото за да разпознаеш един текст не ти трябва нищо друго освен 2 .dll-та от FineReader-а, малко идея, и малко мозък да си направих четец който да разпознава текста ...
Тъй де, пишеш си 2-3 хедърни файла (за по лесно асемблерски), компилираш библиотека за динамично свързване, и чрез .длл-тата пердашиш.

Та къде е "кракерството" тука?
Да не брутфорсваш пароли случайно?
или експлойтваш нещо (та баерм хаХер да го наречеш)

Съжалявам за сарказма, но т'ва си ми е стил...
Активен
Лъчезар Цветков

JOKe

  • Неактивен Неактивен
  • Публикации: 2656
  • Code or Die
Re: Reverse Turing Test
« Отговор #15 -: 14.02.2007, 10:50:17 »

realno izpolzvaneto na 2ta dll-a si e crack :+P
a i se pak horata sa kazali nqma neshto koeto da ne moje da byde "precakano" neka ne izpolzvam dumi kato "hack i crack" prosto ima neshta koito vse oshte nemogat da bydat "precakani,zaobikoleni" :)

taka che vyprosa e da se filtrira % ot "horata". Vinagi syshtestvuva chovek X s idea Y koqto shte schupi tvoqta ideq Z .
Boris : haha ima ideq :) makar 4e si mislq hm.. shto Gif4e ? za gif4e ima prekaleno mnogo biblioteki a u a u napraveni ne che "Flash4e" e po dobre  naprao edno Java Applet4e shte im praskam deto shte im gi vizualizira haha :>
Активен

Иван Йорданов

  • Неактивен Неактивен
  • Публикации: 175
Re: Reverse Turing Test
« Отговор #16 -: 14.02.2007, 11:36:55 »

Boris : haha ima ideq :) makar 4e si mislq hm.. shto Gif4e ? za gif4e ima prekaleno mnogo biblioteki a u a u napraveni ne che "Flash4e" e po dobre  naprao edno Java Applet4e shte im praskam deto shte im gi vizualizira haha :>

Така ще филтрираш и голям % от потребителите които нямат идея какво е Java applet и как да го подкарат :headbang:

Иначе в гиф и флаш има идея.  :rock:
Активен
Иван Йорданов
Поздрави от
         The Bash Master Club

JOKe

  • Неактивен Неактивен
  • Публикации: 2656
  • Code or Die
Re: Reverse Turing Test
« Отговор #17 -: 14.02.2007, 14:02:00 »

a ve i az nenzam kvo e flash i tuka ima edna otmetka deto mi go zabranqva ta sam go zabranil ama se pak :)
Активен

JOKe

  • Неактивен Неактивен
  • Публикации: 2656
  • Code or Die
Re: Reverse Turing Test
« Отговор #18 -: 14.02.2007, 14:02:23 »

po taia logika ima golqm % deto polzvat IE 5 ili IE 5.5 ta ne poddarjat PNG-ta dai da ne gi polzvame :)
a i kvo e tva PNG ? SVG ? DJIDJI BIDJI
Активен