Ad blocker detected: Our website is made possible by displaying online advertisements to our visitors. Please consider supporting us by disabling your ad blocker on our website.
C++ JAVA
-
popeto
- Нов

- Posts: 2
- Joined: Tue Jan 21, 2020 7:13 am
Post
by popeto » Tue Jan 21, 2020 7:16 am
На сайта е направена функция, с помощта на която админ панелът е защитен. (Пренасочване на потребителя, ако правата са по-малко от изискваното).
Тази функция е заобиколена по някакъв начин. Кажете ми решенията.
Code: Select all
function rights($rights){
global $http;
global $user;
if($user['rights'] < $rights) {
header('Location: '.$http.$_SERVER['SERVER_NAME']); exit;
}}
Code: Select all
$user_id = isset($_COOKIE['uid']) ? fl($_COOKIE['uid']) : '';
$password = isset($_COOKIE['password']) ? fl($_COOKIE['password']) : '';
if($user_id && $password) {
$user = $base -> query('SELECT * FROM `users` WHERE `id` = "'.$user_id.'" AND `password` = "'.$password.'"') -> fetch_assoc();
} else {$user = false;}
-
Revelation
- Web-tourist

- Posts: 921
- Joined: Sun Mar 24, 2013 1:23 pm
-
Answers: 65
Post
by Revelation » Tue Jan 21, 2020 7:58 am
popeto wrote: ↑Tue Jan 21, 2020 7:16 am
На сайта е направена функция, с помощта на която админ панелът е защитен. (Пренасочване на потребителя, ако правата са по-малко от изискваното).
Тази функция е заобиколена по някакъв начин. Кажете ми решенията.
Code: Select all
function rights($rights){
global $http;
global $user;
if($user['rights'] < $rights) {
header('Location: '.$http.$_SERVER['SERVER_NAME']); exit;
}}
Code: Select all
$user_id = isset($_COOKIE['uid']) ? fl($_COOKIE['uid']) : '';
$password = isset($_COOKIE['password']) ? fl($_COOKIE['password']) : '';
if($user_id && $password) {
$user = $base -> query('SELECT * FROM `users` WHERE `id` = "'.$user_id.'" AND `password` = "'.$password.'"') -> fetch_assoc();
} else {$user = false;}
За съд си. Не те ли е срам да си държиш паролите в бисквитка. Най-добре спирай сайта, че ако някой забележи ще те съди и то здраво.
-
Ticketa
- Турист

- Posts: 594
- Joined: Mon Feb 27, 2012 1:54 pm
-
Answers: 24
- Location: in /root
-
Contact:
Post
by Ticketa » Tue Jan 21, 2020 9:22 am
@Revelation, те повечето "програмисти" използват този метод с цел "опция "запомни ме"" за да не се вписват всеки път.(на теб ти е ясно за тези практики)
Popeto, какви данни запазваш в $right? Как става вписването на потребителя т.е. какэв формуляр ползваш? right ползваш ли го в бисквитките? Как филтрираш данните?
-
muti
- Турист

- Posts: 278
- Joined: Thu Nov 14, 2019 7:03 am
-
Answers: 2
Post
by muti » Tue Jan 21, 2020 11:03 am
Може и да има инжекциика
Code: Select all
'SELECT * FROM `users` WHERE `id` = "'.$user_id.'"
Как трябва да работи това, ако $ user = false?
Най-вероятно поради грешка това условие просто се приема като невярно и чекът ви минава.
-
popeto
- Нов

- Posts: 2
- Joined: Tue Jan 21, 2020 7:13 am
Post
by popeto » Tue Jan 21, 2020 2:09 pm
Аз ако разбирах нещата щях сам да го направя.
Явно ще трябва да си платя да ми го направят.
-
uphero
- Потребител

- Posts: 782
- Joined: Mon Feb 20, 2012 12:26 pm
-
Answers: 34
- Location: Казанлък
-
Contact:
Post
by uphero » Tue Jan 21, 2020 3:40 pm
как кълват шараните. това е админа.
Вече 2 тема пуска за да "раздвижи" форума и като гледам му се получава

-
muti
- Турист

- Posts: 278
- Joined: Thu Nov 14, 2019 7:03 am
-
Answers: 2
Post
by muti » Tue Jan 21, 2020 4:36 pm
uphero wrote: ↑Tue Jan 21, 2020 3:40 pm
как кълват шараните. това е админа.
Вече 2 тема пуска за да "раздвижи" форума и като гледам му се получава
Ти си роден за трол.
-
dakata__92
- Web-tourist

- Posts: 3357
- Joined: Tue Aug 02, 2011 7:24 pm
-
Answers: 128
Post
by dakata__92 » Fri Jan 24, 2020 4:11 pm
popeto wrote: ↑Tue Jan 21, 2020 7:16 am
На сайта е направена функция, с помощта на която админ панелът е защитен. (Пренасочване на потребителя, ако правата са по-малко от изискваното).
Тази функция е заобиколена по някакъв начин. Кажете ми решенията.
Code: Select all
function rights($rights){
global $http;
global $user;
if($user['rights'] < $rights) {
header('Location: '.$http.$_SERVER['SERVER_NAME']); exit;
}}
Code: Select all
$user_id = isset($_COOKIE['uid']) ? fl($_COOKIE['uid']) : '';
$password = isset($_COOKIE['password']) ? fl($_COOKIE['password']) : '';
if($user_id && $password) {
$user = $base -> query('SELECT * FROM `users` WHERE `id` = "'.$user_id.'" AND `password` = "'.$password.'"') -> fetch_assoc();
} else {$user = false;}
Този код е нормално да бъде "разбит" и да се получат допълнителни права от някой, който ги няма. Колегите ти споменаха вече за инжекцията или през бисквитките или, или ... Та решението е пренаписване на проверките ти за аутентикация на потребителите. Ако не си чувал за SQLi, прочети веднага за този вид атака. Дай повечко код и може да се пробваме да ти сглобим нещо.