RIPS — сканер уязвимостей в PHP приложениях

RIPS-сканер уязвимостей

Сканер предназначен для отслеживания «узких» мест, статичного кода PHP, которые могут быть потенциально опасны,
и использованы для взлома приложения.
RIPS — аббревиатура от pRocess of Identifying Potential Security, что в вольном переводе означает «процесс выявления потенциальной бреши».

Основные возможности сканера RIPS:
— обнаружения XSS, SQL-инъекций, локального и удаленного инклюдинга файлов
— 5 уровней вывода отладочной информации при сканировании
— подсветка уязвимого участка кода
— создание эксплоитов в пару кликов (на основе CURL)
— семь различных цветовых тем для подсветки синтаксиса

Скачать сканер можно здесь -> http://sourceforge.net/projects/rips-scanner/

UPD: описание некоторых обновление в новой версии сканера уязвимостей в php приложениях

API ПриватБанка: Получаем список банкоматов

Написал небольшую функция для получения списка банкоматов ПриватБанка в конкретном городе. Делаем запрос на получение XML списка, который содержит в себе название объекта и его местоположение (улицу), потом парсим это дело и загоняем все в массив для дальнейших каких-то действий(каких зависит от ваших потребностей).

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
<?php
// get_atm.php //
function get_atm($city) {
   
        $city = urlencode($city);
        $url = "https://privat24.privatbank.ua/p24/accountorder?oper=prp&atm&address=&city=$city&PUREXML=";
       
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_TIMEOUT, 20);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);       
        $rez = curl_exec($ch);
        curl_close($ch);
       
        $dom = new DomDocument('1.0','UTF-8');
        $dom->loadXML($rez);
        $xpath = new DOMXPath($dom);
       
        $result = $xpath->query('//atm');
       
        $rezl = array();
       
        for ($i=0;$i<$result->length;$i++) {
            $atm = $result->item($i);
            $atm_mas = array();
            $atm_mas['name'] = $atm->getAttribute('name_RU');
            $atm_mas['address'] = $atm->getAttribute('address_RU');
            $rezl[] = $atm_mas;
        }
       
        return $rezl;      
}
print_r(get_atm($argv['1']));
?>

Писал под консольный вариант, поэтому чтоб запустить пример запускаем с параметром, а именно так:

1
php get_atm.php 'Киев'

Комплексные числа: основные мат. действие на C(Си)

Другу дали задание написать простенькую программку на любом языке программирования, которая будет делать основные математические действия с комплексными числами (сложение, вычитание, умножение и деление двух чисел), т.к. ему немного было лень писать, то попросил меня, благо делов 5 минут.
Для этого создадим первый файл (complex.h) который будет содержать объявления нового типа данных и его структуру.

1
2
3
4
typedef struct
    {
     double a,b;
    } complex_t;

Вот такой вот простенький хидер.
Теперь создадим основной файл и назовем его complex.c, в который поместим описание функций основным математических действий, над комплексными числами, в коде даны комментарии, так что тут больше описывать нечего.

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
#include <stdio.h>
#include "complex.h" // заголовочный файл для работы с к.ч

complex_t add(complex_t x, complex_t y) // ф-ция сложения к.ч.
 {
     complex_t t;
     t.a = x.a + y.a;
     t.b = x.b + y.b;
     return t;
 }
 
complex_t sub(complex_t x, complex_t y) // ф-ция вычитания к.ч.
 {
     complex_t t;
     t.a = x.a - y.a;
     t.b = x.b - y.b;
     return t;
 }
 
 complex_t mul(complex_t x, complex_t y) // ф-ция умножения к.ч.
 {
     complex_t t;
     t.a = x.a * y.a - x.b * y.b;
     t.b = x.a * y.b + x.b * y.a;
     return t;
 }
 
 complex_t div(complex_t x, complex_t y) // ф-ция деления к.ч.
 {
     complex_t t;
     t.a = (x.a * y.a + x.b * y.b)/(y.a*y.a+y.b*y.b);
     t.b = (x.a * y.b - x.b * y.a)/(y.a*y.a+y.b*y.b);
     return t;
 }

 
int main()
 {
     double a1,b1,a2,b2;
     printf ("Введите 4 числа: \n");
     while(scanf ("%lf%lf%lf%lf", &a1,&b1,&a2,&b2) == 4) {
     complex_t x = {a1,b1}; // первое к.ч.
     complex_t y = {a2,b2}; // второе к.ч.
     complex_t a = add(x,y); // сумма к.ч.
     complex_t s = sub(x,y); // вычитание к.ч.
     complex_t m = mul(x,y); // умножение к.ч.
     complex_t d = div(x,y); // деление к.ч.
     printf ("a = (%5.2lf, %5.2lfi)\n", a.a, a.b ); // результат суммирования
     printf ("s = (%5.2lf, %5.2lfi)\n", s.a, s.b ); // результат вычитания
     printf ("m = (%5.2lf, %5.2lfi)\n", m.a, m.b ); // результат умножения
     printf ("d = (%5.2lf, %5.2lfi)\n", d.a, d.b ); // результат деления
        return 0;  
     }
     return 0;
 }

Код простой, но может пригодиться какому-то ленивому студенту-заочнику, потому что на дневном такое должны знать как моряк азбуку Морзе 🙂 .
Удачи в программирование.

Ubuntu 10.04 на ноутбуке (Die Hard Mode OFF)

Имея ноут DELL Vostro 1015 с Ubuntu на борту, стал замечать треск жесткого диска (hard driver) при работе от батареи, после обновления на 10.04.

Вызвано тем что был включен мод контроля жесткого диска в режиме работы от аккумулятора.

Отключаем эту фичу совсем, потому что убьет жесткий диск намного быстрей.

Открываем файлик в любом текстовом редакторе под рутом /etc/laptop-mode/laptop-mode.conf, находим следующую строку

ENABLE_LAPTOP_MODE_ON_BATTERY и присваиваем ей значение равное 0 (нулю).

В итоге должна иметь следующий вид:

1
ENABLE_LAPTOP_MODE_ON_BATTERY=0