【Python小练习】使用Python编写POC 脚本-上篇

文章目录

  • 基本概念
    • 什么是Poc
    • 什么是Exp
  • 常见问题
    • Exp 和 Poc相同?
    • 为什么网上大多漏洞仅公开POC?
    • 为什么使用Python来编写
  • 编写流程
    • 获取详情
    • 搭建环境
    • 复现漏洞
    • 编写脚本
    • 测试脚本

基本概念

什么是Poc

Poc(全称: Proof Of Concept), 中文译作概念验证。在网络安全行业,理解为漏洞验证程序,类似于程序开发中的功能Demo,仅证明某功能或观点的可行性,一般不具备“破坏性”

什么是Exp

Exp(全称: Exploit),中文叫译作漏洞利用程序,就是一段可以发挥漏洞价值的程序。比如SQL注入漏洞,运行Exp脚本可以通过漏洞获取数据库敏感数据内容或服务器权限。

常见问题

Exp 和 Poc相同?

严格来说二者并不相同。从脚本完整度来说,Exp比Poc更完整,Exp不仅具备漏洞验证功能,还具备漏洞利用功能。二者关系可以理解成数学集合中的包含关系,即Exp包含Poc。从功能角度来说,EXP不仅可以验证漏洞存在还可以通过漏洞获取想要的信息或服务器权限,一般具有一定“破坏性”

举个例子,仓库门锁坏了,你经过推开门的方式验证了门是坏的,没法锁住,但是没有进行破坏或盗取里面的财物,这就是POC验证。反之你推了门发现门锁坏了,而且进去盗取了里面的财物,这就是EXP攻击。

为什么网上大多漏洞仅公开POC?

  • 利益相关,黑产人员往往利用漏洞牟利,公开后漏洞会被更快修复,影响不当获利。
  • 法律约束,随意传播漏洞细节会造成不当后果,所以大部分仅做证明。
  • 理论存在,例如现在很多公司要求白帽子挖掘漏洞仅做验证不做深层次利用,为了防止业务被影响,大部分证明漏洞存在后就停止了,没有更加深入具体的漏洞利用过程,理论上是存在的。还有的“版本型”漏洞,探测到版本比较低就说明存在漏洞,但无法进一步利用,所以也没法编写Exp。

为什么使用Python来编写

从实际角度出发,Poc仅是一段验证程序,程序编写需要从编者习惯,应用环境和便捷性等角度考虑,只要能达到目的即可。选择Python,大多是因为对新手更加友好,使用门槛低且程序易读。

编写流程

获取详情

通过威胁情报网站微信公众号等获取漏洞信息,例如明确漏洞类型,作用原理、版本号和部署环境等,最低要求就是看了这些信息你能知道漏洞是怎么回事,大概为什么会产生漏洞,怎么复刻漏洞环境和怎么复现漏洞
资源网站推荐:
https://x.threatbook.com/v5/vulIntelligence
https://www.cnvd.org.cn/
https://www.exploit-db.com/
公众号推荐:
直接搜索关键词“应急响应中心”或“Cert”即可

搭建环境

环境选择:通过虚拟机,Docker镜像和phpstudy等各类集成基础环境都可以。不论是本地还是云端根据情况决定,尽可能根据已知漏洞信息进行环境模拟,保证漏洞复现成功率较高,推荐本地Docker部署,更方便快捷。
资源推荐:
https://github.com/fofapro/vulfocus
https://github.com/vulhub/vulhub

复现漏洞

根据了解到的漏洞详情,逐步去复现漏洞。复现的时候特别留意请求方法,必要的请求头内容、参数内容和判断漏洞存在的标识(可能是某个字符串或者某个状态码)等。能了解漏洞原理和达到成功利用目的。
最终保证漏洞复现前提下尽可能缩减请求包内容,方便编写脚本。

编写脚本

复现完成后根据复现过程进行脚本编写,用脚本模拟复现过程。例如xxx.com 网站conf.ini 配置文件泄露漏洞,编写脚本基本步骤为:
1.发送请求探测到xxx.com/conf.ini
2.判断响应状态码为200
3.判断响应包内容是否为conf.ini 内容
4.得出漏洞是否存在的结论。

测试脚本

实用编写的Poc对本地模拟环境进行测试,保证脚本能运行到达检测效果,然后不断完善优化达到最近使用效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/78533.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

conda与pip镜像源环境配置

文章目录 一. 参考二. conda三. pip 一. 参考 b站环境配置视频 校园网镜像站 二. conda 利用校园网镜像站, 找到conda的镜像源配置文档. 将下面的文档复制到电脑上的.condarc文件中. channels:- defaults show_channel_urls: true default_channels:- https://mirrors.tuna…

基于人体呼出气体的电子鼻系统的设计与实现

基于人体呼出气体的电子鼻系统的设计与实现 摘要 电子鼻技术是通过模式识别技术对传感器采集的人体呼出气体进行分类训练的方法。本文研究实现的电子鼻系统包括下面几个部分:首先搭建以Arduino为控制核心的气路采集装置,包括MOS传感器和双阀储气袋构建的传感器阵列和…

在网站标题中使用可以让搜索引擎更容易(识别网站的主要内容)

随着互联网的飞速发展,越来越多的企业开始重视网站的优化。优化网站排名不仅可以增加曝光率和点击率,也可以提高品牌知名度和销售额。本文将从关键字优化方案入手,为大家详细介绍如何提升网站排名。 什么是关键字? 关键字是指用…

如何在Windows 10/11中重置网络,以及重置后的注意事项有哪些

