ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

26.06.2009, 18:42
|
|
Познающий
Регистрация: 14.01.2009
Сообщений: 93
Провел на форуме: 244235
Репутация:
39
|
|
24:
Код:
ob_start();
$time1 = microtime(1);
for ($j = 0; $j < 10000; $j++) {
for($i=0;$i<10;$i++)
{ echo '1php '; }
}
$a = (microtime(1)-$time1);
$time1 = microtime(1);
for ($j = 0; $j < 10000; $j++) {
while($i<10) {
echo 'w1';
$i +=1;
}
}
$b = (microtime(1)-$time1);
ob_end_clean();
echo "A: $a, B: $b";
A: 0.0332159996033, B: 0.00275301933289
второй вариант быстрее
25:
хз, может расширение php4 попробовать, или взять левое расширение и добавить .htaccess, в котором оно будет прописано для пхп
26:
Код:
$a = 10;
$b = 515;
$c = 0.515;
$d = $b<=$a&&$a==$c||$b>$c?0:1;
echo $d;
$d = 0&&0 || 1?0:1; у || приоритет меньше, чем у &&
$d = 0 || 0
$d = 0
|
|
|

24.10.2009, 00:23
|
|
Новичок
Регистрация: 21.10.2009
Сообщений: 1
Провел на форуме: 20703
Репутация:
0
|
|
Решение задания 001
<?
$str="11111 222222";
preg_match("#(.*) (.*)#is",$str,$m);
echo "$m[2] $m[1]";
?>
Последний раз редактировалось magnat_8; 24.10.2009 в 00:33..
|
|
|

07.11.2009, 18:37
|
|
Reservists Of Antichat - Level 6
Регистрация: 08.04.2008
Сообщений: 286
Провел на форуме: 2375131
Репутация:
1695
|
|
Вот задачка от меня, найдите уязвимость в коде.
Структура БД:
CREATE TABLE stats (id int unsigned not null PRIMARY KEY AUTO_INCREMENT, useragent varchar(255), ip varchar(16), referer varchar(255));
PHP код:
<?php
mysql_connect('localhost', 'root', 'secretpassword');
mysql_select_db('antichat');
//Обработка переменных
function Sanitize($data_to_sanitize) {
$data_to_sanitize = addslashes($data_to_sanitize);
$data_to_sanitize = htmlspecialchars($data_to_sanitize);
return $data_to_sanitize;
}
function Sanitize_Array($value) {
$value = is_array($value) ? array_map('Sanitize_Array', $value) : Sanitize($value);
return $value;
}
$_SERVER = array_map('Sanitize_Array', $_SERVER);
$sql = "INSERT INTO stats (ip, useragent, referer)
VALUES ('".substr($_SERVER['REMOTE_ADDR'],0,16)."', '".substr($_SERVER['HTTP_USER_AGENT'],0,255)."', '".substr($_SERVER['HTTP_REFERER'],0,255)."')";
mysql_query($sql);
mysql_close();
?>
|
|
|

