渗透测试工作思路

2024-05-11

渗透测试工作思路(精选8篇)

渗透测试工作思路 篇1

渗透测试常规思路分析

正所谓没有人一出生就会走路,从不懂到入门到深谙,一步步慢慢来,每个人都是这样;但是在这个过程中,思路无疑是最重要的,没有做不到只有想不到,就跟咱们高中解题时有了思路就迎刃而解一样,手里拿着铲子(技巧知识)但不是道从何挖起岂不是悲哀。

下面会分享一些我自己总结的常规渗透思路。

分享的思路就像一本书的索引一样,并不是每个点都有详细的技巧和各种原理分析,而是咱们如何下手如何一步步深入,在每个点上咱们知道了思路可以在每个点上查阅资料来攻破,继续前进。好比武功的招式套路,在总体套路不变的前提的下招招精进,也可以重组创新。

0×01 野球拳:外围

招式解释

野球拳:最基础但练得好最后也非常厉害

1. 主要由于服务器配置等原因造成的信息泄露

常用google ,bing等搜索工具,轻量级的搜索出一些遗留后门,不想被发现的后台入口,中量级的搜索出一些用户信息泄露,源代码泄露,未授权访问等等,重量级的则可能是mdb文件下载,CMS 未被锁定install页面,网站配置密码filetype:lst password,php远程文件包含漏洞等重要信息。

包括Robots.txt不想让百度知道的,可能没有设置forbidden访问权限,让我们知道了路径可以进入哦。

2. 端口探测——服务 该项也是针对服务器的配置来说的,在服务器配置的时候可能出现一些ftp,3389.1433等常规服务端口,则可以根据弱口令尝试,或者一些服务的基础漏洞(CVE)来使用matesploit进行处理。常用工具NMAP –A IP.3. 爬虫爬网站目录

该项是使用爬虫扫描器,对网站域名进行扫描,网站根目录下的文件,说不定能发现惊喜哦。AWVS,WWWScan。

4. Web框架漏洞

Web整体框架:

①Struts2框架漏洞,直接利用。

②ThinkPHP任意代码执行。后台框架:

其实也可以算绕过验证进入后台分类中;

①Siteservercms,cookie绕过,在sebug上可以找到相关漏洞修补信息。

②worldpress ③ewebeditor , fckeditor编辑器上传页面直接访问,根据编辑器版本,随处可查利用信息。

5. 暴力,撞库进后台

无论是前端的用户登录还是后台的管理进入,暴力破解都不失为一种以时间和字典为消耗的方法,还是有概率进入的,呵呵。

不过相比而言,根据外围探测拿到的信息,也许可以帮助我们很轻松的进入后台。撞库,也许你只拿到了一部分敏感信息,但是网络上现在裤子满天飞的状况下,撞一撞找一找,说不定密码就出来了,这个可比暴力破解快得多。

6. 弱口令

最常见最危险也最掉以轻心

7.中间件配置不当引起的问题

① IIS写漏洞(不常见了)

(常规工具“老兵”)

② 目录可访问

*8.操作系统、中间件文件解析引起的问题,Apache test.php.xx IIS test.asp;.jpg windows.asp.asp□

不是深入的话题,在上传里关注 9.php引起的一系列问题

①../../etc/passwd 直接深入 ② php引起的目录遍历

③ PHP 引起的远程文件包含(google搜索也可以直接利用)

0×02 太极:外围到内部之间的中间层(应用)

招式解释

太极:遇强则强,遇弱则弱,全是应用惹的祸 一.用户未登陆的情况下

1、注入

注入的类型实在太多,利用花样种种,① 页面调用时候的sql注入,一般直接穿山甲,sqlmap跑出来dbs和表,用来进后台用或者泄露用户信息。(DBS是否完整,网站结构库,直接利用)

② 万能密码之类的sql注入,进入前端应用或者后台管理。

③ 本站没有注入不代表就不能深入,试试旁注呢,呵呵。只是流程不一样了。

2、XSS XSS的类型不算多存储型,反射型,但是利用就是只有你想不到,没有你做不到。

和深入无关的就不说了。

① XSS盲打打后台,多半也是想进后台种种方法无果的情况下。概率有限。

② XSS DDoS。

3、信息泄露,订单遍历 用户访问权限问题。

4、密码找回漏洞(密码邮件/短信重置)

Burp可修改字段的情况下,找回其他用户密码,说不定admin的密码就被你找回了。

5、后台

后台也是一种业务,只是一种专政的隐藏的业务哈。

如何进入后台呢?在找到后台地址的前提下。和应用无关的:暴力破解,撞库,信息收集利用,弱口令,未授权访问。

① 万能密码之类的sql注入,post型注入用sqlmap dump dbs.② 利用web前端的sql注入

③ 密码找回运气好的话前端应用的admin密码和后台密码一致。(有什么查询密码88)

④ XSS盲打 cookie(成功率)

⑤ 后台框架 siteservercms等知名后台cms sebug

1、首先获取免费版软件,然后安装使用查看是否有test(admin)账户,能否直接利用,保存cookie提交看能否使用。

2、看版本,Sebug等上面有无直接利用方法

3、代码审计(北京2014绿盟安全夺旗北京分公司利用此方法成功转账)二.在模拟用户注册登陆情况下

1、认证绕过

① 万能密码

② Cookie欺骗

2、越权访问

①平行越权,其他用户信息读取、修改;

② 纵向越权,主要体现在修改密码能否通过特殊字段标记的修改管理员密码。

3、注入

Cookie post get 型,登陆后user相关应用

4、XSS 影响力、类型实在太多

① user提交的东西让后台管理员去审核

1.了解后台的提交审核流程,CSRF,给自己添加用户,(文章管理系统)2.XSS找后台,管理员浏览时Cookie传输到XSS平台 3.XSS蠕虫之类 4.订单遍历

5、上传点

① 一句话木马 ② Webshell上传

在很多情况下,没有注入的,后台进不去,上传点是最好的阵地。

网站十分重视对上传文件的保护,熟悉上传流程,被阻断在哪里,在哪里突破。

6、短信、邮箱DDoS

7、支付漏洞

① 0元任意付

②-1元退款

③ 数量整型/长整型溢出

0×03 内部(管理后台)

招式解释:迷踪步(无痕无迹,还需更深进入)既然已经进入了管理后台了,很有成就感,那么下一步的目标就是控制这台服务器,控制整个网段。。现在一般的web渗透也都到此为止了。1.上传webshell 假如你在web前端没有地方或者没办法上传webshell,那么在后台上传是一个最好的选择,这也是帮助你从业务层面上控制服务器的最佳方法。

① 后台可修改上传文件类型,欢天喜地,修改下白名单| 黑名单,上传成功,有时候不能被解析很常见,再找原因。

