Snippet для сброса пароля в Opencart

Изменения пароля в Opencart с рандомной солью и без использования морально устаревшего MD5 в хэшировании.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$pwd  = 'test'; // change to your password

function rand_func($len, $range){
    $pwd = ""; $size =  count($range)-1;
    for($i=1; $i<=$len; $i++){
        $pwd .= $range[mt_rand(0, $size)];
    }
    return $pwd;
}

$alphnum = array_merge( range('A', 'Z'), range('a', 'z'), range(0, 9));
$salt = rand_func(9, $alphnum);



$hash = SHA1($salt . SHA1($salt . SHA1($pwd)));
echo $pwd,";",$hash,";",$salt;

Новый релиз сканера уязвимостей RIPS 0.4

Год назад делал уже заметку насчет этого сканера узких мест в PHP приложениях.
Опишу только основные «вкусности» которые появились в новой версии.
Первое на что обратил внимание — это появление графического представления взаимосвязей сканируемых файлов (инклуды, функции).

Также скрипт пытается анализироваться самостоятельно возможные места с SQL-инъекциями (правда пока эта функция в стадии глубокой альфы).
Появился вывод статистики после сканирования.

Rips все еще буксует на крупных проектах которые в основной массе построены на ООП, обещают пофиксить в следующих версиях.
Скачать актуальную версию сканера RIPS. Continue reading «Новый релиз сканера уязвимостей RIPS 0.4»

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 'Киев'

Xbtit — бонусы за комментарии

Дописав немного скрипт, получим начисление бонусного аплоуда за первые 5 комментариев, в размере (для примера) 50 Мб.
Открываем скрипт comment.php, находим строку (в районе 70-71 строки)

1
if ($_POST["confirm"]==$language["FRM_CONFIRM"]) {

Continue reading «Xbtit — бонусы за комментарии»

VamShop Drop Down Menu

Нужно было сделать интернет магазин, за основу выбрал CMS VamShop. Сверстал основу для шаблона, осталось одна нерешенная проблема, вывод выпадающего меню. Поиски готовых решений не увенчались успехом, поэтому решил переделать сам. Continue reading «VamShop Drop Down Menu»