Category: Releases

  • New tool: tx-coverage

    New tool: tx-coverage

    Finished a weekend project that may be useful for onchain vulnerability analysis of deployed smart contracts:

    https://github.com/Decurity/tx-coverage

    tx-coverage allows to reveal unused code of live smart contracts by collecting coverage from historical transactions.

    With it you can discover code that was never executed onchain and may contain potential bugs.

  • contract-diff: find bugs in smart contract forks

    contract-diff: find bugs in smart contract forks

    There has been plenty of hacks when a smart contract was forked and some things were changed without full understanding of the code.

    To help auditors I have built https://contract-diff.xyz

    This is how it works 🧵

    For popular contracts like OpenZeppelin, Uniswap, Sushiswap, etc two kinds of hashes were computed: md5 hashsums & simhashes. Using hashsums we can find exact matches of contract sources. With simhashes it is possible to find contracts that are very similar to each other.

    EtherScan does not verify the integrity of the included libs. With https://contract-diff.xyz you can quickly figure out which versions of libs are actually used. If a hashsum is not found in the database, but there is a contract with a similar simhash you will see a diff view.

    One example is Uranium hack which was a fork of Uniswap v2:

    https://twitter.com/RektHQ/status/1387399124090294276

    Here you can see that there were mostly renamings but also an important change to the logic which led to $57,000,000 loss:

    https://www.contract-diff.xyz/?address=0xa08c4571b395f81fbd3755d44eaf9a25c9399a4a&chain=1

    I am planning to add more chains (currently only Ethereum mainnet & BSC) as well as support more contract flatenners (they are really weird). Will appreciate any feedback. Cheers!

    Originally tweeted by Raz0r (@theRaz0r) on 16 February 2022.

  • Adobe Experience Manager Vulnerability Scanner

    Adobe Experience Manager is content management system that is based on Apache Sling – a framework for RESTful web-applications based on an extensible content tree. Apache Sling in its turn is basically a REST API for Apache Jackrabbit, which is an implementation of Content Repository API for Java (JCR). The main principle of JCR is that everything is a resource. It means that any object in JCR repository can be retrieved in multiple ways depending on requested selector. E.g. if you make a request to /index.html you will get an HTML page, but if you replace .html with a .json selector you can get metadata of this resource:

    {
      "jcr:primaryType":"cq:Page",
      "jcr:createdBy":"transport-user",
      "jcr:created":"Mon Jun 13 2018 22:09:46 GMT+0000"
    }

    AEM installations typically have lots of hidden gems (even password hashes) if selectors are improperly configured. aemscan helps to discover such weaknesses and much more:

    • Default credentials bruteforce
    • Info leak via default error page
    • WebDav support check (WebDav OSGI XXE CVE-2015-1833)
    • Version detection
    • Useful paths scanner

    You can grab the source code from GitHub: https://github.com/Raz0r/aemscan. Pull requests are welcome!

  • Radamsa Fuzzer Extension for Burp Suite

    Radamsa is a cool tool that combines a set of fuzzers which generate data based on input string. You can feed it a PDF file for example and Radamsa will produce a bunch of PDF-alike documents that are fuzzed in all imaginable forms. Just see this:

    $ echo "test123" | radamsa -n 10
    ttestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestest1
    tes.--1
    --test170141183460469231731687303715884105728
    test4294129
    test1
    test65660
    340282366920938463463374607431768211443t0
    -0
    test1710618
    test-6

    Perfect for looking for all kinds of buffer overflows. And this tool can be especially useful combined with Burp Suite, that is why here is quick and dirty extension that enables you to use Radamsa to generate Burp Suite’s Intruder payloads:
    Снимок экрана от 2013-06-24 21:25:01
    Grab the code here: https://github.com/Raz0r/burp-radamsa

  • Сканнер уязвимостей CMS Drupal

    drupalscan

    Не секрет, что идеальных сканнеров уязвимостей не существует, особенно если такой сканнер стремится быть универсальным. Как правило, чем выше поле действия сканнера, тем ниже скорость работы, а также процент его эффективности. Эту идею подтверждает проект OWASP Joomla Vulnerability Scanner, который нацелен на самую популярную CMS. Испытав сканнер, я остался очень доволен результатами и решил написать нечто подобное для другого не менее известного продукта – CMS Drupal.

    Drupal заслуженно является одной из самых безопасных CMS. Поддержка безопасности CMS в отличие от, к примеру, WordPress находится на более высоком уровне благодаря активному тестированию CMS специальной группой Drupal Security Team и своевременному выпуску патчей и апдейтов, что подтверждается доверием пользователей. Тем не менее, как и у любого популярного веб-приложения, у Drupal есть свои уязвимости, что и послужило основнанием для создания простого сканнера.

    (more…)

  • Мега релиз: самый короткий шелл =)

    Представляю новый релиз – самый короткий в мире веб-шелл на PHP (всего 10 байт), серьезно не воспринимать! =) Итак, та-дам:

    <?=@`$c`?>

    Если код показался вам непонятным, то сейчас я постараюсь доступно его объяснить. Прежде всего вместо стандартного <?php … ?> используется <?= … ?>, что эквивалентно <? echo … ?>; требуется включенная опция short_open_tag в php.ini. Для подавления ошибок (так как переменная не инициализирована) используется известный прием: перед выражением ставим @. Собственно выполнение команд реализовано с помощью обратных кавычек (backticks) – довольно хитрый прием, о котором знает далеко не каждый. Например, внедрив строку echo @`$c` в другой скрипт, мы имеем незаметный бэкдор, который очень трудно найти.
    Плюсы моего шелла: размер!
    Минусы: нужны short_open_tag и register_globals

  • Функция для обработки входящих данных

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

    <?php
    $var = import_var('var','G','INT',3);
    ?>

    Для получения одновременно нескольких однотипных переменных вызов функции немного отличается:

    <?php
    extract(import_var(array('var1','var2','var3'),'G','INT',3));
    echo $var1;
    echo $var2;
    echo $var3;
    ?>

    (more…)

  • PHP Bug Scanner

    Опубликовано в журнале “Хакер”
    #108, X-Tools

    PHP Bug Scanner – это программа, предназначенная для того, чтобы сделать процесс поиска уязвимостей в PHP-приложениях более удобным и быстрым. Она основана на сканировании различных функций и переменных в PHP-скриптах, которые могут привести к возможным уязвимостям.

    Возможности:

    • возможность сканирования как множества файлов, так и одного скрипта
    • система пресетов: вы можете добавлять новые функции, изменять или удалять их
    • возможность загрузки и сохранения своих пресетов
    • 7 специальных пресетов, сгруппированных по категориям:
      1. code execution
      2. command execution
      3. directory traversal
      4. globals overwrite
      5. include
      6. sql injection
      7. miscellaneous
    • сохранение и загрузка результатов
    • сортировка результата по имени скрипта, номеру строки или функции, которая была найдена
    • быстрый обзор скрипта с подсветкой кода и пронумерованными строками
    • вычисление хэшей Zend_hash_del_key_or_index
    • String 2 chr() converter – представление строки в виде ASCII-символов в соответствии с синтаксисом PHP

    Написан на PHP & WinBinder, скомпилировано bamcompile
    Версия 1.0

    Скачать

  • SQLBruter v0.2

    Опубликовано в журнале “Хакер”
    #104, X-Tools

    Назначение

    SQLBruter – многофункциональный скрипт, реализующий перебор различными методами при атаках типа SQL Injection. При запросах с использованием UNION очень часто требуется определить количество выбираемых полей, названия таблиц и стобцов. Все это можно сделать с помощью моего скрипта. Кроме этого, SQLBruter осуществляет посимвольный перебор, т.е. с использованием конструкций типа “AND ascii(lower(substring([query],1,1))) > 97” и т.д. Важно сказать, что вам не придется указывать позицию символа – нужно лишь указать запрос и строку, возвращенную сервером, и в итоге вы получите полное содержание поля (например с хешем). Также в скрипте предусмотрено выведение результатов в файл и использование прокси.
    (more…)