• 回答数

    5

  • 浏览数

    208

小米一箩筐
首页 > 论文发表 > web渗透测试论文发表

5个回答 默认排序
  • 默认排序
  • 按时间排序

LiaoL童鞋

已采纳

[计算机科学与技术 ]Web服务缓冲区溢出渗透测试的设计与实现 摘 要缓冲区溢出漏洞是安全漏洞中最为常见的一种形式。更为严重的是缓冲区溢出漏洞占了远程网络攻击的绝大多数,这种攻击可以使的一个匿名的Internet用户有机会获得一台主机的部分或全部的控制权。由于这类攻击使任何人都有可能取得主机的控制权,所以它代表了一类极其严重的安全威胁。因此,以缓冲区溢出作为一种渗透测试的手段是非常有意义的。缓冲区溢出是渗透测试中的重要手段。现在大多数缓冲区溢出程序都是基于C/S架构的,所以其使用的便捷性受到一定限制。本课题采用现在最流行的B/S架构,并且最终实现了将缓冲区溢出作为Web服务来检测远程主机有无溢出漏洞并提醒用户尽快修补此漏洞的目的。本文深入介绍了缓冲区溢出的原理,以及三种常见的缓冲区溢出漏洞;实例化地介绍了缓冲区溢出程序的执行流程;shellcode的编写技术;Java网络编程技术。在对原理研究的基础之上,本文主要给出了缓冲区溢出作为Web服务的设计和实现过程以及Web服务的其他辅助功能块(网络安全新闻管理、网络安全论坛)的设计和实现。其中缓冲区溢出模块和监听模块采用JavaBean技术实现,其他部分均采用JSP技术加以实现。总的来说,本渗透测试平台实现了缓冲区溢出的方便性和广范性以及安全性,并且可以加载任意的已经编译成可执行文件的溢出程序。比起传统的C/S架构下的测试平台前进了一大步。关键字:渗透测试、缓冲区溢出、JSP目 录摘要 1Abstract 2第一章 绪论 51.1 课题背景 51.2渗透测试概述 51.2.1渗透测试的的专业性 61.2.2 渗透测试的三个阶段 61.3 论文安排 8第二章 缓冲区溢出攻击技术 92.1 缓冲区溢出基本原理 92.2 常见的缓冲区溢出形式 112.2.1 栈溢出 112.2.2 堆溢出 122.2.3 格式化字符串溢出 132.3 缓冲区溢出执行流程 162.4 shellcode技术 192.4.1 shellcode的编写语言 192.4.2 shellcode本身代码的重定位 202.4.3 shellcode编码 21第三章 Java网络编程技术介绍.233.1 JavaBean技术 233.1.1 JavaBean的概念 233.1.2 JavaBean的特性 233.1.3 JavaBean的属性23 3.1.4 JavaBean在JSP页面里的部署243.2 socket网络编程技术 .243.3 Java数据流 253.3.1 数据流的基本概念 253.3.2 数据流的分类介绍 25第四章 缓冲区溢出渗透测试平台的设计与实现 274.1 测试平台框架设计274.1.1整体框架设计 274.1.2网络安全新闻发布模块设计 284.1.3网络安全论坛模块设计 294.1.4缓冲区溢出渗透测试模块设计 314.2 缓冲区溢出渗透测试编码实现 344.2.1缓冲区溢出漏洞选择 344.2.2溢出模块实现 344.2.3监听模块实现 344.2.4本地执行命令实现 364.2.5缓冲区溢出状态实现 39第五章 实验设计和实验数据 425.1实验准备 425.2 SqlServer2000打sp3补丁前 435.2.1实验数据 435.3 SqlServer2000打sp3补丁后 455.3.1实验数据 45结束语 47参考文献 48致 谢 49

339 评论

风子武nandy

什么是渗透测试?

渗透测试,是渗透测试工程师完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标网络、主机、应用的安全作深入的探测,发现系统最脆弱的环节。

如何进行Web渗透测试?