② 后台不能修改上传文件类型,大部分哦~不过一般来说对后台的上传校验比前端要宽松一些。

没事,咱们该怎么绕过就怎么绕过,不能绕过就88…….2.一句话木马 3.管理员的分权

假如说管理员进行了分权,拿到了管理员不是权限最高的主管理员的话还需要进行管理员提权操作。后台提权

渗透测试工作思路 篇2

对于油气井的测试工作是一项非常重要的工作, 特别是对于一些比较有难度的油气井进行测试, 在前一段时间, 我国很多地区都出现了一些高温超压油气井, 对于这些油气井的测试工作都面临着较大的难题, 而这些难题也直接对油气井勘探与开发产生了影响。实际上从某种程度来说, 高温超压油气井的测试一直以来都存在着较大的难题, 因此合理地做好油气井的测试工作, 优化对油气井的测试工作制度, 对于促进油气井的测试工作具有重要的意义。

1 传统油气井测试工作的制度分析

传统的油气井在进行测试的时候, 设计相关的测试工作制度和设计方法, 通常情况下, 主要选择某一种尺寸的基准进行测试, 如果这一尺寸的气嘴儿对于进口具有较大的压力, 测出的产量相对较为稳定, 可以换尺寸较大的气嘴进行进一步的测试。如果反之, 那么就需要换较小尺寸的气嘴进行进一步的测试, 分析传统测试的工作制度, 通常情况下, 主要按4点法进行测试, 为了突出地层的能量, 需要更换较大直径的基准进行放喷, 就能够在很大的程度上提升相关的产量。我国一般常采用这种方法, 这种方法在我国的可行性, 对于我国正常的地层压力, 可以更好地加以应用[1]。为了更好地对高温超压油气井经测试, 需要对相关的设置进行分析, 地面的流程一般需要进行有效的测试, 测试工艺的设计和模拟主要为对于气场的最高压力、最高温度、气藏的参数、天然气参数值等进行给定, 同时对于井口的最高压力和最高产量进行给定, 对井口的流温和井口的流压进行计算, 同时需要根据所得结果, 对于地面的管线和阀门进行合适的选择, 要选择有效的防水化合物, 对相关的参数进行设计, 以此得出结论, 对于进口的高温高压等情况, 了解其不易形成的水合物情况。井下的管柱一般由管线和阀门组成, 管住需要承受较大的压力和流量, 那么与此进行设计, 一方面可能会导致硬件的浪费, 也可能在测试过程中出现一定的影响, 涉及的参数不准确。所以据此来对防水合物的形成参数进行设计, 不能够使实际的要求得到满足, 而且还可能会留下一定的测试安全隐患。

2 油气井测试工作制度优化设计方法研究

2.1 界定高温高压气井, 确定井口压力对井底流压的影响

目前对于高温高压井的界定上没有统一的定论, 国外有公司将其定义为地层压力值大于105MPa且底层温度在210℃以上的井。而国内的石油界, 一般将高温高压井的地层压力定为105MPa, 但也有人认为地层压力超过70MPa就可以了, 底层温度的定义是超过170℃就可以定义为高温高压井。通过对高温高压井的定义, 可以看出, 高温高压经所在处的地层压力一般较高, 所以在进行测试的时候如果气层的油压相对较低, 那么可能会导致生产压差加大, 这样过大的生产压差对于许多的地层将会产生一定的影响, 导致出砂等情况发生。路上造成地层破坏性, 甚至会导致井下工具和井下的管柱出现破坏, 严重的时候也会对地面的管线造成重大损坏, 产生巨大的损失[2]。因此如果想要更好地避免这种压差过大而产生的损失, 弄清地层的压力是一个必须要解决的工作, 同时也需要对井筒的压力和地面参数之间的关系进行考虑, 便于进行相应的控制。

2.2 不同的工作制度下对高温高压气井安全性的影响

有文献表明, 当措施的速度能够满足q>qcrt的时候, 那么就很有可能会出现触及层坍塌破坏性损失情况[3], 因此需要对不同胶结强度的S0气藏进行不同的压力测试, 并对不同测试压力背景下的临界测试流量图进行测验分析。通过测试分析能够得出, 如果地层的压力相对较高, 其交结强度较为相同, 这种情况可能会因为测试压力的增大而导致临界测试压力产量增大, 同时也使得压力出现大幅度减小, 其测试的压差将进地面的压力, 导致临界测试量也会不断缩减。对岩石的胶结强度进行分析, 如果岩石胶结强度对于临界速度具有较大的影响, 那么对于胶结较差的砂岩, 其测试临界的产量就会较低, 这种情况下地层将可能会出现坍塌破坏现象。对于胶结较好的地层, 经测试所得的临界产量相对较高, 所以地层不会出现坍塌情况, 分析胶结较好的地层, 测试的临界值可能会随着测试压差不断的增加或降低, 所以, 测试的临界产量较胶结的底层相对更大。

3 油气井测试工作制度的优化设计

为了更好地解决高温高压气井在测试期间因为气嘴儿吃重过大而导致的相关问题, 需要做好两个方面的工作, 首先是需要根据地层的情况对生产的压差进行合理的确定, 其次是需要根据生产压差来合理地设计测试工作的制度。所以需要对岩石破损极限差进行测试, 以便于决定合理的测试生产压差, 同时需要合理地确定生产压差的范围, 明确对井底压力的测试点, 需要根据地面测量的压力、温度等情况来对井底的流压进行测定, 要根据实时的计算对井底的流压进行确定, 同时在地面上做好相关的控制工作, 以便于更好地完成设计点数的测试工作。所以在测试之前, 如果已经基本上知道了岩石损坏程度, 也知道了相关的合理生产压差, 那么测试期间需要通过地面的参数测量, 来实现对井底流压的计算, 进而对当时的生产压差进行计算。在测试的整个过程中, 对井口的流压进行控制, 并做好对井底流压的控制工作, 促使生产压差处于合理的生产范围之内, 拾取同时具有典型的生产压力覆盖范围, 并确保相关的测试参数和优化相结合。可以利用本方法对测试当中因为压差不合理而带来的恶性情况进行解决。

