python编写poc_POC编写基础知识
什么是 PoC
PoC(全称: Proof of Concept), 中⽂译作概念验证。在安全界,你可以理解成为漏洞验证程序,和⼀些应⽤程序相⽐,PoC 是⼀段不完整的程序,仅仅是为了证明提出者的观点的⼀段代码
什么是 Exp
Exp(全称: Exploit),中⽂叫漏洞利⽤程序。名字上说的已经很清楚了,简单讲,就是⼀段可以发挥漏洞价值的程序,这话感觉和没说⼀样。想象⼀下这样的场景,⽬标存在⼀个 SQL 注⼊漏洞,然后被你知道了,然后你编写了⼀个程序,通过这个 SQL 注⼊漏洞,拿到了⽬标的权限,那么这个程序就是所谓的 Exp 了.
POC与EXP的区别
PoC 和 Exp 是两个东西,PoC 就是⽤来证明漏洞存在的,⽽ Exp 是⽤来利⽤这个漏洞的,在很多情况下,我们知道了漏洞存在,却不知道具体怎么利⽤,编写⼀个 PoC ⾮常简单,⽽编写⼀个 Exp 是相当有挑战性的。
PoC 编写流程
根据漏洞详情,寻受影响版本程序
如果是⼀些 CMS, 可以去 对应的官⽹下载历史版本程序,有些漏洞作者不会提具体版本号,那你就要根据漏洞作者提交的时间来判断了。当然除了官⽅⽹站之外,还可以去 github 上寻源码,这些个官⽹都喜欢把历史版本的程序删除掉,善⽤ github 上的 tag, branch, release 功能,上⾯有你要的所有版本anticipating
搭建对应漏洞靶场
这⾥其实没什么好说的,下载了⼈家的源码之后,在你的虚拟机⾥⾯配置好环境就⾏了,还能顺便学⼀下运维的⼀些⽪⽑知识。
selenium测试工具⼿动复现漏洞
根据漏洞详情,⼿动将整个流程⾛⼀遍,熟悉下复现条件,⽐如使⽤ GET 还是 POST 请求,需不需要登陆,返回的页⾯会是什么样⼦的,我提交不同的参数,会不会出现其它结果,如果漏洞不存在的话,会出现什么样的结果
写代码
⼿动复现了⼀次漏洞之后,分析漏洞证明步骤,根据⾃⼰的实际测试情况⼀步⼀步写代码,⽤我的话来说,写代码,其实就是⽤程序模拟⼈⼯操作的每⼀个步骤,如果你上⼀步认真做了,这⼀步只是经验问题
编写POC,⾸推语⾔当然是Python了,原因很简单——好⽤,Python提供的强⼤类库可以让我们将主要精⼒都放在具体漏洞研究上,⽽不⽤去纠结诸如如何去实现HTML解析、HTTP发送等辅助功能。常⽤到的Python库如下:
js99vip金沙urllib2: 发送HTTP/HTTPS请求
requests:更“⾼级”的urllib2库
re:正则表达式
random:⽣成随机数
base64:base64编码
hashlib:常⽤来计算md5值
time:⽤来统计访问时间延迟
……
当然语⾔只是⼯具载体,并不局限于Python。原则上你想⽤什么语⾔都可以,建议⾸选那种外部条件依赖少、简单好⽤⽽且⾃⼰也⽐较熟悉的语⾔
测试 PoC
其它测试和编码基本都是在同时进⾏的,为什么要单独提出来讲呢,我们在写 PoC 的时候,除了在存在漏洞的靶机上测试我们的代码,还要在不存在漏洞的站点测试,⼀般为说,⼀个优秀的 PoC 在后期测试的时候要求对 10000 个⽬标测试,误报不能超过 10 个
国内 PoC 框架简介
txt文档怎么改成xml格式POC框架可以对⼤量POC进⾏管理与调度,提供了统⼀的编程规范与接⼝,是编写POC很好的帮⼿。我们只需要按照框架⾃定义的格式写好POC,然后放在框架中运⾏即可。⽬前国内有很多⾮常优秀框架,这⾥就介绍其中的⼏款
video enhancer1.Pocsuite
Pocsuite框架现为知道创宇Seebug平台通⽤的漏洞验证框架,使⽤Python编写POC。可以提交POC
换kb,kb可以⽤来兑换现⾦,挣点零花钱还是相当不错的。⽼司机们可能听过Sebug,那是Seebug的前⾝,2016年Sebug收购了另⼀个优秀框架Beebeeto后,更名为Seebug
2.Bugscan
python基础知识测试Bugscan是四叶草的官⽅框架,使⽤Python编写POC。提交POC插件获取rank 奖励,可兑换实物奖励,奖品还是蛮丰富的
Tangscan
Tangscan(唐朝扫描器)是wooyun社区的官⽅框架,使⽤Python编写POC。可以提交POC换汤圆,参与现⾦分红。Tangscan社区已经关闭,不知道还会不会开,⾥⾯的汤圆还没取出来呢。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论