完整web渗透测试框架当需要测试的web应用数以千计,就有必要建立一套完整的安全测试框架,流程的最高目标是要保证交付给客户的安全测试服务质量。

1、立项:项目建立,时间安排,人力分配,目标制定,厂商接口人确定;

系统分析&威胁分析:针对具体的web应用,分析系统架构、使用的组件、对外提供的接口等,以STRIDE为威胁模型进行对应的安全威胁分析,输出安全威胁分析表,重点关注top3威胁;

制定测试用例:根据威胁分析的结果制定对应的测试用例,测试用例按照模板输出,具备可执行性;

测试执行&漏洞挖掘:测试用例执行&发散测试,挖掘对应的安全问题or漏洞;

问题修复&回归测试:指导客户应用开发方修复安全问题or漏洞,并进行回归测试,确保安全问题or漏洞得到修复,并且没有引入新的安全问题;

项目总结评审:项目过程总结,输出文档评审,相关文档归档。

2、Web应用的渗透测试流程

主要分为3个阶段,分别是:信息收集→漏洞发现→漏洞利用,下面仔细分析一下各个阶段流程:

一、信息收集

在信息收集阶段,我们需要尽量多的收集关于目标web应用的各种信息,比如:脚本语言的类型、服务器的类型、目录的结构、使用的开源软件、数据库类型、所有链接页面,用到的框架等

脚本语言的类型:常见的脚本语言的类型包括:php、asp、aspx、jsp等

测试方法:

1 爬取网站所有链接,查看后缀

2 直接访问一个不存在页面后面加不同的后缀测试

3 查看robots.txt,查看后缀

服务器的类型:常见的web服务器包括:apache、tomcat、IIS、ngnix等

测试方法:

1 查看header,判断服务器类型

2 根据报错信息判断

3 根据默认页面判断

目录的结构:了解更多的目录,可能发现更多的弱点,如:目录浏览、代码泄漏等。

测试方法

1 使用字典枚举目录

2 使用爬虫爬取整个网站,或者使用google等搜索引擎获取

3 查看robots.txt是否泄漏

使用的开源软件:我们如果知道了目标使用的开源软件,我们可以查找相关的软件的漏洞直接对网站进行测试。

测试方法

指纹识别(网络上有很多开源的指纹识别工具)

数据库类型:对于不同的数据库有不同的测试方法。

测试方法

1 使应用程序报错,查看报错信息

2 扫描服务器的数据库端口(没做NAT且防火墙不过滤时有效)

所有链接页面:这个跟前面的获取目录结构类似,但是这个不只是获取网站的所有功能页面,有时候还可以获取到管理员备份的源码。

测试方法

1 使用字典枚举页面

2 使用爬虫爬取整个网站,或者使用google等搜索引擎获取

3 查看robots.txt是否泄漏

用到的框架:很多网站都利用开源的框架来快速开发网站,所以收集网站的框架信息也是非常关键的。

测试方法

指纹识别(网络上有很多开源的指纹识别工具)

二、漏洞发现

在这个阶段我们在做测试的时候要对症下药,不能盲目的去扫描,首先要确定目标应用是否使用的是公开的开源软件,开源框架等、然后在做深一度的漏洞扫描。

关于开源软件的漏洞发现

开源的软件:常见的开源软件有wordpress、phpbb、dedecms等

开源的框架:常见的开源框架有Struts2、 Spring MVC、ThinkPHP等

中间件服务器:常见的中间件服务器有jboss、tomcat、Weblogic等

数据库服务:常见的数据库服务mssql、mysql、oracle、redis、sybase、MongoDB、DB2等

对于开源软件的测试方法

1 通过指纹识别软件判断开源软件的版本信息,针对不同的版本信息去开放的漏洞数据库查找相应版本的漏洞进行测试

2 对于默认的后台登录页、数据库服务端口认证等入口可以进行简单的暴力破解、默认口令尝试等操作

3 使用开源的漏洞发现工具对其进行漏洞扫描,如:WPScan

关于自主开发的应用

手动测试:这个阶段,我们需要手工测试所有与用户交互的功能,比如:留言、登入、下单、退出、退货、付款等操作

软件扫描:使用免费的软件扫描,如:appscan、wvs、netsparker,burp等

可能存在的漏洞

Owasp关键点

代码安全之上传文件

代码安全之文件包含

代码安全之SSRF

逻辑漏洞之密码重置

逻辑漏洞之支付漏洞

逻辑漏洞之越权访问

平台安全之中间件安全

三、漏洞利用

针对不同的弱点有不同的漏洞利用方式,需要的知识点也比较多。一般这个阶段包括两种方式,一种是手工测试,一种是工具测试

手工测试

手工测试是通过客户端或服务器访问目标服务,手工向目标程序发送特殊的数据,包括有效的和无效的输入,观察目标的状态、对各种输入的反应,根据结果来发现问题的漏洞检测技术。手工测试不需要额外的辅助工具,可由测试者独立完成,实现起来比较简单。但这种方法高度依赖于测试者,需要测试者对目标比较了解。手工测试可用于Web应用程序、浏览器及其他需要用户交互的程序。

这种方式对于有特殊过滤等操作,或者网络上没有成型的利用工具的时候可以使用。

工具测试

网络上有很多好用的免费利用工具,比如针对sql注入的sqlmap、针对软件漏洞的matesploit等。

341 评论

小小米珠

Web渗透 测试 可以从以下几个方面考虑:1.SQL Injection( SQL 注入)(1)如何进行SQL注入测试?首先找到带有参数传递的URL页面,如 搜索页面,登录页面,提交评论页面等等.注1:对 于未明显标识在URL中传递参数的,可以通过查看HTML源代码中的"FORM"标签来辨别是否还有参数传递.在