在对产能测试进行设计的时候, 需要注意产能测试的主要目的是更好地对气井的流入动态和无阻流量进行确定, 它会为合理的配备奠定相关的基础, 产能的测试流量需要按照从小到大的顺序依次进行安排, 一般情况下最常见的使用方法有回压试井和等时试井等, 分析回压试井, 这种试井方法主要是先开井进行放喷, 然后将井底所蓄积的积液进行排除, 并对最大的井口进行测量, 做好对关井压力的测试工作。需要注意应该按照先小后大的顺序依次安排3到4个不同的工作制度进行生产, 对每一个制度的稳定产量和井底压流进行记录并做好确认。同时需要对产能测试设计的原则进行确认, 应该满足各类事情的方法和自身的要求, 将各个阶段的流动时间设置为大于井筒的储集时间, 以此来获得地层的最佳流动性, 并获取最准确的信息。同时阶段的流动时间应该相对探测半径更大, 同时也需要比井筒污染的半径更大, 最好能够对油气层的单井供给范围作出代表, 最后应该确定阶段性的观景时间, 使其比井筒的连续结束时间更大, 以此获取更好的地层流动特性。分析当前所使用的测试设计和实施过程, 目前还处于被动状态, 所以不能够更好地对测试过程进行模拟, 为了获得最佳的测试方案, 在对模型进行利用的时候, 首先需要对于流体的体积温度等情况的具体参数进行输入, 之后选择较为合适的油藏模型, 确定测试的目标, 以便于更好地制定出测试工作的制度。除此之外, 还可以对探边测试和测试压力值进行设计, 按照常规的油井和生成器井之间的特点, 确定合理的测试压值。

4 结语

本研究主要就油气井测试工作制度当中的相关设计方法进行研究, 并主要以高温高压油气井为依据, 详细地针对相关情况进行简要的分析, 笔者认为, 通过合理的生产压差来对工作制度进行测试, 能够有效的谋求相关的地层参数, 同时也能够更好的防止生产压差过大, 进而导致其地层出现破坏。

参考文献

[1]赵小军, 胥洪俊, 张超, 宋春艳.复杂高压气井地层出水判别及评价新方法[J].钻采工艺, 2014, 27 (04) :537-539.

[2]嵇国华, 索美娟.高压气井井下节流工艺[J].石油机械, 2013, 27 (04) :967-968.

渗透测试工作思路 篇3

【关键词】初中班主任 教学实践 感恩教育

【中图分类号】G631 【文献标识码】A 【文章编号】2095-3089(2015)08-0088-02

教书育人,不仅是教学生知识,更要注重对学生品德的培养。这是教学工作的根本要求。这也意味着教师的工作不仅是向学生传授知识,更要注重对学生的综合素质的培养,引导学生如何做人,如何生活,如何感恩。而初中班主任,则可以综合初中生活的各个方面,在班主任工作的各个不同环节中渗透对感恩教育的传授,从而,引导学生感恩,提升学生的品质。

一、利用当下社会的新闻或广告对学生进行感恩教育

当今社会是一个信息社会,新闻与我们的生活关系非常密切。例如,在2009年的《感动中国》中的湖北武汉的《暴走妈妈割肝救子记》的故事,笔者就在班会课上组织学生进行了观看,记得当时,很多学生在看的过程中,都留下了眼泪。当时课堂很安静,能很清楚地听到一些学生的抽泣声。看完片子,我没有说话,同学们也很安静,当时的氛围其实不需要我说什么,感觉同学们仿佛一下子长大了很多。从此,每年我都会在班级组织学生观看上一年的《感动中国》。

广告在现代社会充斥我们的生活。笔者前几久在电视上看到一则广告,一个五岁左右的小男孩,看到他的妈妈在工作了一天之后为奶奶洗脚,然后自己也端出一盆水来给自己的妈妈洗脚。针对这则广告,笔者组织学生在班会上进行调查并讨论:在咱们的班级中,有多少学生的父母给自己洗过脚?有多少学生为父母洗过脚?调查的结果是班级40名学生中,只有5名为父母打过洗脚水,但是几乎每个学生的父母都为孩子洗过脚。我问大家为什么?教室里沉默了许久后,几个学生回答:父母爱自己。父母因为爱,所以愿意为孩子付出。而子女,也应该学会去爱父母,学会感恩。

二、抓住一些特殊日子对学生进行感恩教育

现代人越来越重视过节,班主任可以利用这一时代特点,结合一些特殊的日子对学生进行感恩教育,例如,教师节,母亲节等。在教师节,学生可以组织学生通过自己的文章来表达对老师的赞美。在母亲节也可以组织学生每人自己制作一份小礼物送给自己的妈妈。笔者一直在班级里开展这样的活动:在每学期开始的时候,我就有意识地记住每个学生的生日,然后,在每个学生生日的当天,我都会在当天的早自习结束的时候,向全体同学宣布当天是某一位学生的生日,让大家一起为其唱一首生日歌祝福他。同时,也让学生自己记住自己的生日是母亲的受难日,每一位母亲为了孩子的出生都付出了艰辛的努力。这样做,一方面表达了班主任对每一个学生的关注,另一方面也借此教育学生学会感恩。

三、可以通过不同的学科对学生进行感恩教育

言传身教是最好的教育方式。平時老师的言行,学生都在不知不觉中看到,甚至模仿。平时班主任对学生的无私付出,为班级的管理和教学工作的努力,学生都会看到眼里,因此班主任要为学生做好榜样。同时,班主任也要利用不同学科的特点,借此对学行进行感恩教育的渗透。例如,《语文》和《思想品德》都是非常适合对学生进行感恩教育的课程。通过课堂教学内容,不仅可以帮助学生了解我们当下所处的社会环境,同时,也要培养学生对社会、对祖国、对家乡的热爱,增强其责任感,并鼓励学生将这种感情运用到自己的实际行动中,通过自己的行动来回报社会,增强其作为主人翁的感情。

四、通过作业的方式让学生进行感恩的实践

孝敬父母是中华民族的传统美德,每一个孩子对父母的孝敬都不是无缘无故的,都是产生于自己心中对父母的感恩。他们在自己成长的过程中,亲眼见到了父母为了自己的成长的辛勤付出,懂得了父母对自己的良苦用心,他们才会产生感恩之心,才会将这种感情付于实践,孝敬父母。

老师可以针对学生的感恩之心,在课后布置一些“家庭作业”,如回到家中,认真完成作业,不用父母操心;多和父母说说自己在学校生活中的趣事为父母解乏;.多帮父母做一些家务活;父母下班回家,给父母倒一杯牛奶……这些虽然都是一些小事,但是可以让学生通过自己的实际行动来回报父母,感恩父母。

同时,老师更要在让学生学会感恩父母的基础上,让学生将这种感恩之情扩展到社会,让学生学会感谢亲朋好友,感谢为自己的成长辛勤付出的老师,感谢在自己学习中与自己一起共同成长的对手或伙伴,同时,鼓励学生好好学习,提升自己各方面的素养,为将来有能力回报社会做好充分的准备。

通过以上的一系列工作,笔者前不久在一次家长会上了解到,现在很多学生回到家中,与父母的交流也多了起来,说话的语气也比上小学的时候好了很多,在家时,也常帮着做一些力所能及的事情。这也正是我们作为老师和父母从孩子那里得到的最大的安慰。

五、结束语

