如何搭建一个提供web网络安全测试的环境
搭建WEB渗透环境。
一般是asp+access+iis等但是利用ASP小旋风就可以搭建一个asp的环境,但是漏洞源码你需要自己寻找。
PHP+MYSQL+阿帕奇,这种黄金三配套你需要拥有一个服务器环境,一般你下载一个XMPP就可以搭建一个阿帕奇+MYSQL的环境,配合这种PHP黄金三件套的环境漏洞平台有,DVWA。
这款测试平台集成了 XSS,SQL,FUZZ,CSRF等常见得漏洞测试
更多详细的漏洞平台参见http://www.freebuf.com/sectool/15111.html
如何搭建一个含有慢速ddos,xss,sql注入,文件上传等漏洞的网站
如何搭建一个含有慢速ddos,xss,sql注入,文件上传等漏洞的网站
XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。
自己搭建的xss平台需要域名吗
一个网站至少要包括域名和主机空间,域名是平时所说的网址,空间是用来放网页文件的。
1、申请域名:域名需要便于记忆、了解,越短越好,可以是您品牌的名称的英文或中文拼音。
2、申请主机空间:如果会用DW等软件设计网页就用虚拟主机;如果不会设计就用速成网站做,会打字就可以做网站,操作简单,功能强大,可以先免费试用一下。
注意:国内主机必须备案成功后才能用您自己的域名访问,网站备案一般需要10个工作日左右;个人网站备案后,不能放企业或产品类的内容。速成网站国际版不需要备案,不受备案限制。
希望可以帮到您,可加一下我。
网站平台搭建该怎么做?
网站平台搭建该怎么做?
一、明确网站平台主题
网站平台的影响面是整个企业,所以一定要在网站平台建设之前确定好网站平台建设的主题。比如需要制作的网站平台是一个用于宣传企业形象的,或是推广企业产品的,还是服务型的。不同的需求对应不同的网站平台主题,也对应着不同的网站平台功能。不想要漫无目的的建站,想要确保网站平台的质量,那就要做好这一步。
二、设计网站平台界面
如今互联网上的网站平台有千千万万个,但是好的网站平台都有自己的特点,这都是要靠网站平台设计的。想要设计出好看又特别的网站平台界面,我们就要考虑到网站平台风格的选择,色彩的搭配,模块的布局等等。
三、制作发布网站平台
上面的都是策划的工作,这里就是实际的网站平台建设操作了。比较简单的方法就是直接套用现成的网站平台模板。当然制作网站平台并不止使用网站平台模板搭建这么简单,还需要进行域名注册、备案、解析,网站平台空间配置等一系列的工作之后,才能进行网站平台发布上线。
四、宣传优化网站平台
特别是对于新网站平台来说,宣传和优化是必不可少的,常见的方法就是广告宣传、seo优化网站平台排名等等方法。
如何搭建个人网站?
之前也写过此类的文章,但是因为当时入门不久,写的文章可能会错误的引导大家。现在,本博客建立的500+天了,博主从一个“菜鸟”转为“有经验的站长”了。
一、域名,就是‘baidu.com’‘smallxu.me’的这种。在访问某一个网站时,必须输入域名(或者IP),然后会通过DNS搜索到域名所解析的IP,然后去访问这个IP。
域名的注册可以去阿里云腾讯云西部数码狗爹等等域名注册商,不建议注册tk gq ga cf ml等免费、非主流域名(搜索引擎虽然口头上说不歧视,但是在实际应用中还是有影响的)
ps:.me域名不支持北京备案(后面讲备案)
二、域名DNS
域名(英语:Domain Name),简称域名、网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。网域名称系统(DNS,Domain Name System,有时也简称为域名)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP地址数串。例如,www.wikipedia.org是一个域名,和IP地址208.80.152.2相对应。DNS就像是一个自动的电话号码簿,我们可以直接拨打wikipedia的名字来代替电话号码(IP地址)。我们直接调用网站的名字以后,DNS就会将便于人类使用的名字(如www.wikipedia.org)转化成便于机器识别的IP地址(如208.80.152.2)。
域名的dns可以使用域名注册商默认的dns,也可以使用第三方dns或者cdn(或waf)的域名DNS。例如 cloudxns dnspod cloudflare (百度云加速360网站卫士太垃圾,不提了)这些域名dns
也可以利用自己的服务器搭建域名DNS(不能保证可用性和稳定性),如何利用服务器搭建DNS我们后面的文章在讲解(搭建的域名DNS必须在对应的域名后缀注册局进行DNS注册,否则无法使用)
三、网站服务器
网站服务器分为许多种例如虚拟主机云服务器 VPS 以及物理服务器
1.虚拟主机
虚拟主机是指在网络服务器上分出一定的磁盘空间,用户可以租用此部分空间,以供用户放置站点及应用组件,提供必要的数据存放和传输功能。
虚拟主机有着便宜、快速、便捷的优点,但是随着网站的发展,虚拟主机的缺点也就慢慢的出现了——若虚拟主机所在的物理服务器被攻击,该物理服务器下所有网站都会故障有些虚拟主机不支持https随着网站发展,会发现虚拟主机的容量、流量不够使用
2.VPS
VPS(Virtual Private Server 虚拟专用服务器)技术,将一台服务器分割成多个虚拟专享服务器的优质服务。实现VPS的技术分为容器技术,和虚拟化技术] 。在容器或虚拟机中,每个VPS都可分配独立公网IP地址、独立操作系统、实现不同VPS间磁盘空间、内存、CPU资源、进程和系统配置的隔离,为用户和应用程序模拟出“独占”使用计算资源的体验。VPS可以像独立服务器一样,重装操作系统,安装程序,单独重启服务器。VPS为使用者提供了管理配置的自由,可用于企业虚拟化,也可以用于IDC资源租用。IDC资源租用,由VPS提供商提供。不同VPS提供商所使用的硬件VPS软件的差异,及销售策略的不同,VPS的使用体验也有较大差异。尤其是VPS提供商超卖,导致实体服务器超负荷时,VPS性能将受到极大影响。相对来说,容器技术比虚拟机技术硬件使用效率更高,更易于超卖,所以一般来说容器VPS的价格都高于虚拟机VPS的价格。这些VPS主机以最大化的效率共享硬件、软件许可证以及管理资源。每个VPS主机都可分配独立公网IP地址、独立操作系统、独立超大空间、独立内存、独立CPU资源、独立执行程序和独立系统配置等. VPS主机用户除了可以分配多个虚拟主机及无限企业邮箱外,更具有独立主机功能,可自行安装程序,单独重启主机。简单理解VPS就是一台拥有公网IP的服务器
VPS也可以去阿里这样的大厂商购买(大部分都是云服务器)
3.云服务器
云服务器是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。其管理方式比物理服务器更简单高效。用户无需提前购买硬件,即可迅速创建或释放任意多台云服务器。云服务器帮助您快速构建更稳定、安全的应用,降低开发运维的难度和整体IT成本,使您能够更专注于核心业务的创新。
云服务器和VPS之区别
云服务器是由一个集群所分担的,假设该集群有一台物理服务器故障,其他的服务器可以依靠镜像正常运行 VPS若物理服务器故障,那么VPS直接崩溃
4.物理服务器
物理服务器就是一台实体计算机托管到机房,其配置可以由自己而定,拥有着和普通电脑相同的能力。但是在租用或托管一台物理服务器时,需要考虑其机房配置、宽带配置、以及服务器供电。
综合排序物理服务器云服务器VPS虚拟主机
PS. VPS及云服务器的虚拟化有多种方式1.XEN 2.KVM 3.OVZ期综合性能排序 KVM=xenovz
五、云服务器/VPS/物理服务器的环境选择
就目前来说,php是全能语言,既可以在WIN上运行也可以在linux上运行
若你是用的是zblog一类以ASP(zblog也有php版)为主的程序,win是必选,因为只有Win可以运行asp/aspx
如果使用php,那么linux是首选,其次是win,因为linux初始占用内存小,占用系统资源小,对于低配置服务器是最佳选择。而win则是图形化操作,对于新手最好
网站环境nginx轻量、易操作,apache管理好,iis最为垃圾但是因为asp只能运行在iis上(目前这样)而且iis只能在win上(听说微软在为linux开发Iis)
php环境因为7.0及以上不支持mysql拓展,所以一般建议5.6
六、网站备案
在中国大陆以外的服务器可以不用备案,在中国大陆以内的服务器必须向服务器管理商以及工信部提出备案申请,备案后就可以使用国内服务器了
七、 https or http
https 是 http的安全版,搜索引擎会收录较多的https链接
至此一个网站基本就成型了
by 小徐博客网 smallxu.me
渗透测试应该怎么做呢?
01、信息收集
1、域名、IP、端口
域名信息查询:信息可用于后续渗透
IP信息查询:确认域名对应IP,确认IP是否真实,确认通信是否正常
端口信息查询:NMap扫描,确认开放端口
发现:一共开放两个端口,80为web访问端口,3389为windows远程登陆端口,嘿嘿嘿,试一下
发现:是Windows Server 2003系统,OK,到此为止。
2、指纹识别
其实就是网站的信息。比如通过可以访问的资源,如网站首页,查看源代码:
看看是否存在文件遍历的漏洞(如图片路径,再通过…/遍历文件)
是否使用了存在漏洞的框架(如果没有现成的就自己挖)
02、漏洞扫描
1、主机扫描
Nessus
经典主机漏扫工具,看看有没有CVE漏洞:
2、Web扫描
AWVS(Acunetix | Website Security Scanner)扫描器
PS:扫描器可能会对网站构成伤害,小心谨慎使用。
03、渗透测试
1、弱口令漏洞
漏洞描述
目标网站管理入口(或数据库等组件的外部连接)使用了容易被猜测的简单字符口令、或者是默认系统账号口令。
渗透测试
① 如果不存在验证码,则直接使用相对应的弱口令字典使用burpsuite 进行爆破
② 如果存在验证码,则看验证码是否存在绕过、以及看验证码是否容易识别
风险评级:高风险
安全建议
① 默认口令以及修改口令都应保证复杂度,比如:大小写字母与数字或特殊字符的组合,口令长度不小于8位等
② 定期检查和更换网站管理口令
2、文件下载(目录浏览)漏洞
漏洞描述
一些网站由于业务需求,可能提供文件查看或下载的功能,如果对用户查看或下载的文件不做限制,则恶意用户就能够查看或下载任意的文件,可以是源代码文件、敏感文件等。
渗透测试
① 查找可能存在文件包含的漏洞点,比如js,css等页面代码路径
② 看看有没有文件上传访问的功能
③ 采用…/来测试能否夸目录访问文件
风险评级:高风险
安全建议
① 采用白名单机制限制服务器目录的访问,以及可以访问的文件类型(小心被绕过)
② 过滤【./】等特殊字符
③ 采用文件流的访问返回上传文件(如用户头像),不要通过真实的网站路径。
示例:tomcat,默认关闭路径浏览的功能:
param-namelistings/param-name
param-valuefalse/param-value
3、任意文件上传漏洞
漏洞描述
目标网站允许用户向网站直接上传文件,但未对所上传文件的类型和内容进行严格的过滤。
渗透测试
① 收集网站信息,判断使用的语言(PHP,ASP,JSP)
② 过滤规则绕过方法:文件上传绕过技巧
风险评级:高风险
安全建议
① 对上传文件做有效文件类型判断,采用白名单控制的方法,开放只允许上传的文件型式;
② 文件类型判断,应对上传文件的后缀、文件头、图片类的预览图等做检测来判断文件类型,同时注意重命名(Md5加密)上传文件的文件名避免攻击者利用WEB服务的缺陷构造畸形文件名实现攻击目的;
③ 禁止上传目录有执行权限;
④ 使用随机数改写文件名和文件路径,使得用户不能轻易访问自己上传的文件。
4、命令注入漏洞
漏洞描述
目标网站未对用户输入的字符进行特殊字符过滤或合法性校验,允许用户输入特殊语句,导致各种调用系统命令的web应用,会被攻击者通过命令拼接、绕过黑名单等方式,在服务端运行恶意的系统命令。
渗透测试
风险评级:高风险
安全建议
① 拒绝使用拼接语句的方式进行参数传递;
② 尽量使用白名单的方式(首选方式);
③ 过滤危险方法、特殊字符,如:【|】【】【;】【’】【"】等
5、SQL注入漏洞
漏洞描述
目标网站未对用户输入的字符进行特殊字符过滤或合法性校验,允许用户输入特殊语句查询后台数据库相关信息
渗透测试
① 手动测试:判断是否存在SQL注入,判断是字符型还是数字型,是否需要盲注
② 工具测试:使用sqlmap等工具进行辅助测试
风险评级:高风险
安全建议
① 防范SQL注入攻击的最佳方式就是将查询的逻辑与其数据分隔,如Java的预处理,PHP的PDO
② 拒绝使用拼接SQL的方式
6、跨站脚本漏洞
漏洞描述
当应用程序的网页中包含不受信任的、未经恰当验证或转义的数据时,或者使用可以创建 HTML或JavaScript 的浏览器 API 更新现有的网页时,就会出现 XSS 缺陷。XSS 让攻击者能够在受害者的浏览器中执行脚本,并劫持用户会话、破坏网站或将用户重定向到恶意站点。
三种XSS漏洞:
① 存储型:用户输入的信息被持久化,并能够在页面显示的功能,都可能存在存储型XSS,例如用户留言、个人信息修改等。
② 反射型:URL参数需要在页面显示的功能都可能存在反射型跨站脚本攻击,例如站内搜索、查询功能。
③ DOM型:涉及DOM对象的页面程序,包括:document.URL、document.location、document.referrer、window.location等
渗透测试
存储型,反射型,DOM型
风险评级:高风险
安全建议
① 不信任用户提交的任何内容,对用户输入的内容,在后台都需要进行长度检查,并且对【】【】【"】【’】【】等字符做过滤
② 任何内容返回到页面显示之前都必须加以html编码,即将【】【】【"】【’】【】进行转义。
7、跨站请求伪造漏洞
漏洞描述
CSRF,全称为Cross-Site Request Forgery,跨站请求伪造,是一种网络攻击方式,它可以在用户毫不知情的情况下,以用户的名义伪造请求发送给被攻击站点,从而在未授权的情况下进行权限保护内的操作,如修改密码,转账等。
渗透测试
风险评级:中风险(如果相关业务极其重要,则为高风险)
安全建议
① 使用一次性令牌:用户登录后产生随机token并赋值给页面中的某个Hidden标签,提交表单时候,同时提交这个Hidden标签并验证,验证后重新产生新的token,并赋值给hidden标签;
② 适当场景添加验证码输入:每次的用户提交都需要用户在表单中填写一个图片上的随机字符串;
③ 请求头Referer效验,url请求是否前部匹配Http(s)?/ServerHost
④ 关键信息输入确认提交信息的用户身份是否合法,比如修改密码一定要提供原密码输入
⑤ 用户自身可以通过在浏览其它站点前登出站点或者在浏览器会话结束后清理浏览器的cookie;
8、内部后台地址暴露
漏洞描述
一些仅被内部访问的地址,对外部暴露了,如:管理员登陆页面;系统监控页面;API接口描述页面等,这些会导致信息泄露,后台登陆等地址还可能被爆破。
渗透测试
① 通过常用的地址进行探测,如login.html,manager.html,api.html等;
② 可以借用burpsuite和常规页面地址字典,进行扫描探测
风险评级:中风险
安全建议
① 禁止外网访问后台地址
② 使用非常规路径(如对md5加密)
9、信息泄露漏洞
漏洞描述
① 备份信息泄露:目标网站未及时删除编辑器或者人员在编辑文件时,产生的临时文件,或者相关备份信息未及时删除导致信息泄露。
② 测试页面信息泄露:测试界面未及时删除,导致测试界面暴露,被他人访问。
③ 源码信息泄露:目标网站文件访问控制设置不当,WEB服务器开启源码下载功能,允许用户访问网站源码。
④ 错误信息泄露:目标网站WEB程序和服务器未屏蔽错误信息回显,页面含有CGI处理错误的代码级别的详细信息,例如SQL语句执行错误原因,PHP的错误行数等。
⑤ 接口信息泄露:目标网站接口访问控制不严,导致网站内部敏感信息泄露。
渗透测试
① 备份信息泄露、测试页面信息泄露、源码信息泄露,测试方法:使用字典,爆破相关目录,看是否存在相关敏感文件
② 错误信息泄露,测试方法:发送畸形的数据报文、非正常的报文进行探测,看是否对错误参数处理妥当。
③ 接口信息泄露漏洞,测试方法:使用爬虫或者扫描器爬取获取接口相关信息,看目标网站对接口权限是否合理
风险评级:一般为中风险,如果源码大量泄漏或大量客户敏感信息泄露。
安全建议
① 备份信息泄露漏洞:删除相关备份信息,做好权限控制
② 测试页面信息泄露漏洞:删除相关测试界面,做好权限控制
③ 源码信息泄露漏洞:做好权限控制
④ 错误信息泄露漏洞:将错误信息对用户透明化,在CGI处理错误后可以返回友好的提示语以及返回码。但是不可以提示用户出错的代码级别的详细原因
⑤ 接口信息泄露漏洞:对接口访问权限严格控制
10、失效的身份认证
漏洞描述
通常,通过错误使用应用程序的身份认证和会话管理功能,攻击者能够破译密码、密钥或会话令牌, 或者利用其它开发缺陷来暂时性或永久性冒充其他用户的身份。
渗透测试
① 在登陆前后观察,前端提交信息中,随机变化的数据,总有与当前已登陆用户进行绑定的会话唯一标识,常见如cookie
② 一般现在网站没有那种简单可破解的标识,但是如果是跨站认证,单点登录场景中,可能为了开发方便而简化了身份认证
风险评级:高风险
安全建议
① 使用强身份识别,不使用简单弱加密方式进行身份识别;
② 服务器端使用安全的会话管理器,在登录后生成高度复杂的新随机会话ID。会话ID不能在URL中,可以安全地存储,在登出、闲置超时后使其失效。
11、失效的访问控制
漏洞描述
未对通过身份验证的用户实施恰当的访问控制。攻击者可以利用这些缺陷访问未经授权的功能或数据,例如:访问其他用户的帐户、查看敏感文件、修改其他用户的数据、更改访问权限等。
渗透测试
① 登入后,通过burpsuite 抓取相关url 链接,获取到url 链接之后,在另一个浏览器打开相关链接,看能够通过另一个未登入的浏览器直接访问该功能点。
② 使用A用户登陆,然后在另一个浏览器使用B用户登陆,使用B访问A独有的功能,看能否访问。
风险评级:高风险
安全建议
① 除公有资源外,默认情况下拒绝访问非本人所有的私有资源;
② 对API和控制器的访问进行速率限制,以最大限度地降低自动化攻击工具的危害;
③ 当用户注销后,服务器上的Cookie,JWT等令牌应失效;
④ 对每一个业务请求,都进行权限校验。
12、安全配置错误
漏洞描述
应用程序缺少适当的安全加固,或者云服务的权限配置错误。
① 应用程序启用或安装了不必要的功能(例如:不必要的端口、服务、网页、帐户或权限)。
② 默认帐户的密码仍然可用且没有更改。
③ 错误处理机制向用户披露堆栈跟踪或其他大量错误信息。
④ 对于更新的系统,禁用或不安全地配置最新的安全功能。
⑤ 应用程序服务器、应用程序框架(如:Struts、Spring、ASP.NET)、库文件、数据库等没有进行相关安全配置。
渗透测试
先对应用指纹等进行信息搜集,然后针对搜集的信息,看相关应用默认配置是否有更改,是否有加固过;端口开放情况,是否开放了多余的端口;
风险评级:中风险
安全建议
搭建最小化平台,该平台不包含任何不必要的功能、组件、文档和示例。移除或不安装不适用的功能和框架。在所有环境中按照标准的加固流程进行正确安全配置。
13、使用含有已知漏洞的组件
漏洞描述
使用了不再支持或者过时的组件。这包括:OS、Web服务器、应用程序服务器、数据库管理系统(DBMS)、应用程序、API和所有的组件、运行环境和库。
渗透测试
① 根据前期信息搜集的信息,查看相关组件的版本,看是否使用了不在支持或者过时的组件。一般来说,信息搜集,可通过http返回头、相关错误信息、应用指纹、端口探测(Nmap)等手段搜集。
② Nmap等工具也可以用于获取操作系统版本信息
③ 通过CVE,CNVD等平台可以获取当前组件版本是否存在漏洞
风险评级:按照存在漏洞的组件的安全风险值判定当前风险。
安全建议
① 移除不使用的依赖、不需要的功能、组件、文件和文档;
② 仅从官方渠道安全的获取组件(尽量保证是最新版本),并使用签名机制来降低组件被篡改或加入恶意漏洞的风险;
③ 监控那些不再维护或者不发布安全补丁的库和组件。如果不能打补丁,可以考虑部署虚拟补丁来监控、检测或保护。
详细学习可参考: