Сегодня я заметил, что когда я иду на свой сайт, он показывает alert(1);
и перенаправляет всех, кто идет к нему, так что некоторые другие сайты.
Я знал, что это был эксплойт JavaScript, поэтому я вынул биты кода за раз и пришел к выводу, что нижний бит кода является тем, что вызывает уязвимость.
var all_chats = setInterval(function() {
$.ajax({
url: './requests/chat.php',
type: 'POST',
success: function(chats) {
$('.chat').html(chats);
}
});
}, 1000);
Файл chat.php это:
<?php
require '../includes/functions.php';
?>
<table width='100%' border='0' cellspacing='0' cellpadding='0' class='resultsTable'>
<thead>
<tr>
<td>NAME</td>
<td>TIME</td>
<td>CONVERSATION</td>
</tr>
</thead>
<tbody>
<?php echo getChats(); ?>
</tbody>
</table>
PHP getChats() функция:
function getChats() {
global $PDO;
$stm = $PDO->prepare("SELECT * FROM `chats` ORDER BY `cid` DESC LIMIT 100");
$stm->execute();
while($Try = $stm->fetchAll()) {
foreach($Try as $Array) {
if(!isset($row_num)) $row_num = 1;
$row_class = (++$row_num % 2) ? '' : 'greyRow';
echo '<tr class="' . $row_class . '">';
echo '<td>' . $Array['uid'] . '</td>';
echo '<td>' . time_ago(date('Y-m-d H:i:s', $Array['time'])) . '</td>';
echo '<td>' . $Array['message'] . '</td>';
echo '</tr>';
}
}
}
Какой вопрос в точку? – jeroen
Уязвимость отсутствует в размещенном коде, так как вы не отправляете какие-либо данные на сервер ... – Joren
Что возвращает 'getChats'? Побег. Или лучше, не возвращайте весь HTML-код с AJAX - возвращайте только данные и используйте '.text' вместо' .html' –