对学生进行感恩教育,是每一位中学班主任的必修课。在工作中多结合社会的新闻、广告等材料,在特殊的日子进行渗透,在各科的课堂教学中进行教育,在课下让学生通过自己的实际行动去感恩父母、感谢老师、回报社会。总之,老师的言传身教,正确的引导和教育都是对学行进行感恩教育的很好的方式和途径。初中阶段是人生价值观形成的关键时期,每一个班主任都要在日常的生活中,多渗透对学生的感恩教育,为培养具有健全人格的中学生而努力。

参考文献:

[1] 汤利刚.初中班主任工作中渗透感恩教育的实践研究[J].神州,2012,(09).

[2] 覃芳勤.班主任应具备的魅力[J].广西教育,2014(01).

献给新手的渗透思路 篇4

1.cat /etc/nsswitch

看看密码登录策略我们可以看到使用了file ldap模式

2.less /etc/ldap.conf

base u=People,dc=unix-center,dc=net

找到ou,dc,dc设置

3.查找管理员信息

匿名方式

ldapsearch -x -D “cn=administrator,cn=People,dc=unix-center,dc=net” -b “cn=administrator,cn=People,dc=unix-center,dc=net” -h 192.168.2.2

有密码形式

ldapsearch -x -W -D “cn=administrator,cn=People,dc=unix-center,dc=net” -b “cn=administrator,cn=People,dc=unix-center,dc=net” -h 192.168.2.2

4.查找10条用户记录

ldapsearch -h 192.168.2.2 -x -z 10 -p 指定端口

实战:

1.cat /etc/nsswitch

看看密码登录策略我们可以看到使用了file ldap模式

2.less /etc/ldap.conf

base u=People,dc=unix-center,dc=net

找到ou,dc,dc设置

3.查找管理员信息

匿名方式

ldapsearch -x -D “cn=administrator,cn=People,dc=unix-center,dc=net” -b “cn=administrator,cn=People,dc=unix-center,dc=net” -h 192.168.2.2

有密码形式

ldapsearch -x -W -D “cn=administrator,cn=People,dc=unix-center,dc=net” -b “cn=administrator,cn=People,dc=unix-center,dc=net” -h 192.168.2.2

4.查找10条用户记录

ldapsearch -h 192.168.2.2 -x -z 10 -p 指定端口

渗透实战:

1.返回所有的属性

ldapsearch -h 192.168.7.33 -b “dc=ruc,dc=edu,dc=cn” -s sub “objectclass=*”

version: 1

dn: dc=ruc,dc=edu,dc=cn

dc: ruc

objectClass: domain

dn: uid=manager,dc=ruc,dc=edu,dc=cn

uid: manager

objectClass: inetOrgPerson

objectClass: organizationalPerson

objectClass: person

objectClass: top

sn: manager

cn: manager

dn: uid=superadmin,dc=ruc,dc=edu,dc=cn

uid: superadmin

objectClass: inetOrgPerson

objectClass: organizationalPerson

objectClass: person

objectClass: top

sn: superadmin

cn: superadmin

dn: uid=admin,dc=ruc,dc=edu,dc=cn

uid: admin

objectClass: inetOrgPerson

objectClass: organizationalPerson

objectClass: person

objectClass: top

sn: admin

cn: admin

dn: uid=dcp_anonymous,dc=ruc,dc=edu,dc=cn

uid: dcp_anonymous

objectClass: top

objectClass: person

objectClass: organizationalPerson

objectClass: inetOrgPerson

sn: dcp_anonymous

cn: dcp_anonymous

2.查看基类

bash-3.00# ldapsearch -h 192.168.7.33 -b “dc=ruc,dc=edu,dc=cn” -s base “objectclass=*” | more

version: 1

dn: dc=ruc,dc=edu,dc=cn

dc: ruc

objectClass: domain

3.查找

bash-3.00# ldapsearch -h 192.168.7.33 -b “” -s base “objectclass=*”

version: 1

dn:

objectClass: top

namingContexts: dc=ruc,dc=edu,dc=cn

supportedExtension: 2.16.840.1.113730.3.5.7

supportedExtension: 2.16.840.1.113730.3.5.8

supportedExtension: 1.3.6.1.4.1.4203.1.11.1

supportedExtension: 1.3.6.1.4.1.42.2.27.9.6.25

supportedExtension: 2.16.840.1.113730.3.5.3

supportedExtension: 2.16.840.1.113730.3.5.5

supportedExtension: 2.16.840.1.113730.3.5.6

supportedExtension: 2.16.840.1.113730.3.5.4

supportedExtension: 1.3.6.1.4.1.42.2.27.9.6.1

supportedExtension: 1.3.6.1.4.1.42.2.27.9.6.2

supportedExtension: 1.3.6.1.4.1.42.2.27.9.6.3

supportedExtension: 1.3.6.1.4.1.42.2.27.9.6.4

supportedExtension: 1.3.6.1.4.1.42.2.27.9.6.5

supportedExtension: 1.3.6.1.4.1.42.2.27.9.6.6

supportedExtension: 1.3.6.1.4.1.42.2.27.9.6.7

supportedExtension: 1.3.6.1.4.1.42.2.27.9.6.8

supportedExtension: 1.3.6.1.4.1.42.2.27.9.6.9

supportedExtension: 1.3.6.1.4.1.42.2.27.9.6.23

supportedExtension: 1.3.6.1.4.1.42.2.27.9.6.11

supportedExtension: 1.3.6.1.4.1.42.2.27.9.6.12

supportedExtension: 1.3.6.1.4.1.42.2.27.9.6.13

supportedExtension: 1.3.6.1.4.1.42.2.27.9.6.14

supportedExtension: 1.3.6.1.4.1.42.2.27.9.6.15

supportedExtension: 1.3.6.1.4.1.42.2.27.9.6.16

supportedExtension: 1.3.6.1.4.1.42.2.27.9.6.17

supportedExtension: 1.3.6.1.4.1.42.2.27.9.6.18

supportedExtension: 1.3.6.1.4.1.42.2.27.9.6.19

supportedExtension: 1.3.6.1.4.1.42.2.27.9.6.21

supportedExtension: 1.3.6.1.4.1.42.2.27.9.6.22

supportedExtension: 1.3.6.1.4.1.42.2.27.9.6.24

supportedExtension: 1.3.6.1.4.1.1466.7

supportedExtension: 1.3.6.1.4.1.4203.1.11.3

supportedControl: 2.16.840.1.113730.3.4.2

supportedControl: 2.16.840.1.113730.3.4.3

supportedControl: 2.16.840.1.113730.3.4.4

supportedControl: 2.16.840.1.113730.3.4.5

supportedControl: 1.2.840.113556.1.4.473

supportedControl: 2.16.840.1.113730.3.4.9

supportedControl: 2.16.840.1.113730.3.4.16

supportedControl: 2.16.840.1.113730.3.4.15