的标签中间的每一个参数传递都有可能被利用.注 2:当你找不到有输入行为的页面时,可以尝试找一些带有某些参数的特殊的URL,如其 次,在URL参数或表单中加入某些特殊的SQL语句或SQL片断,如在登录页面的URL中输入 /INDEX.ASP?USERNAME='HI' OR 1=1注1:根据实际情况,SQL注入请求可以使用以下语句:' or 1=1- -" or 1=1- -or 1=1- -' or 'a'='a" or "a"="a') or ('a'='a注2:为什么是OR, 以及',――是特殊的字符呢?例子:在登录时进行身份验证时,通常使用如下语句来进行验证:sql=select * from user where username='username' and pwd='password'如 输入http://duck/index.asp?username=admin' or 1='1&pwd=11,SQL语句会变成以下:sql=select * from user where username='admin' or 1='1' and password='11'' 与admin前面的'组成了一个查询条件,即username='admin',接下来的语句将按下一个查询条件来执行.接 下来是OR查询条件,OR是一个逻辑运 算符,在判断多个条件的时候,只要一个成立,则等式就成立,后面的AND就不再时行判断了,也就是 说我们绕过了密码验证,我们只用用户名就可以登录.如 输入http://duck/index.asp?username=admin'--&pwd=11,SQL语 句会变成以下sql=select * from user where name='admin' --' and pasword='11','与admin前面的'组成了一个查 询条件,即username='admin',接下来的语句将按下一个查询条件来执行接下来是"--"查询条件,“--”是忽略或注释,上 述通过连接符注释掉后面的密码验证(注:对ACCESS数据库无 效).最后,验证是否能入侵成功或是出错的信息是否包含关于 数据库 服务器 的相关信息;如果 能说明存在SQL安 全漏洞.试想,如果网站存在SQL注入的危险,对于有经验的恶意用户还可能猜出数据库表和表结构,并对数据库表进行增\删\改的操 作,这样造成的后果是非常严重的.(2)如何预防SQL注入?从应用程序的角度来讲,我们要做以下三项 工作 :转义敏感字符及字符串(SQL的敏感字符包括“exec”,”xp_”,”sp_”,”declare”,”Union”,”cmd”,”+”,”//”,”..”,”;”,”‘”,”--”,”%”,”0x”,”><=!-*/()|”,和”空格”).屏蔽出错信息:阻止攻击者知道攻击的结果在服务端正式处理之前提交数据的合法性(合法性检查主要包括三 项:数据类型,数据长度,敏感字符的校验)进行检查等。最根本的解决手段,在确认客 户端的输入合法之前,服务端拒绝进行关键性的处理操作.从测试人员的角度来讲,在程序开发前(即需求阶段),我们就应该有意识的将安全性检查应用到需求测试中,例如对一个表单需求进行检查时,我们一般检验以下几项安全性问题:需求中应说明表单中某一FIELD的类型,长度,以及取值范围(主要作用就是禁止输入敏感字符)需求中应说明如果超出表单规定的类型,长度,以及取值范围的,应用程序应给出不包含任何代码或数据库信息的错误提示.当然在执行测试的过程中,我们也需求对上述两项内容进行测试.2.Cross-site scritping(XSS):(跨站点脚本攻击)(1)如何进行XSS测试?首先,找到带有参数传递的URL,如 登录页面,搜索页面,提交评论,发表留言 页面等等。其次,在页面参数中输入如下语句(如:Javascrīpt,VB scrīpt, HTML,ActiveX, Flash)来进行测试:alert(document.cookie)最后,当用户浏览 时便会弹出一个警告框,内容显示的是浏览者当前的cookie串,这就说明该网站存在XSS漏洞。试想如果我们注入的不是以上这个简单的测试代码,而是一段经常精心设计的恶意脚本,当用户浏览此帖时,cookie信息就可能成功的被 攻击者获取。此时浏览者的帐号就很容易被攻击者掌控了。(2)如何预防XSS漏洞?从应用程序的角度来讲,要进行以下几项预防:对Javascrīpt,VB scrīpt, HTML,ActiveX, Flash等 语句或脚本进行转义.在 服务端正式处理之前提交数据的合法性(合法性检查主要包括三项:数据类型,数据长度,敏感字符的校验)进行检查等。最根本的解决手段,在确认客户端的输入合法之前,服务端 拒绝进行关键性的处理操作.

296 评论

凭海而居

Web前端的学习时长和课程内容是息息相关的,相对来说课程内容涵盖越广学习的时间也就越久,优就业的Web前端课程学习时长为24周,其中包括专业技能学习和就业指导两部分内容。整体来看的话,Web前端开发需要学习的内容还是比较多的,如果想要学到一定程度大概都是需要5个月左右的

288 评论

石头脾气

《Web渗透与漏洞挖掘》百度网盘pdf最新全集下载:链接:

258 评论

相关问答

  • 试验检测发表的论文

    现代医学发展过程中,随着医学检验到检验医学的飞速发展,在患者的临床诊疗工作中,检验医学结果为临床医学诊疗工作提供着重要的客观诊断和疗效判断依据。下面是我为大家整

    莫非mioamy 3人参与回答 2023-12-06
  • 透析论文发表

    血透室护士专科报名主要工作成绩:1、圆满完成各项基础护理工作,各项专科护理工作。2、自行解决的本科室护理工作的疑难护理问题。3、在护理管理方面,和同事们一起协助

    默灬小米 4人参与回答 2023-12-10
  • 谷歌发表的论文测试

    Google已经被大陆屏蔽了 你可以去Google香港的服务器

    凌空抽筋 5人参与回答 2023-12-11
  • 测试期刊投稿

    《计算机测量与控制》是中国科技核心期刊、中文核心期刊。投稿的话应该主要是数采与处理技术、智能仪表与传感器技术、新产品信息发布方面的信息,投稿信箱是,主要栏目有:

    kisscat0317 2人参与回答 2023-12-06
  • 测试论文怎么发表

    论文发表的方法是:选定想要发表的论文期刊,找到该期刊的投稿方式并投稿,部分期刊要求书面形式投稿,大部分是采用电子稿件形式。在审稿通过以后即可将论文发表在期刊上。

    主君的太阳Soo 7人参与回答 2023-12-12