21.06.2009, 17:09
|
|
Познавший АНТИЧАТ
Регистрация: 01.04.2007
Сообщений: 1,268
Провел на форуме: 10046345
Репутация:
4589
|
|
Обойти авторизацию
PHP код:
<? // config.php
$admin_login = 'admin';
$admin_pass = 'laufd98w3er9832y9508wer';
?>
PHP код:
<? // index.php
require 'config.php';
unset($$my_security_var);
unset($my_security_var);
unset($$my_security_var2);
unset($my_security_var2);
if ($login == $admin_login and $passwd == $admin_pass)
{
die('Done.');
} else
{
echo 'Incorrect';
}
?>
<form method="get">
<input type="text" name="login" style="width:150px" value="login">
<input type="text" name="passwd" style="width:150px" value="pass">
<input type="submit" value="Check">
</form>
----------------------
Нарыть активную XSS
PHP код:
<? // config.php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'xss';
mysql_connect($dbhost, $dbuser, $dbpass) or die('Can\'t connect to MySQL server.');
mysql_select_db($dbname) or die('Can\'t select db.');
?>
PHP код:
<? // index.php
include('config.php');
function callback($text)
{
return html_entity_decode($text[0]);
}
function parse_bb($text)
{
$text = str_replace('"', '', $text);
$text = str_replace("'", '', $text);
$text = htmlspecialchars($text);
$text = str_replace("\r\n", '<br>', $text);
$bb = array('[B]' => '<b>', '[/B]' => '</b>', '[U]' => '<u>', '[/U]' => '</u>',
'[I]' => '<i>', '[/I]' => '</i>', '[CENTER]' => '<center>', '[/CENTER]' => '</center>',
'[MAIL=(' => '<a href="mailto:', ')MAIL]' => '">', '[/MAIL]' => '</a>',
'[HREF=(' => '<a href="', ')HREF]' => '">', '[/HREF]' => '</a>',
'[IMG]' => '<img border="0" src="', '[/IMG]' => '">', '[HR]' => '<hr>');
foreach ($bb as $code => $replace)
{
$text = str_replace($code, $replace, $text);
}
$text = preg_replace_callback('#"(.*?)"#', 'callback', $text);
return $text;
}
if (isset($_POST['name']) && isset($_POST['text']))
{
mysql_query('INSERT INTO gb (`name`, `text`) VALUES (\''.addslashes(htmlspecialchars($_POST['name'])).'\', \''.parse_bb($_POST['text']).'\')');
header('Location: index.php');
die();
}
?>
<html>
<head>
<title>Active XSS</title>
<style type="text/css">
html {
background-color: #e6e6e6;
}
body {
font-family: Verdana, Arial, sans-serif;
font-size: 12px;
margin: 10px;
border: 1px solid #d0d0d0;
background-color: #f6f6f6;
padding: 10px;
}
#text {
border: 1px solid #999;
background-color: f6f6f6;
color: #000;
font-family: Verdana, Arial, sans-serif;
font-size: 12px;
}
#input1 {
border: 0;
color: #000;
width: 100%;
}
textarea {
border: 0;
color: #000;
width: 100%;
height: 150px;
}
table {
font-family: Verdana, Arial, sans-serif;
font-size: 12px;
}
#button {
border: 0;
background-color: f6f6f6;
color: #000;
width: 99%;
}
#border {
border: 1px solid #999;
font-family: Verdana, Arial, sans-serif;
font-size: 12px;
}
</style>
</head>
<body>
<form method="post">
<table border="0" cellpadding="1" cellspacing="1" width="80%" align="center">
<tr>
<td width="100px">You name: </td>
<td id="border"><input type="text" name="name" value="Vasya" id="input1"></td>
</tr>
<tr>
<td colspan="2">
<b>Allowed BB code:</b><br>
<ul>
<li><b>[B][/B] [U][/U] [I][/I] [CENTER][/CENTER] [IMG][/IMG] [HR]</b></li>
<li><b>[MAIL=(</b>mail@mail.ru<b>)MAIL]</b>My MAIL<b>[/MAIL]</b></li>
<li><b>[HREF=(</b>http://fsb-my.name<b>)HREF]</b>My Site<b>[/HREF]</b></li>
</ul>
</td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td colspan="2" align="center" id="border">
<textarea name="text"></textarea>
</td>
</tr>
<tr>
<td colspan="2" align="center" id="border"><input type="submit" value="Post" id="button"></td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<table border="0" cellpadding="2" cellspacing="2" width="100%" align="left" id="text">
<?
$result = mysql_query('SELECT * FROM gb ORDER BY id DESC');
if ($result)
{
while ($row = mysql_fetch_array($result))
{
?>
<tr>
<td><?=$row['name'];?> ОХЬЕР:</td>
</tr>
<tr>
<td><?=$row['text'];?></td>
</tr>
<tr>
<td align="center"><font color="Gray">---------</font></td>
</tr>
<?
}
}
?>
</table>
</tr>
</table>
</form>
</body>
</html>
Код:
CREATE TABLE IF NOT EXISTS `gb` (
`id` int(11) NOT NULL auto_increment,
`name` text NOT NULL,
`text` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM;
|
|
|

21.06.2009, 22:37
|
|
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме: 3941248
Репутация:
668
|
|
BlackSun Второе не смотрел пока ..
первое ... отправить дополнительно ешё 2 гет параметра
my_security_var = admin_login
my_security_var2 = admin_pass
а логин и пароль оставить пустыми .. у себя не проверял т.к лень править php.ini но в правельности уверен на 99.99%
|
|
|

21.06.2009, 23:07
|
|
Познавший АНТИЧАТ
Регистрация: 01.04.2007
Сообщений: 1,268
Провел на форуме: 10046345
Репутация:
4589
|
|
Правильно. Завтра + поставлю, сегодня всё в минусомет убил
|
|
|

21.06.2009, 23:28
|
|
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме: 3008839
Репутация:
1502
|
|
не совсем по скриптовым языкам (пусть нижний код будет на c - или на этом языке от сан - или ...), но всё же - без компиляции, дебага и т.п. скажите, чему будет равно a? (просто, но смешно)
__________________
Bedankt euch dafür bei euch selbst.
H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
|
|
|

21.06.2009, 23:40
|
|
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме: 3941248
Репутация:
668
|
|
BlackSun второе
[HREF=([HREF=(style=background:url() onerror=alert(/lo/) )HREF])HREF]
в опере пахает в остольных не проверял =)
зы хсс в стилях чесно скомуниздено у LeverOne ... т.к забыл как вызывать алерт через стили =)
desTiny хз чему будет равно но момойму значение будет привышать максимальное допустимое для int ... хз 
Последний раз редактировалось Doom123; 21.06.2009 в 23:47..
|
|
|

21.06.2009, 23:50
|
|
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме: 3008839
Репутация:
1502
|
|
Сообщение от Doom123
desTiny хз чему будет равно но момойму значение будет привышать максимальное допустимое для int ... хз 
превышать точно не будет - в int что-то порядка 2.1*10^9 влезает
__________________
Bedankt euch dafür bei euch selbst.
H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
|
|
|

22.06.2009, 10:09
|
|
Познавший АНТИЧАТ
Регистрация: 01.04.2007
Сообщений: 1,268
Провел на форуме: 10046345
Репутация:
4589
|
|
Сообщение от Doom123
BlackSun второе
[HREF=([HREF=(style=background:url() onerror=alert(/lo/) )HREF])HREF]
в опере пахает в остольных не проверял =)
зы хсс в стилях чесно скомуниздено у LeverOne ... т.к забыл как вызывать алерт через стили =)
Задумывалось немного по другому
Активную XSS можно провести, используя вложенные BB коды.
В функции parse_bb вначале все выглядит довольно спокойно:
PHP код:
$text = str_replace('"', '', $text);
$text = str_replace("'", '', $text);
$text = htmlspecialchars($text);
Но далее идет регулярное выражение, которое преобразует, фильтрованный функций htmlspecialchars, текст, находящийся меж двойных скобок ("). Используя ББ код [HREF=()HREF][/HREF] можно передать регулярному выражению текст, с "не правильно" расставленными кавычками, благодаря чему текст, находящийся после второго ББ кода (который "закрыл" первый) будет декодирован aka преобразован в html код и записан в БД. Вуаля - активная XSS.
Ядовитый код:
Код:
[HREF=([HREF=(asd)HREF]<script>alert(2)</script>)HREF]
который будет преобразован в
Код:
<a href="<a href="asd"><script>alert(2)</script>">
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|