渗透测试工作思路 篇5

Information Systems Penetration Testing Principle And

Model Analysis

姜志坤

摘 要:信息化是当今世界发展的大趋势,是推动经济社会变革的重要力量。大力推进信息化,是覆盖我国现代化建设全局的战略举措,是贯彻落实科学发展观,全面建设小康社会、构建社会主义和谐社会和建设创新型国家的迫切需要和必然选择。如何以信息化提升综合国力,如何在信息化快速发展的同时确保国家信息安全,这已经成为各国政府关心的热点问题。信息安全已经从国家政治、经济、军事、文化等领域普及到社会团体、企业,直到普通百姓,信息安全已经成为维护国家安全和社会稳定的一个重要因素。随着国家信息安全测评工作的推进和深化,对信息系统安全测试的要求也逐步提高,渗透测试作为信息系统安全测试的一项高级别和高难度的测试项目,在信息安全测评中逐渐受到高度重视并得到推广应用。本文通过对目前渗透测试的过程和原理做了详细的分析, 并提出了测试方法和测试模型。

关键字:信息安全 渗透测试 测试项目 测试模型

1.渗透测试概述

作为网络安全防范的一种新技术,对于网络安全组织具有实际应用价值。但要找到一家合适的具有授权资质的公司实施渗透测试并不容易。

近来防御黑客与病毒的攻击已经成为一种非常困难的工作。保护自己的信息系统不受恶意攻击者的破坏,维护系统安全已经成了企业里非常重要的工作。以金融业为例,某银行部署了多台防火墙,购买入侵检测系统、网络安全审计系统等,也定期进行漏洞扫描,应该很安全,但黑客入侵、储户数据遭窃、网站遭受攻击等安全事件仍层出不穷,也许被黑客入侵的机率只有0.001%,但发生后就是100%。

(一)渗透测试(Penetration Testing)网络定义

定义一:渗透测试是一个在评估目标主机和网络的安全性时模仿黑客特定攻击行为的过程。详细地说,是指安全工程师尽可能完整地模拟黑客使用的漏洞发现技术和攻击手段,对目标的安全性作深入的探测,发现系统最脆弱环节的过程。

全的认知程度,使所有成员意识到自己的岗位在整个组织的安全中不可或缺的地位,有助于整体安全意识的提升。

(六)渗透测试的作用

渗透测试的作用一方面在于,解释所用测试设备在测试过程中所得到的结果。即使您对信息系统进行漏洞扫描。但也并不能全面地了解漏洞扫描得到的结果,更别提另外进行测试,并证实漏洞扫描系统所得报告的准确性了。

(七)怎么进行渗透测试

除了找到合适工具以及具备资质的组织进行渗透测试外,还应该准确确定测试范围。攻击者会借助社会工程学、偷窃、贿赂或者破门而入等手法,获得有关信息。真正的攻击者是不会仅仅满足于攻击某个企业网络的。通过该网络再攻击其它公司往往是黑客的惯用伎俩。攻击者甚至会通过这种方法进入企业的ISP。

为了从渗透测试上获得最大价值,应该向测试组织提供尽可能详细的信息。同时签署保密协议,这样,您就可以更放心地共享策略、程序及有关网络的其它关键信息。

还要确定被测信息系统,哪些系统需要测试。虽然你不想漏掉可能会受到攻击的某个系统,但可能仍想分阶段把渗透测试外包出去,以便每个阶段专注于网络的不同部分;同样您也可以作为一个大的信息系统来测试,对各个子系统进行关联分析,从而有效地降低系统被攻破的风险。

2.渗透测试原理 2.1 渗透测试原理

渗透测试就是利用网络安全扫描器、专用安全测试工具和富有经验的安全工程师的人工经验对网络中的核心服务器及重要的网络设备,包括服务器、网络设备、防火墙等进行非破坏性质的模拟黑客攻击,侵入系统并获取机密信息并将入侵的过程和细节产生报告给用户。

2.2 渗透测试过程

在一个实际的渗透测试过程中,渗透测试项目的实施一般分为三个阶段:前期准备阶段、渗透测试阶段、后期总结阶段。

(一)前期准备阶段 1)委托书确认

签署授权委托书,并同意测试工程师实施渗透测试。

3.渗透测试分类及方法 3.1测试分类

(一)按信息获取方式分类

从渗透的前期资料准备和信息获得来看,渗透测试/攻击可分为以下3类。1)黑盒(Black Box)渗透

黑盒(Black Box)渗透测试通常是从目标网络的外部进行渗透模拟的,这意味着,除了被测试目标的已知公开信息外,不提供任何其他信息。渗透者完全处于对目标网络系统一无所知的状态,只能通过Web、E-mail等网络对外公开提供的各种服务器,进行扫描探测,从而获得公开的信息,以决定渗透的方案与步骤。

通常来说,黑盒渗透测试用于模拟来自网络外部的攻击行为。2)白盒(White Box)渗透

白盒(White Box)渗透测试与黑盒渗透测试相反,渗透测试者可以通过正常渠道,向请求测试的机构获得目标网络系统的各种资料,包括网络拓扑结构、用户账号、操作系统、服务器类型、网络设备、代码片断等信息。

渗透者可从目标网络系统外部或内部两个地点,进行渗透模拟测试,但是通常而言,这类测试是模拟网络内部人员的越权操作。

3)灰盒(Gray Box)渗透

灰盒(Gray Box)渗透测试介于以上两者之间。

(二)按目标对象分类

从渗透模拟攻击的对象来看,渗透测试又可分为以下几种。1)主机操作系统渗透

对目标网络中的Windows、Linux、UNIX等不同操作系统主机进行渗透测试。本书重点讲述的是对Windows主机操作系统的渗透。

2)数据库系统渗透

对MS-SQL、Oracle、MySQL等数据库系统进行渗透测试,这通常是对网站的入侵渗透过程而言的。

3)网站程序渗透

渗透的目标网络系统都对外提供了Web网页、E-mail邮箱等网络程序应用服务,这是渗透者打开内部渗透通道的重要途径。

1)相关边缘信息收集

在这一步骤中,攻击者会通过网络搜索、实地了解等各种方法,充分地利用网络搜索和社会工程学,采集攻击目标的相关信息。

获取的信息内容和方式包括目标网络系统中的一些边缘信息,如目标网络系统公司的结构、各部门职能、重要机构分支,以及内部员工账号组成、身份识别方式、邮件联系地址、QQ或MSN号码、各种社交网络账号与信息、管理员的网络习惯等。

2)网络信息收集

在这一步骤中,要收集目标网络的各种网络信息,所使用的手段包括Google Hacking、WHOIS查询、DNS域名查询和网络扫描器等。

最终的目的是要描绘出目标网络拓朴结构、公司网络所在区域,子公司IP地址分布,VPN接入地址、各种重要服务器的分布、网络连接设备等信息。

