推奨:ASP Optimizationはデータバインディングを使用して高効率の動的Webページを実現しますデータバインディングは新しい概念ではなく、IE 4.0はすでに豊富なサポートを提供しています。ただし、データバインディングはそれに値するほど評価されておらず、多くの開発者はサーバー側のスクリプトメソッドをより喜んで使用することをいとわないようです。しかし、実際には
クラッキングの目標:暗号化されたASPトロイの木馬ログインパスワードを割る。トロイの木馬にはバージョンの説明がないので、トロイの木馬が何と呼ばれているのかわかりません。
クラックアイデア:2つのタイプ:暗号文を暗号化されたパスワードに置き換え、暗号文と暗号化アルゴリズムを使用してパスワードを逆に解決します。
前者は本当の亀裂ではありません。 ASPソースコードを取得できない場合は、パスワードをクラックする可能性がないと言えます。中国の友人は、彼がWeb許可を取得したが、ホームページを変更できなかったと言った。彼は、ASPトロイの木馬が含まれていることを発見しましたが、パスワードは暗号化されました。さて、ナンセンスが多すぎるので、準備してください。この説明はかなり長くなります。
ASP Trojanログインパスワードの検証の重要なコードは次のとおりです。
epass(trim(request.form(password)))= q_ux624q pの場合 Response.Cookies(パスワード)= 8811748 ... |
EPASS関数を使用して入力パスワードを暗号化し、取得した暗号文を元の暗号文と比較することは明らかです。少し基本的なプログラミング、特にVBがある場合、EPASSの暗号化アルゴリズムは一目で明らかになります。そうでない場合、それは問題ではありません。私の説明の後、あなたはすぐに理解すると思います。関数では、パスワードを保存する変数は渡されます。 pass&zxcvbnm、。/ zxcvbnmでパスのコンテンツを接続します。/新しい文字列を取得します。左(pass&zxcvbnm、。/、10)は上位10桁を取得します。横方向関数は、結果の10ビット文字列順序を逆転させます。 len(pass)は、パスワードの長さを取得します。以下はループです。取得した文字列の各ビットのASCIIコードパスワードの長さは丸く(文字位置 *1.1)、結果の値が文字に変換されて再接続されます。最後に、「入手した文字列」のあるすべての文字がBに置き換えられ、暗号文が生成されます。暗号化アルゴリズムを抽出し、元の暗号文を独自の暗号文に置き換えると、対応するパスワードもパスワードになります。しかし、私はこれが本当の亀裂ではないと言った。
愛を入力すると、暗号化プロセスは次のとおりです。
| 愛 lovezxcvbnm、。/'接続 lovezxcvbn 'トップ10を取る NBVCXZEVOL 'ORDERは反転しました n 110(ASCII)-4(桁番号)int(1(位置)*1.1)= 107 107のASCIIコードはKなどです。最後の暗号文は次のとおりです。 k`ucy hzts |
ciphertextおよび暗号化アルゴリズムを介してパスワードを反転させ、アルゴリズムの最後のステップから押し上げることができます。最後のステップは、すべてをBに置き換えることです。Bを置き換える必要がありますか?答えはノーです。最後の暗号文を取得できる限り、パスワードが異なる可能性があります。 10 bsがある場合、元のパスワードの数は10のパワーの2です。元のパスワードは1つだけですが、1024パスワードはすべて正しいです。あなたがそれを完全にクラックしたいなら、あなたはすべての組み合わせを自分で書くようにすることができます。このステップは無視できます。上記のアルゴリズムは非常に明確です。
| chr(asc(mid(temppass、j、1)) - テンプレンint(j*1.1)) |
しばらくの間、単に変更する必要があります。
| chr(asc(mid(temppass、j、1))templen-int(j*1.1))) |
しかし、別の問題があります。事前にパスワードの長さがわからないので、それは問題ではありません。幸いなことに、パスワードは1〜10桁で、長すぎません。次に、1〜10ループを使用して、可能なすべてのパスワードを見つけてから、横方向関数を使用してそれらの順序を逆にすることができます。では、最終的にどのパスワードを取得するかをどのように判断しますか? zxvbnmの最初の数桁があるかどうかを確認できます。次に、これが実際のパスワードです。その後、パスワードが10ビットの場合、その背後に接続がないため、永遠に正しいでしょう。したがって、2つの答えが得られるかもしれません。
以下は、私が書いた復号化関数です。
関数ccode(コード) templen1 = 1〜10の場合 mmcode = j = 1〜10の場合 mmcode = mmcode chr(asc(mid(code、j、1))templen1-int(j*1.1)) 次 ccode = strreverse(mmcode) Response.write password&templen1&:&ccode& mid(ccode、templen1 1,10-templen1)= left(zxcvbnm、。/、10-templen1)およびtemplen1 <> 10 thenの場合 結果=左(ccode、templen1) 次 response.write last password:&result エンド関数 |
OK、アルゴリズムはこのような短い時間で完全にマスターされていない場合がありますが、これは正常です。そこで、指示と暗号化され、復号化されたASPソースコードを圧縮パッケージに添付します。それを取り戻し、注意深く勉強してください。同様に、パスワード10は永遠に正しいです。次に、ASPで元の暗号文を取り、結果がどうなるかを見てみましょう。
共有:asp- contentTypeで応答属性を使用しますASPを使用して特定のユニットのWebページを作成する際に、このような問題に遭遇しました。ユニットの以前のMISシステムでは、バイトストリームの形でデータベースにいくつかの単語ファイルが保存されました。これで、ユーザーはASPを使用してデータベースからこれらの単語ファイルデータを取り出し、Webページに表示するように依頼しました。