本文介绍如何在Windows 10和Windows 11中重置网络设置。 如何重置Windows 10网络设置 在Windows10中使用网络重置实用程序相当简单。 一、进入“开始”菜单>“设置”,然后选择“网络和Internet”。 二、在左侧导航窗格中,选择“状态”以确保你正在查看网络状态窗口。然…

每日一题 78子集(模板)

题目 78 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1: 输入:nums [1,2,3] 输出:[[],[1],[2]…

深入解析 Nginx 代理配置:从 server 块到上游服务器的全面指南

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🐅🐾猫头虎建议程序员必备技术栈一览表📖: 🛠️ 全栈技术 Full Stack: &#x1f4da…

【数据仓库基础(四)】数据仓库需求:基本需求和数据需求

文章目录 一. 基本需求1. 安全性2. 可访问性3. 自动化 三. 数据需求1. 准确性2.时效性3.历史可追溯性 从基本需求和数据需求两方面介绍对数据仓库系统的整体要求。 一. 基本需求 1. 安全性 数据仓库中含有机密和敏感的数据。为了能够使用这些数据&…

使用CFimagehost源码搭建免费的PHP图片托管私人图床,无需数据库支持

文章目录 1.前言2. CFImagehost网站搭建2.1 CFImagehost下载和安装2.2 CFImagehost网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar临时数据隧道3.2 Cpolar稳定隧道(云端设置)3.3.Cpolar稳定隧道(本地设置) 4.公网访问测…

centos下安装docker

centos下安装docker 1、删除历史安装包 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine2、配置yum源 sudo yum install -y yum-utils sudo yum-config-manager \ …

Kubernetes(K8S)集群部署

目录 一、创建3台虚拟机 二、为每台虚拟机安装Docker 三、安装kubelet 3.1 安装要求 3.2 为每台服务器完成前置设置 3.3 为每台服务器安装kubelet、kubeadm、kubectl 四、使用kubeadm引导集群 4.1 master服务器 4.2 node1、node2服务器 4.3 初始化主节点 4.4 work节…

【计算机网络】网络编程接口 Socket API 解读(1)

Socket 是网络协议栈暴露给编程人员的 API,相比复杂的计算机网络协议,API 对关键操作和配置数据进行了抽象,简化了程序编程。 本文讲述的 socket 内容源自 Linux man。本文主要对各 API 进行详细介绍,从而更好的理解 socket 编程。…

学习视觉SLAM需要会些什么?

前言 SLAM是现阶段很多研究生的研究方向,我也是作为一个即将步入视觉SLAM的研究生,网上对于SLAM的介绍很多,但很少有人完整系统的告诉你学习视觉SLAM该有那些基础,那么此贴将告诉你学习SLAM你要有那些方面的基础。 文章目录 前言…

【AI】机器学习——线性模型(线性回归)

线性模型既能体现出重要的基本思想,又能构造出功能更加强大的非线性模型 参考:唐宇迪机器学习课程 文章目录 3.1 线性模型3.1.1 数据3.1.2 目标/应用 3.2 线性回归3.2.1 回归模型历史3.2.2 回归分析研究内容回归分析步骤 3.2.3 回归分析分类3.2.4 回归模…

【Golang入门】Golang第一天心得

生活所迫,入门一下Go 很奇葩的第一点,接口 package mainimport ("fmt" )// 定义一个接口 type Shape interface {Area() float64 }// 定义一个矩形类型 type Rectangle struct {Width float64Height float64 }// 矩形类型实现Shape接口的Ar…

Codeforces Round 895 (Div. 3) A ~ F

Dashboard - Codeforces Round 895 (Div. 3) - Codeforces A 问多少次能使a 和 b相等&#xff0c;就是abs(a - b) / 2除c向上取整&#xff0c;也就是abs(a - b)除2c向上取整。 #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #de…

学习网络编程No.6【将服务器日志和守护进程化】

引言&#xff1a; 北京时间&#xff1a;2023/9/1/21:15&#xff0c;下午刚更新完博客&#xff0c;同理再接再厉&#xff0c;这样整天不需要干什么&#xff0c;除了玩手机的日子不多了&#xff0c;马上就要开学&#xff0c;每天需要签到签退的日子就要来临&#xff0c;烦躁&…

浅谈STL|STL函数对象篇

一.函数对象概念 概念: 重载函数调用操作符的类&#xff0c;其对象常称为函数对象 函数对象使用重载的()时&#xff0c;行为类似函数调用&#xff0c;也叫仿函数 本质: 函数对象(仿函数)是一个类&#xff0c;不是一个函数 特点 函数对象在使用时&#xff0c;可以像普通函数那…

Linux提权

shell分本地shell 和 webshell 有些提权方式只能本地shell使用 常见内核漏洞查找脚本以及利用 环境变量提权 suid https://www.cnblogs.com/banglook/archive/2022/03/17/16019354.html linux特殊命令https://www.secrss.com/articles/28493 什么是suid SUID (Set UID)是Li…

「中秋来袭」没想到,用OpenCV竟能画出这么漂亮的月饼「附源码」

一、前言 中秋佳节即将来临&#xff0c;作为传统的中国节日之一&#xff0c;人们除了品尝美味的月饼、赏月外&#xff0c;还喜欢通过绘画来表达对这个节日的喜悦和祝福。而如今&#xff0c;随着科技的不断发展&#xff0c;竟然可以借助计算机视觉库OpenCV来绘制精美的月饼和可…

Redis的数据持久化方案

目录 前言 RDB方式 概述&#xff1a; 1.RDB手动 &#xff12;.RDB自动 RDB优缺点 AOF方式 概述 AOF写数据的三种策略 AOF相关配置 AOF重写 AOF重写方式 手动重写 bgrewriteaof 自动重写 总结 前言 Redis是一个内存型数据库&#xff0c;也就是说如果不将内存中的…