3)端口/服务信息收集

在这一步骤中,利用各种通用的端口服务扫描工具,扫描目标网络中对外提供服务的服务器,查询服务器上开放的各种服务,例如,Web、FTP、MySQL、SNMP等服务。

4)漏洞扫描

在上面的步骤中,获得目标网络各服务器开放的服务之后,即可对这些服务进行重点扫描,扫出其所存在的漏洞。

例如:针对操作系统漏洞扫描的工具有X-Scan、ISS、Nessus、SSS、Retina等;针对Web网页服务的扫描工具有SQL扫描器、文件PHP包含扫描器、上传漏洞扫描工具,以及各种专业全面的扫描系统,如AppScan、Acunetix Web Vulnerability Scanner等(见图3-1);针对数据库的扫描工具有Shadow Database Scanner、NGSSQuirreL,以及SQL空口令扫描器等。

另外,许多入侵者或渗透测试员也有自己的专用扫描器,其使用更加个性化。

(三)纵向提升权限

通过上面的步骤,攻击者可能已成功入侵目标网络系统对外的服务器,或者内部某台主机,此时需要完全获得主机的最高控制权。

虽然此时攻击者已获得了主机的一些控制权限,但是对于进一步的渗透攻击来说还是不够。例如,攻击者入侵了某台Web服务器,上传了Webshell控制网站服务器,然而却没有足够的权限安装各种木马后门,或者运行一些系统命令,此时攻击者就需要提升自己的权限。

纵向权限提升按入侵方式来分,主要可分为以下两类。1)Webshell提权

Webshell提权是渗透入侵中经常遇到的一种情况,攻击者常常会通过Web网站脚本途径入侵网站服务器,并上传Webshell。通过Webshell对主机进行操作时获得的控制权限往往是继承了Web账号权限的,完全不足以对目标主机进行系统级的控制操作。因此攻击者常常会采用各种手段,提升Webshell的操作权限。

2)账号提权

账在权限提升过程中,攻击者通过扫描或密码破解等方式,可能会获取目标主机的系统登录账号,或数据库访问账号等。不过这些账号通常是权限不足,在进行进一步的渗透测试时,可能会没有足够的权限打开一些密码存储文件,无权安装嗅探工具,甚至没有权限执行一些很基本的命令,这时必须进行提权,以获取更高级别的账号控制权。

在进行纵向提权操作步骤中,所采用的提权手段是相似的,都是利用目标主机系统上的系统或软件漏洞进行提权。具体的提权手段包括系统或软件的本地溢出攻击、密码破解、服务替换等,这在Webshell提权中体现得尤为明显。

需要说明的是,如果攻击者采用远程溢出,或者通过木马诈骗运行等方式入侵控制主机,获得的将是最高的系统权限,此时无须进行纵向提权的步骤。

(四)开辟连接通道,突破内网环境限制

在对内网进行渗透入侵之前,攻击者还需要突破各种网络环境限制,例如,内部网络作为Vlan划分隔离,或者在网关设置了防火墙无法进行连接等。

其中最重要的一点就是,如何利用已控制的主机,连接攻击其他内部主机。由于目标网络内的主机是无法直接进行连接的,因此攻击者往往会使用代理反弹连接到外部主机,会将已入侵的主机作为跳板,利用远程终端进行连接入侵控制。

在此过程中,涉及的攻击手段更加多样,如防火墙杀毒软件的突破、代理的建立、账号后门的隐藏破解、3389远程终端的开启和连接等。

图4-1 渗透测试模型

4.2 模型分析

渗透测试模型从信息收集到结果报告的生成过程是全自动的,无人干预,在此过程中,信息收集的结果筛选和各模块之间的参数传递是一个实现上的难题;另外,漏洞及漏洞利用程序的及时更新也是渗透测试软件的一个关键技术。

(一)信息收集的结果筛选和各模块之间的参数传递

参考文献

渗透测试工作思路 篇6

1.互联网思维的核心是()√

A B C D 流量思维

用户思维

平台思维

简约思维

正确答案: B

2.同类贸易行为在上、下游之间持续发生,这是供应链金融的()√

A B C D 自偿性

封闭性

连续性

多元性

正确答案: C 多选题

3.以下属于互联网思维的是()√

A B C D 用户思维

流量思维

大数据思维

跨界思维

正确答案: A B C D

4.面对互联网金融的竞争,银行物理网点需要进行哪些转变()√

A B C 从产品转向服务

从被动服务转向主动服务

与互联网金融进行竞争 D 与互联网金融从竞争转向合作

正确答案: A B D

5.轻型银行,主要是轻以下哪些方面()√

A B C D E 轻资产

轻资本

轻组织

轻文化

轻负债

正确答案: A B C D E

6.供应链金融的特点,包括()×

A B C D 参与主体多元化

具有自偿性、封闭性和连续性

突破了传统的授信视角

资产质量相对有保证

正确答案: A B C D

7.美国社区银行的标准包括()√

A B C D 总资产规模10亿美元以下

是商业银行

服务的客户是小微和零售

总资产规模15亿美元以下

正确答案: A B C

8.供应链金融涉及到的参与主体为()√

A B 金融机构

融资企业 C D 核心企业

物流企业

正确答案: A B C D 判断题

9.零售业务所占比重越大,银行经营的稳定性越高。√

正确

错误 正确答案: 正确

10.互联网金融,是在技术变革推动下,以互联网思维重塑金融商业业态和经营管理模式。√

正确

Web应用系统的渗透测试研究 篇7

关键词:等保测评,渗透测试,Web应用系统

1 引言

当前,网络信息技术的发展变化日新月异,各种新技术、新产品,特别是新应用纷至叠呈,让人目不暇接。面对信息技术势不可挡的飞速发展,信息安全也面临着严峻的现实考验。2011年底,一场“泄密风波”突如其来,包括国内最大的程序员网站CSDN、天涯社区等数家知名网站的用户信息外泄,在网上曝光的用户信息条数过亿,被称为“中国互联网有史以来波及面最广、规模最大、危害最深的泄密事件”。Web应用系统的安全也被提升到了一个更严峻的高度。作为等级保护测评中极重要的一环,Web应用系统的渗透测试[2]是一项极具重要与挑战的工作,它能高度仿真地反映客户系统面临的风险,充分暴露和发掘潜在的漏洞,揭示系统中存在的安全缺陷,判断当前信息系统的安全状况,这对于保证测评强度是十分必要的,而针对Web应用系统的渗透测试,其艰巨性、复杂性和专业性客观存在,不仅需要测试者熟悉Web应用系统的功能原理,还需要对Web中间件[3]、数据库系统[4]、Web程序开发语言等有一定的掌握了解。针对此现状,介绍了Web应用系统中常见的安全弱点,以及实施渗透测试的流程与具体方法。

