Category: Uncategorized

Acunetix Web Vulnerability Scanner

One of my customer suffer from DDOS attack and site goes down.
In logs I found a lot of login requests with unexisting usernames but some of usernames contains exploits like SQL, JavaScript, command line injections.
For example:

admin tries to login as admin
\"+response.write(9016645*9728826)+\" javascript injection
(select convert(int,CHAR(65))) sql injection
waitfor delay \'0:0:4\' do we have MSSQL?
and (sleep(4)+1) limit 1 or MySQL?
cat /etc/passwd;\' linux/bsd? tries to get contents of passwords
^(#$!@#$)(()))* perl? (interpreting)
;print(md5(acunetix_wvs_security_test)); checking for vulnerability PEAR XML_RPC 1.3.0 in PHP

The list of exploits will be here bellow but please don’t open any links since they contains exploits too.
Analysis of exploits shown that this attack was performed by Acunetix Web Vulnerability Scanner.
In short this is just a robot that runs over your site and tests for known security issues.
Even if your site would be vulnerably, the scanner would not try to break anything, but it report the vulnerabilities to the attacker.

Each time when login performed site tries to lookup a user with the username in DB and when not it found return a NoSuchUserException. That’s creates a big load on DB.
So we will add to our login simple validation that username doesn’t contains any special symbols or spaces and return NoSuchUserException even without DB lookup.
That’s will minimize a database load on next attack. Also it would be great to write to logs some security alert.

Another one simple step to prevent this kind of attack is to avoid usernames like «admin», «user», «test» and similar.

List of exploits (please not that they have some random generated part):

!(()&&!|*|*|
#{9999517+9999846}
$(nslookup XaHYzdt9)
${9999517+9999846}
${@print(md5(acunetix_wvs_security_test))}
${@print(md5(acunetix_wvs_security_test))}\\
\";print(md5(acunetix_wvs_security_test));$a=\"
\';print(md5(acunetix_wvs_security_test));$a=\'
<!--
&nslookup wqTuHKgH&\'\\\"`0&nslookup wqTuHKgH&`\'
(select convert(int,CHAR(65)))
)
)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-1 OR 2+101-101-1=0+0+0+1 --
-1 OR 2+361-361-1=0+0+0+1
-1\" OR 2+167-167-1=0+0+0+1 --
-1\' OR 2+40-40-1=0+0+0+1 --
-1\' OR 2+881-881-1=0+0+0+1 or \'dvO3lt07\'=\'
................windowswin.ini
../../../../../../../../windows/win.ini
/.\\\\./.\\\\./.\\\\./.\\\\./.\\\\./.\\\\./windows/win.ini
../../../../../../../../../../windows/win.ini\0.tst
\";cat /etc/passwd;\"
/../..//../..//../..//../..//../..//etc/passwd\0.tst
./WEB-INF/web.xml
./WEB-INF/web.xml?
WEB-INF/web.xml
WEB-INF\\web.xml
//WEB-INF/web.xml
/forward:/WEB-INF/web.xml
/static/WEB-INF/web.xml
/www.vulnweb.com
1
1 waitfor delay \'0:0:9\' --
1some_inexistent_file_with_long_name\0.jpg
1\'\"
1\0'"
5rRFX596\');select pg_sleep(3); --
a7C6fcfF\';select pg_sleep(3); --
CdU2ccxR\'));select pg_sleep(6); --
;print(md5(acunetix_wvs_security_test));
@@Y7Mum
admin
Array
asblyars&n934969=v921785
dxiHJlrn\'); waitfor delay \'0:0:13\' --
e&n903064=v900092
http://hitCNGUlQ53Jk.bxss.me/

http://testasp.vulnweb.com/t/fit.txt


