PDA

Просмотр полной версии : обход фильтраци для xss?


s0llo
30.07.2010, 23:52
народ прошу помочь с xss...

как можно вывести алерт при таком php коде?(guestbook)


PHP:
'.mysql_error() .'');



}



?>

как быть с этим?

==============================================

$message = trim(strip_tags(addslashes($message)));

$message = htmlspecialchars($message);

brain[pillow]
31.07.2010, 18:29
Никак.

s0llo
31.07.2010, 20:13
"]
brain[pillow] said:
Никак.


этот код есть в тесте по xss (уровень теста 2) всего 3!

так что проблема решимая!!!

тест dvwa 1.6

s0llo
31.07.2010, 20:34
Nightmarе said:
имя не фильтруется htmlspecialchars, потому в нике думаю можно писать HTML код.
А так конечно же шаманство с кодировками.


ага, это так

но в


PHP:
$name=trim(strip_tags(addslashes($name)));

тут все пробелы и скрипты удаляються...

как это можно обойти?

и еще:

в переменную $name разрешено всего 10 символов!

|qbz|
31.07.2010, 20:40
попробуй 'alert(1)

s0llo
31.07.2010, 20:47
|qbz| said:
попробуй 'alert(1)


в $message не выйдет... там htmspecialchars мешает!

в $name я уже описал!!!

_iks_
01.08.2010, 10:32
s0llo said:
и еще:
в переменную $name разрешено всего 10 символов!


В том коде, что ты привел, я не вижу, что бы он обрезался. Если ограничение стоит на форму, то редактор исходников страницы тебе в помощь. Правда, возможности внедрить код я не наблюдаю всё равно.

P.S.

dvwa пройти невозможно, на высоких уровнях имеются непроходимые задания, и судя по всему это одно из них.

[Feldmarschall]
16.08.2010, 19:12
http://raz0r.name/vulnerabilities/sql-inekcii-svyazannye-s-multibajtovymi-kodirovkami-i-addslashes/

Unknown
16.08.2010, 22:28
"]
[Feldmarschall] said:
http://raz0r.name/vulnerabilities/sql-inekcii-svyazannye-s-multibajtovymi-kodirovkami-i-addslashes/


Ок, есть скрипт.


PHP:
mysql_connect('localhost','root','');

mysql_select_db('bf');

if(isset($_GET['btnSign']))

{



$message=trim($_GET['mtxMessage']);

$name=trim($_GET['txtName']);



// Sanitize message input

$message=trim(strip_tags(addslashes($message)));

$message=mysql_real_escape_string($message);

$message=htmlspecialchars($message);



// Sanitize name input

$name=trim(strip_tags(addslashes($name)));

$name=mysql_real_escape_string($name);



$query="INSERT INTO guestbook (comment,name) VALUES ( '$message','$name');";

print$query;

mysql_query($query) or die(mysql_error());



}





Удачи.