2 等级保护对渗透测试的要求

在《信息系统安全等级保护测评要求》中规定,对于三级及以上的信息系统应进行渗透测试,包括网络访问控制、边界和主要网络设备、主要服务器操作系统网络设备、主要应用系统等,通过使用各种渗透测试技术,来验证相关设备或系统是否存在明显的弱点。

3 常见安全弱点

3.1 轻信用户输入

对客户端输入未过滤或过滤不严,攻击者通过构造语句触发注入[5]、XSS跨站[6]或其他高危漏洞。

3.1.1 SQL注入

SQL注入,就是将恶意代码插入到字符串中,然后将该字符串传递到数据库中执行。恶意用户通过构造特殊的SQL查询语句可获取到数据库的敏感信息,如数据库账号密码,数据库结构版本信息等。

3.1.2 XSS跨站

XSS也叫CSS(Cross Site Script),跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意脚本代码,当用户浏览该页之时,嵌入其中Web里面的脚本代码会被执行,从而达到恶意攻击用户的特殊目的。

3.1.3 任意文件下载

在传统的文件下载中,如访问“http://www.test.com/help.doc”就能下载Web根目录下的help.doc文件,而如今在许多Web应用系统中,为了防止被盗链或者隐藏文件的路径,便于文件的管理,文件的下载统一由某个文件来实现。在下载前,先由此文件读取待下载文件的二进制流,再返回给用户浏览器端。

如访问:http://www.test.com/download.jsp?file Path=/help.doc就能下载help.doc,攻击者变换提交的file Path值,利用“../”向父目录跳转,从而下载到敏感文件,访问“http://www.test com/download.jsp?file Path=/../../etc/passwd”便可下载到etc下的passwd文件。

3.2 验证单一

在网站中注册新用户时,程序会对用户的信息格式进行判断,如用户名只能为字母与数字组合,手机号码只能为11位数字等等。多数情况下,程序对数据的校验只是在Web前端对用户信息进行判断,忽视了服务端的检查。此时,用户可通过禁用执行Java Script或利用抓包软件修改提交到服务端的数据包从而绕过校验。

3.3 敏感信息泄漏

3.3.1 注释

程序开发中,为了便于源代码的可读性及可维护性,程序员会对关键代码进行注释。如在html中,注释符为“”。这在方便程序开发的同时,也带来了安全隐患。程序开发完毕后,若忽视删除注释信息,攻击者在对Web应用系统攻击前,可通过收集注释信息,熟悉系统功能、流程,从而为随后的攻击做准备。

3.3.2 错误信息

当Web应用程序发生错误时,如果处理不得当,会把相关的错误信息反馈至客户浏览器。这种情况更多见于PHP+My SQL的Web应用,程序人员没有编写正确的的异常处理,在发生错误时,系统便向客户端返回本来是用于调试目的的相关信息。攻击者实施攻击时,会尽可能地使其在页面浏览或提交时,使用不正当的数据或方法,以此期望页面产生错误回馈,从而利用这些信息完成入侵。

4 渗透测试实施方法

在Web应用系统中,从功能上看,大体可分为数据动态显示模块、数据更新发布模块、访问统计模块、后台权限认证模块、日志审计模块等。由于模块数较多,其包括的网页数量也较大,若全部进行人工逐个审核,不仅工作效率得不到保障,而且容易造成页面遗漏,故在渗透测试时应选择以自动化扫描与人工检测相结合的组合方式。

4.1 自动化扫描

用来自动化扫描的工具较多,操作难度也不大。这里简要介绍w3af,它是一个开源的Web应用程序攻击和检查框架,拥有数百个插件,各个插件用来审计不同的安全弱点,如SQL注入、跨站点脚本(XSS)、命令执行、本地和远程文件包含等等。利用w3af可以用向导的方式,根据不同场景灵活配置漏洞扫描策略,全自动化扫描Web漏洞。扫描结束后,能将爬行到的网站页面以目录树的方式显示出来,方便了解网站结构,对随后的人工检测提供基础依据;同时,能以“high、medium、low”对发现的安全弱点分等级显示,并提供验证分析,确定其有效性。

4.2 人工检测

针对逻辑缺陷、敏感信息泄漏与基于动态图形验证码下表单SQL注入等漏洞,自动化扫描工具无法进行有效的发掘,这就需要人工进行检测。

在进行检测时,应先充分分析自动化扫描工具探测出来的网站目录结构,了解Web应用系统的大体功能、框架模块。同时,从程序员对页面文件的命名上,猜测程序开发人员的命名喜好与规律,探测是否存在Web应用系统后台登录口、后台管理页面、用户添加、用户密码修改等页面;

通过人工分析Web应用系统的业务功能,排查是否存在逻辑缺陷;

利用代理软件如Webscarab、Http Watch截获提交和返回的数据包,获取客户端与服务器端最终数据交互信息,修改再提交,绕过Java Script等客户端程序语言的校验,从而探测是否存在验证单一的漏洞;

在某些对用户权限分级管理的系统中,查看用普通用户登录前后Cookie信息的变化,探测系统对权限的区分是否根据Cookie中某些字段的值,如“Power=XXX”,若值为0,则不拥有管理员权限,为1则拥有,利用Cookie修改工具更改为1后,判断是否存在Cookie欺骗漏洞。

5 结语

随着Web 2.0的使用,网站与用户的交互大大提升,作为用户私密数据的载体,其重要性不言而喻。在等级保护测评工作中,对Web应用系统的渗透测试,围绕对客户端的输入、服务端的输出这两大块进行检测,全面评估系统潜在的安全风险,减小由于Web应用安全漏洞带来的损失,具有重要的理论意义和实用价值。

参考文献

[1]GBT22239-2008信息系统安全等级保护基本要求.

[2]北京国联天成信息技术有限公司:挂马及渗透测试技术[R].

[3]刘鹏.Web Service资源管理与应用的研究[D].北京工业大学,2003.

[4]刘云生,潘琳.实时数据库系统的内存数据库组织与故障恢复[J].小型微型计算机系统,2001,(05).

[5]陈运栋.谈SQL注入式攻击的典型手法和检测防范措施[期刊论文].微型电脑应用,2004,(09).

最佳测试用例选择算法的改进思路 篇8

【关键词】测试用例;最佳测试用例;算法;软件测试;覆盖准则

程序测试是保证程序质量和可靠性的重要因素。根据程序的开发阶段,测试可以分为单元测试,集成测试,系统测试和验收测试[2]。此外,如果在程序的开发阶段和维护阶段被修改,则需要进行回归测试。因为测试用例被重用,硬件兼容性测试也被归类为回归测试。