ibqxmqjh&n902289=v938342
JyI=
response.write(9856682*9648787)
set|set&set
testasp.vulnweb.com
wtqcgrsv&n912204=v936365
YlpOb05tVlA=
yoUBQu2S
ZPuBQkWY
\"+response.write(9016645*9728826)+\"
\'\"
\'\"()
\\
^(#$!@#$)(()))******
..À¯
sample%40email.tst and sleep(7.738)
acunetix_wvs_invalid_filename

See also:
* https://eventespresso.com/tag/acunetix_wvs_security_test/
* https://www.fail2ban.org/
* https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
* https://www.modsecurity.org/

Реклама

Анализ исходного кода open source

В последнее время начало довольно много появляться исследований кода причём с какими-то очень странными результатами и почти всегда просто потрясающего идиотизма выводами. Мне стало интересно откуда они черпают информацию и как анализируют код потому что у самого давно уже было много идей занятся подобными исследованиями.
И сразу же нашёл сайт GitHubArchive который создал один из известных разработчиков протокола HTTP2 Илья Григорик.
На этом сайте лежит вся публичная информация которую можно получить через API гитхаба с 2012го года. И по этой всей информации можно делать SQL запросы за вменяемое время.
Очень прикольный доклад где чуваки проанализировали и построили много интересных графиков: какой язык вызывает больше всего ненависти а какой больше фана, как взаимосвязаны между собой языки и какие нации в мире больше всего комитящие в Гитхаб. Много неожиданного

Как коммунизм помогает либертарианству

Збавный пример дилемы для хакеров с пролибертарианским мировозрением.
Хакер из WhisperSystems, создателей защищённого месенджера Signal (AppStore, GooglePlay)  который Сноуден советовал, написал программу для защищённой от прослушки радиосвязи USRP.
Даже добавил в описание программы анархисткий призыв «Dismantle the state, fight the police».

Лицензию для программы он выбрал GPLv3. Лично я в шутку называю эту лицензию «коммунистической» поскольку она отребует делиться своими доработками. Это делает эту лицензию неудобной для бизнесе: ты взял программу, потратил силы и доработал её и теперь хочешь заработать денег но вместо этого вынужден бесплатно делится своими наработками с конкурентами.
Я даже иногда я прошу авторов программ поменять лицензию на дружественную к бизнесу Apache Commons  v2 которая позволяет делать изменения и не публиковать их. Обычно это работает классно — ты берёшь код, подпиливаешь его под свои нужды, если видишь что часть можно законтрибьютить в оригинальный проект — отправляешь.  А то что нужно чисто тебе оставляешь у себя.

А теперь ситуация: чувак из компании которая делает электроные системы для государственой гебни попросил автора-анархиста поменять лицензию его программы на такую которая позволит им её использовать, чем изрядно посмешил всех.

 

Кстати  это  одна из причин почему большинство криптографических программ идут с лицензией GPL

 

[LinkSet] Compatibility

Theoretical part

 

Articles from Oracle

http://JEP 223: New Version-String Scheme

 

Six kinds of compatibility

Each Joda-Time relase has descriptions of incompatible changes categorized by six kinds:

Compatibility between 2.8 and 2.9
———————————
Build system — Yes
Binary compatible — Yes
Source compatible — Yes
Serialization compatible — Yes
Data compatible — Yes
— DateTimeZone data updated to version 2015g
Semantic compatible — Yes

When binary compatibilities are broken then Majour Version changed. For example v2.0 changelist

Explanation from  Stephen Colebourne, author of Joda-Time:

Build system

Not part of compatibility, just a fact about the build system in use

Example:  in v2.2

 - Ant build removed. Build only on Maven now.

Also, I think, it may be changing in artifact coordinates: groupId, artifactId or even changed repository. Maybe some changes in manifest, for example required dependencies. Or added OSGI manifest info. Maybe some classes was repackaged. Or old artifact was built with ANT and doesn’t contains a Maven’s pom.xml manifest like horrible Xerex library  and then was mavenized.

It also may be recompilation with optimizations or without debug information.

But I think that changing in packaging may be a separate kind of compatibility change.

Binary compatible and Source compatible

Whether the whole API is binary compatible or source compatible. See this document

Serialization compatible

Whether the serialization format is compatible with the previous version.

Data compatible

Whether the data, time-zone data in this case, has changed.

For example: some time zone was changed or even removed. If your database stores old timezone id and application trying to create a date object with this timezone id you’ll get an exception.

Semantic compatible

Whether there is some other semantic change. This is relevant when the classes and methods have not changed, but the meaning of a method has.

See section Serialization incompitables below

For example:  v2.0 has a lot of semantic changes

Previously, DateTimeZone.forID matched time zone names case-insensitively, now it is case-sensitive

I think it always hard to separate semantic changes when dealing with bugs. For example, JDK has bug when using null as key in Map

And that was a question is this a bug or feature.

Another one example, is Apache Commons Lang library. In version 3 the methods StringUtils.isAlpha(), isNumeric() and isAlphanumeric() now all return false when passed an empty String. Previously they returned true.

Semantic looks like correlated with behavior compatibility. When changed not signatures but they flow or contract.

Also it’s often situation when behavior was just undefined by contract. For example old class Vector doesn’t declare behavior about removing elements during iteration.  That’s why was created new class ArrayList and Vector was accepted as Superseded.
So, deprecation, as any changes in contract may be also some kind of semantic change.

 

Serialization incompitables

Compatible incopatibility

Also I think that it should be some kind of «reverse compatibility» that means a contract usage. For example, I saw an issue when subclass of HashMap doesn’t follow a contract. This change was compatible in all ways but all clients become incompatible. How to predict it, I don’t know.

Each of developer has experience when you can’t change something in your API because there is some clients that abuse it or implemented incorrectly. So it should have it’s own classification and developers should think about this kind of reverse incompatibility.

Complexity compatibility

I mean the complexity of program in wide sense: algorithm speed, it’s derivate and consumption of resources (memory, i/o, CPU, disk space), and even source code beautification and structural changes like refactoring. You know,  some algorithms may use more memory but use low processor.

For example, in some early versions of 64 bit JDK your application may fail with OutOfMemory error. This was change absolutely compatible in all categories mentioned before.

Another one sample is when new version of program is working more slowly than previous.

It may not change a contract and flow or anything else may it’s also may be changes that requires an attention.

 

Tool for checking API and BPI

Service provider interface (SPI)

https://stackoverflow.com/questions/2954372/difference-between-spi-and-api
https://en.wikipedia.org/wiki/Service_provider_interface

Also interesting

Как снять хату в Куёвке

Спросил недавно меня молодой программист как снять квартиру в Киеве, отрыл в заметках и сделаю для него постик.

Тема популярная так что гуглить \ спрашивать есть смысл. Ойтишнеги регулярно делятся опытом.

Ну и первое на чём вообще все зависают это в каком районе снять жильё.
Если ты из другого города переезжаешь — снимай хоть комнату, хоть что угодно лишь бы поближе к работе, подешевле и побыстрее.
Спустя месяц-два как закрепишься в городе уже будешь выбирать постоянное место.
Как и все другие сложные комплексные критерии тут всё очень и очень точно оцениваются деньгами. Поэтому смотри сразу на жёлто-зелёную зону (это спальные районы):
map_address

Карта с сайта http://rating.lun.ua/

Я считаю что стоит постараться снять на правом берегу и желательно на синей ветке метро. На синей ветке больше самых нужных станций: Контрактовая, Майдан, ПЛТ, Олимпийская. Самая паршивая это зелёная ветка. Она прям вся неудачная.
Если позволяют деньги и особо не хочется заморачиваться — снимайте на Оболоне.
Там есть где потусить (Дримтаун) есть где погулять (набережная), есть инфраструктура и в центр добираться недолго.
Короче там явно меньше шансов неудачно снять квартиру.

В красной зоне живут самые злобные небожители и прочие секретари обкомов и тебе такие соседи не нужны даже если ты миллионер.
В жёлтой зоне тоже жить почти невозможно, но это центр поэтому дороже. А вот в оранжевую зону стремись как только можешь. Там очень кайфово, поверь.

Далее, открываешь газету объявлений, например http://www.aviso.ua/kiev/ или OLX и обзваниваешь все все номера, не важно какой там написан район. Это всё агенства и у них много квартир в разных уголках города. Говоришь кто ты, что хочешь и пускай тебе ищут. Например: «Я программист, с девушкой, без детей и дивотных. Ищу однокомнатную на Оболоне. В ней должно быть: стиралка, шкаф, письменный стол, диван, микроволновка, кондиционер».

Агенства берут половину стоимости месячной аренды, т.е. если ты снял однушку за 2500 в месяц то агенство сдерёт с тебя 1250. Плюс ты должен заплатить ещё за последний месяц.
В итоге ты должен будешь выложить 2500 * 2 + 2500 / 2 = 6250 грн.

Ну и в соцсетях есть всякого рода группы где можно обойтись без риелторов:
http://vk.com/arenda_bez_posrednikov
https://www.facebook.com/groups/rieltory.zlo
https://www.facebook.com/groups/kyivrent
Но скорее всего ты там только время просрёшь.

Самое главное запомни: агенты так безбожно пиздят, как даже депутаты не умеют.
Не верь им вообще. С ними как и с другими разводилами и цыганскими гипнотизёршами разговор короткий: чем меньше их слушаешь тем меньше даёшь возможности манипулировать собой. Просто узнавай адрес, сразу смотри по карте и проси показать как можно быстрее.
Вот небольшой ИЧСХ правдивый словарь для расшифровки:

жилое состояние — нежилое состояние;
хорошее состояние — нехорошее состояние;
косметический ремонт — отсутствие ремонта;
ремонту 4 года — нет ремонта;
ремонт 90-х годов — ремонта не было уже тогда когда ты поступал в универ;
евроремонт — хоть какой-то ремонт;
отличная гостинка — оксюморон;
требует ремонта — не было ни одного ракурса, чтобы сделать пристойные фотки;
квартира готова к воплощению ваших самых смелых дизайнерских фантазий — или голые стены или там 50 лет жила бабушка, которую похоронили неделю назад;
квартира достойна вашего внимания — риэлтору срочно нужны деньги;
квартира делалась для себя — безвкусная дорогая квартира;
шикарная квартира — очень дорогая и очень безвкусная квартира;
квартира еще не сдавалась — квартиру никак не могут сдать;
отличная планировка — пол-квартиры кухня и коридоры;
удачная планировка — обычная планировка;
функциональная планировка — все натыкано одно на одном;
уютная квартира — маленькая квартира;
светлая, солнечная квартира — летом солнце шпарит целый день, в квартире 40 градусов;
видовая квартира — квартира выше 5-го этажа;
можно использовать под офис — квартира на первом этаже;
царский дом — очень старый дом;
сталинка — старый кирпичный дом;
спецпроект — старый многоэтажный панельный дом;
ведомственный дом — старый дом со старухами;
дом клубного типа — любой дом построенный начиная с 2000 года;
элитный дом — новый дом;
кухня-студио — снесли стену кухни;
дом введен в эксплуатацию — дом будут доделывать еще полгода;
в историческом центре — в окружении старых домов;
возле метро — 2 остановки до метро;
5 мин до метро — рассчитывалось по времени Усейна Болта на 100 метровке;
удобная транспортная развязка — дом у дороги;
развитая инфраструктура — есть продуктовый магазин;
приятные, отзывчивые соседи — старые бабки;
элитные соседи — нувориши, быки, силиконовые телки и прочая нечисть;
облагороженная территория — двор закатан в асфальт, кустики и деревца;
вид на Покровский монастырь — из окна кухни, если стать вот тут и наклониться, видно пол левого купола;
рядом 2 озера — комары и вонь;
парковка во дворе — нет парковки;
автономное отопление — бойлер висит над унитазом;
во дворе детская площадка — во дворе когда-то была детская площадка;
квартира в классическом стиле — дубовые комоды и полосатые обои;
дизайнерский ремонт — оранжевые стены и синяя мебель.

в квартире есть:
мебель — ненужная мебель;
дорогая итальянская мебель — очень дорогая безвкусная мебель;
диван — поломанный диван;
холодильник — холодильник с дачи;
стиральная машинка — старая стиральная машинка;
шкаф — бабушкин шкаф;
новая сантехника — самый дешевый унитаз;
венецианская штукатурка — WTF???;
торг — скидываем 20%;
хороший торг — цена завышена в 2 раза;
цену снижено — стоимость завышено в 1,5 раза.

Как снять квартиру самостоятельно.
Сегодня ситуацию на рынке аренды жилой недвижимости можно назвать штормом. Бюджетные варианты выстреливают редко, а если и выстреливают. То не успевают «доходить» до риэлторских компаний. Да, и риэлторы стараются не брать бюджетные квартиры в работу, беготни много, расстояния большие ( уходит много времени на перемещения), а можно банально не успеть приехать на квартиру. Сегодня арендодатель устраивает что-то наподобие аукциона. Проводить просмотры начинает уже за месяц до предполагаемого освобождения квартиры ,а арендаторы жалуются, что арендаторы начинают поднимать цену, даже если живешь достаточно долго. При этом снять другую квартиру практически нереально за эту же цену. Несмотря на то, что я являюсь управляющим партнером риэлторской компании «КДУ-риэлти групп», и сегодня в нашей компании работает много переселенцев, которым тоже нужно зарабатывать на хлеб, я решила написать ПАМЯТКУ для вынужденных переселенцев, как самому снять квартиру в аренду и получить минимум седых волос.
1. Запаситесь терпением и интернетом, а также напишите объявление «Сниму для себя квартиру» и распечатайте его в ХХХХ эксземплярах.
2. Поклейте объявление (желательно, после 11 часов дня, когда уже пройдут дворники и оборвут все объявления) в интересующем Вас районе, а лучше во всей ветке метро. Если работа покажется Вам слишком трудоемкой, можно нанять расклейщиков за деньги. Они работают по районам, их работа стоит от 100 грн, и их контакты есть в интернете.
3. Пройдите по ссылке http://top.bigmir.net/show/realty/ и выберите город, в котором ищете квартиру. Вам придется разобраться в куче информационного мусора и откровенных фейков, которые в огромном количестве представлены на сайтах по аренде недвижимости. Справедливости ради надо сказать, что в любом городе, также и в Киеве, есть честные и порядочные посредники, но они работают, в основном, в ценовом сегменте выше среднего, в бюджетном же можно «нарваться» как на мошенников, так и на просто неадекватов или лгунов. Много общайтесь по телефону с целью понять, имеете ли дело с аккредитованным риэлтором, требуйте (просите) назвать компанию, от которой он работает.
4. Поставьте фильтры на сайтах, где ищете квартиру «частное» и «юез комиссии». И хотя, в большинстве случаев это не спасает, зерна от плевел при кропотливом отборе найти можно. Что ж, придется поработать Золушкой. Вопросы ставьте такие
-Сколько лет ремонту?
-Соответствуют ли фотогорафии на сайте сегодняшнему состоянию квартиры и когда были сделаны?
-Можно ли посмотреть квартиру прямо сейчас и сколько человек уже в очереди записано? С какого времени начинаются просмотры? И приезжайте на час-два раньше, если хотите успеть снять квартиру.
5. Разделитесь и езжайте на просмотры в разные места и на разные квартиры, чтобы успеть снять бюджетную квартиру. Имейте при себе сразу деньги в сумме хотя бы на одну месячную плату в качестве залога;
6. Погуглите телефон собственника, в 90% случаев, поисковик покажет, что еще продавал собственник, или собственник ли это.
7. Самое важное:
-не оплачивайте услуги риэлтора ДО просмотра квартиры. Все, кто просит оплатить 100-250-500 грн до просмотров — мошенники. Не ведитесь на низите цены, это «замануха»; Настоящий риэлтор получает комиссию только при подписании договора;
-проверяйте правоустанавливающие документы собственника на квартиру, прописку, поговорите с соседями, знают ли они хозяина;
-не платите деньги хозяину без договора, скачайте договор аренды (образцы есть в интернете) и подкорректируйте его в соответствии со своими требованиями;
-внимательно изучите и согласуйте договор, чтобы через месяц не пришлось выезжать, если хозяин вздумает поднять цену;
-подписывайте приложение к договору, в котором указано имущество владельца, а также сумма денег, которую Вы платите ему за аренду.
Повесьте ПАМЯТКУ себе на стену и следуйте ей, когда возникнет необходимость в аренде квартир.
И компания КДУ-риэлти групп и я, Маленкова Елена, желаем Вам удачи!

(с) отсюда

Похожих рекомендаций много например тоже полезная Как быстро и безболезненно снять квартиру в Москве во многом пригодна и к Киеву.

По поводу того на что обращать внимание при просмотре квартиры то тут просто бездонная тема: скрипучий паркет, ржавые батареи которые текут, туалеты которые не смывают твои успехи итд. Некоторые даже советуют смотреть новое жильё зимой с градусником.

От себя добавлю несколько важных пунктов:

  1. Всем хатосдавателям ну очень как интересно что вы будете делать в хате. Они сразу представляют как ты их нежную квартирку всю засрёшь и как они будут отдраивать. Это неизбежно. Меня даже прямым текстом спрашивали не буду ли я устраивать оргий. Расслабь их, я например пошутил что оргии отличная идея! Твоя главная задача во время знакомства с ними определить готовы ли они с этим смириться. Это можно определить по фразам типа «ну в квартире не курите, на балконе можете»
  2. Меняй замки сразу по заезду, это обязательное условие. Когда договариваешься с хозяином говори что у тебя будут хранится документы и ноутбук а сам ты ездишь по командировкам. Во первых эти ключи были у бывших жильцов а то и вовсе квартира могла посуточно сдаваться, обнесут квартиру. Хозяин может согласится но попросить себе ключи на случай потопа. Скажи что дашь телефон своей подруги которая рядом живёт, а хозяина и его семью ты не знаешь, и прва рисковать документами не имеешь. Реальный случай когда сын хозяина, алкаш, украл ключи и обнёс квартирантов. Во вторых, ты не поверишь, но хозяйка квартиры, особенно если это бабка может тайком приходить и даже например подкладывать обратно скатерть которую ты убрал со стола.
  3. Остюда вывод: никогда, ни при каких обстоятельствах не снимай квартиру у пенсионеров. Какими-бы они адекватными не выглядели. Не знаю ни одного случая когда это бы не заканчивалось каким то угарным трешем.
  4. Также, если есть консьержка — с ней по любому будут конфликты. Это неизбежно, как неизбежны проблемы с ментами, учителями и прочим генным мусором который получил кусочек власти, такая у них профессиональная деформация.
  5. Помни: Соседи тебя ненавидят и на этой почве кстати подружатся с консьержкой.
  6. Я бы подитожил так: для молодого ойтшнега самое главное в квартире — адекватный хозяин, вид из окна и близость к метро.

Если не знаешь центра на вот тебе экскурсия от Сашечки-няшечки

Ну и если ты молод и только переехал в Киев ещё не зная города то мне в своё время очень понравились ночные туры по городу которые делали студенты КПИшники для своих первокурсников.
Киев, особенно Верхний старый город (от Большой Житомирской до Бульвара Шевченко ) ночью кайфовый. Можешь поискать что нибудь похожее.

По себе могу точно сказать — место очень и очень красит человека.

[Linkset] Несколько статей про карьеру в IT