为了测试程序,测试人员必须首先编写测试用例(输入数据和预期输出),然后逐一执行每个测试用例。测试方法有两种,即白盒测试和黑盒测试。白盒测试基于程序结构准备测试案例,而黑盒测试基于程序规范来准备测试用例。由于顺序程序、并发程序、面向过程的程序和面向对象的程序的程序结构不同,白盒测试对这些程序的测试方法也将有所不同。

程序测试是保证程序质量和可靠性的重要因素。有效和高效的程序测试是软件测试中的一个重要任务。如果被测试的程序较为复杂,使用覆盖准则来选择测试案例是一个有效和有系统的方式,选择一个覆盖准则需要最少的测试用例数量,以尽量减少测试工作量。最佳的测试用例的选择问题是选择满足所需的覆盖准则的情况下测试用例的最小数量。目前有很多可行的最佳测试用例的选择问题研究,然而,这些研究有以下的不足之处:

(1)最优路径极选择方法应用到一个复杂的面向过程的程序时,派生的路径集可能无法在某些阶段保持最优。

(2)现有的测试用例集选择方法在回归测试中不能确保测试用例集派生是最优的。

(3)最佳测试用例选择问题在面向对象的程序测试中很少被提到。

下面详细叙述这些不足之处。

结构测试是一种白盒测试技术,一般是应用在面向过程的程序单元测试和集成测试阶段。面向过程的程序的一个单元就是一个模块,如:一个过程或一个函数。当对一个顺序的面向对象程序应用结构测试时,测试用例编写基于该模块的路径。因此,本模块中的所有路径在编写测试用例之前生成完毕,有了众多的模块路径(例如一个复杂的模块),通过一定的覆盖准则就能够系统地测试该模块,从而减轻定位程序错误的工作量。

为了满足需要的覆盖准则,需要选择一个完整的路径集合的一个子集,一般称之为测试路径集。假设测试每个路径的成本是一样的,则所需的路径集,满足所需的最小的路径覆盖准则。寻找满足覆盖准则的最小路径集的问题,就是所谓的最优路径集选择问题。目前,有两种方法来解决最优路径集的选择问题:0-1最优路径集选择法和最小流量法。比较这两种方法发现,前者比后者更有效,因为它可以适用于种类繁多的限制、成本函数和覆盖准则,而最小流量的方法只能适用于所有节点和所有分支的覆盖准则。一般来说,可能存在一个以上的最优路径集满足需要的覆盖准则,但是这两种方法只输出一个最优路径集。

一个覆盖准则C2比另一个覆盖准则C1强(C2包含C1),当且仅当任何能满足C2的路径集2也满足C1。例如,所有分支覆盖准则强于所有节点覆盖准则。为了有效地测试一个复杂的模块,测试者通常会选择最弱的覆盖准则C1(例如,所有节点),并找到一个最佳的路径集P1,以满足C1,然后选择一个更强大的覆盖标准C2(例如,所有分支),并找到另一个最优路径设置P2,以满足C2。这个过程一直持续,直到程序完全测试。这种方法被称为增量的结构测试。对于一个覆盖准则Ci(i>1),在路径集Pi中的一些路径可能已在之前被测试过。由于只有新加入的路径应该在这个阶段进行测试,因此需要满足Ci并包含最少新路径的路径集。当前的最优路径集的选择方法仅仅被设计为找到满足需要的覆盖准则的最小路径集。由于这些方法不考虑以前选定的路径集,找到的路径集可能不包含新路径的最小数量。因此,应制定一个新的最优路径集选择增量结构测试方法。

在硬件兼容性测试和软件回归测试中,存在测试用例集T和新的需求集R,并找到满足所有R中的需求的T的一个最小的子集,被称为最佳的代表集选择问题。目前,一些启发式的方法能找到T满足R所有需求的一个子集,但是这些启发式方法获取的的子集不能保证是最佳的(即最小),他们不能应用于有不同测试成本的不同测试案例。因此,最佳的代表性选择的问题仍未解决。

相对于面向过程的编程,面向对象编程具有设计方便、代码编写和重用的优势。因此,随着面向对象分析和设计方法的成熟,越来越多的编程将通过面向对象编程语言实现。Java编程语言与其他面向对象的编程语言相比,具有以下优点:平台独立性,内置的并行指令,和网页内的可执行文件。因此,Java编程语言是越来越受欢迎。

Java编程语言是一种并发的面向对象编程语言,也就是说,它提供了面向对象和并发编程指令。如果一个Java程序不包含一个语句来调用线程对象的start()方法,则它被称为顺序Java程序,因为正在运行的Java程序中只有一个线程在工作。否则,该程序被称为并发Java程序,因为每个调用start()方法的语句将动态创建一个新的线程来执行Thread对象的run()方法。

一些研究涉及面向对象的程序测试。然而,这些研究大多集中在连续的面向对象的程序测试和使用C++作为目标编程语言。处理并发的面向对象的程序测试或Java程序测试的研究很少。此外,很少有研究讨论到在面向对象的程序测试中的最佳测试案例的选择问题。

针对以上不足之处,可以采取以下的改进措施:

首先,由于覆盖准则C2是强于覆盖准则C1的,因此路径集P1中的路径也应该部分地满足覆盖准则C2。这意味着一些在C2中的组件已经满足P1的路径。因此,最优路径集可以从满足其余未发现组件的其余未选中的路径中选择。所获得的最优路径集和以前选定的最优路径集的合集P1满足C2,并且包含的未经检验的路径的最小数量。基于这种思想,最优路径集选择方法可以尝试增量结构测试。

其次,某些文献中提到,解决最佳代表集的选择问题就等于解决集覆盖问题。由于解决上面介绍的最优路径选择问题也等于解决集覆盖问题,因此可以利用解决选择最优路径集问题的方法来解决最佳代表集选择的问题。

第三,如果讨论并发的Java程序测试中的最佳测试用例选择问题,首先要了解测试用例的特点。然而,目前并没有现成的并发的Java程序测试用例的生成方法。在研究并发Java程序的测试方法时,可以参考顺序Java程序的测试方法,以及基于该测试用例特点的最佳的测试用例的选择问题。

参考文献

[1]L.L.Beck,System software:an introduction to system programming,3rd edition,Addison-Wesley,1997.

[2]B.Beizer,Software testing techniques,Data System Analysts Inc.,Pennsanken,New Jersey,1984.

[3]R.V.Binder,“Testing object-oriented software:a survey,”Software Testing,Verification and Reliability,Vol.6,1996,pp.125-252.

[4]G.Booch,Object-oriented analysis and design with applications,2nd edition,Benjamin/Cummings,1994.

作者简介:王大伟(1982—),男,安徽阜阳人,研究生在读,浙江工业职业技术学院讲师,研究方向:微机组装与维修,数据恢复。

上一篇:邱庄小学十一假期安全教育下一篇:职场经历分享