渗透测试项目中一些漏洞的产生原因以及挖掘方法

二叶草 2020年3月26日20:51:24渗透评论阅读模式
 今天分享一下在平时做渗透测试项目时候一些漏洞的挖掘方法和可能存在安全问题的地方。
一般在测试过程中比较忌讳上来就用扫描器,尤其是在对互联网项目做测试的时候,因为一但部署了安全防护,那你可能就面临着几个小时无法访问的尴尬局面,当然这里不讨论要求客户加白名单的情况。

一般针对WEB应用来讲常用的工具主要分三类:

1.抓包

2.目录扫描

3.漏洞扫描

其中漏洞扫描就是我上面所说的,只有在确认不存在有WAF且经过客户同意的话才能使用,因为不排除有些机器的性能的确是已经到了崩溃的边缘。

我个人一般抓包的话就是使用burpsuit,目录扫描是公司里面提供的一个小脚本工具,其实自己也可以写一个相应的扫描工具,只要注意好User-Agent字段还有扫描的延时就行,漏扫的话可以用WVS,同样我们公司也很温馨的提供了公司的工具。下面是我个人整理的一部分常见的漏洞以及检测方法,因为种类太多没办法一次性全写完。

低危漏洞:

1. 基于HTTP的传输请求。

可以通过查看网站是否可以通过http协议来进行访问,部分网站虽然使用了https但是也依然允许使用Http来访问。但是不排除使用https协议后会存在一些SSL加密漏洞的问题,同样也需要注意。数据安全传输是数据保护的最外围措施,理应受到重视。

检测方法:

查看网站是否可以通过http来进行访问。

2. 数据明文传输。

这一层是指数据本身的加密,绝大多数的厂商在数据传输中都是采用的明文传输,即数据包内容全部为原文数据。此类漏洞在内网流量嗅探中起到了比较大的辅助作用。

检测方法:

测试过程中可以通过抓取请求数据查看内容来判断是否存在问题。

3. X-Frame-Options Header未配置

这个问题为钓鱼而生,通常出现在其它网站嵌入iframe框架调用自己的网站,页面可以达到百分百的相似度,对自身网站的影响较小,此漏洞主要用来危害网站用户。典型案例可以参考“点击劫持”。

检测方法:

查看网站响应参数。

4. Cookie未设置Httponly属性

Httoonly用来防止页面脚本对cookie信息的访问,主要用来防御XSS攻击,在没有设置该属性且存在xss漏洞的情况下,就可能存在cookie窃取的风险。

检测方法:

查看网站的响应参数。

5. 数据弱加密算法

弱加密是指程序在原文加密的过程中采用了易被破解的加密方式,如一些网站采用一些通用的加密函数来加密如md5,base64,或者密文有规律可循,可通过分析写出解密脚本。

检测方法:

查看加密的内容,判断加密类型,或分析密文生成规律。

6. 程序错误信息泄露

这个问题比较常见,危害可大可小不能统一,问题较为突出的就类似于iis的报错页面,可直接泄露网站路径,或者一些直接暴露程序错误详细到代码级的情况。Nginx的那种空白页面虽然也算,但一般来说基本没用,除非你有对应版本的0day,具体按照客户资产价值情况来判断。

检查方法:

提交特殊字符,访问不存在的页面,执行未定义的操作。

这几个相对来讲都比较的常见,因为部分厂商并不是很在意,但是低危也是漏洞,而且之所以说低危漏洞没什么用,是因为当前取得的权限以及进展用不到这些危害,如果取得内网权限或者植入了恶意代码,那上面所说的部分问题那就是泄密的重要途径之一了,可以考虑现场情况来定。

中危漏洞(一些因为利用条件较高导致高危降级到中危的漏洞这里就不举例说明了):

1. 用户名猜解

问题主要出现在登录页面,部分程序为了方便登录用户的使用,喜欢说清楚没能登录成功的原因,比如“用户名不存在”,“用户密码错误”,个别有些安全意识高的会把返回的字符串改一改,但是错误代码依旧可以辨别出来。这个问题可以在没有掌握用户名的情况下进行用户名的猜解,或者大批量爆破网站用户,猜解出的用户名越多,口令爆破的成功率也就越高。

检查方法:

查看登录失败的返回信息。

2. 程序验证顺序错误

程序为了避免被暴力破解都喜欢使用验证码,而有些系统的验证码就加的比较的敷衍,主要体现在先去验证你的用户名甚至是验证你的用户名和密码,然后再去验证提交的验证码,这时候其实验证码已经起不到作用了,因为攻击者已经可以猜解用户名和密码了。

检查方法:

查看程序的返回信息。

3. 无验证码保护

这种情况就比上面更加的干脆和直接,干脆不用验证码,还有一种就是“伪”验证码,就是指一开始不需要验证码,当你失败错误次数多了就需要验证码了,这其实也属于一种保护,但是没什么用,因为这里的验证码多是对session做验证,只需要在爆破的时候注意不断地切换session就能让这类验证码不出现。

检查方法:

查看是否有验证码,以及切换session能否绕过验证码。

4. 验证码不失效(可绕过)

此类最常见,只要不去重新获取验证则原有码验证码就可以一直使用,危害依旧是可造成暴力破解。

检查方法:

使用抓包工具进行请求重放,查看程序能否验证成功。

5. 接口暴露

这种情况多是由于系统在开发过程中未对接口文件进行复杂命名导致容易被工具扫描到或者是开发结束后未能及时清理开发中的日志或是文件记录,甚至是程序报错直接将有关文件路径泄露。但是这个漏洞难点在接口的参数信息的破解上

检查方法:

文件扫描,程序开发信息搜集,系统报错信息搜集,调用接口的相关应用抓包分析。

高危漏洞:

1. XSS漏洞

这类漏洞是出现的比较频繁的,但是实用性要根据环境来衡量,很多的高危XSS因为利用条件较高会降级到中危,但危害依然是有的。漏洞产生是由于服务端或客户端对用户的输入数据未能严格过滤导致的。常见危害有cookie信息窃取,网站劫持,页面篡改,钓鱼,键盘记录等。

检查方法:

在有输入的地方进行xss语句测试,如登录界面、搜索界面、用户信息界面、留言板、发帖、URL中可以显示在页面上的信息。

2. SQL注入漏洞

注入漏洞出现的次数相对较少,但是危害很大,其实有些网站之所以不存在漏洞,是因为安装了WAF。产生此漏洞的原因同XSS类似,都是因未能合理处理敏感字符导致。危害,轻者数据泄露,重者内网沦陷。

检查方法:

检查网站需要进行入库查询的地方。常用工具sqlmap。

3. 任意文件操作

漏洞多是因为对用户可访问文件及目录未做限制造成的,这里的任意操作包含了,增删改三种操作,危害可凭借这三中操作自行想象。对于删除操作应提前与客户进行联系明确风险,在取得同意后再进行测试。

检查方法:

对存在查看,修改,删除操作的地方进行测试,存在文件名或路径的地方可尝试跨目录访问其他文件,对于编号类型的参数可查看其规律进行遍历测试。

4. 文件上传漏洞

这类漏洞是最大的,一般是因为对文件格式验证存在缺陷、配置错误或采用了低版本脚本环境以及容器存在的缺陷。最经典的案例可参考iis的解析漏洞以及php的00截断漏洞。

检查方法:

对存在文件写入及上传的地方综合系统环境信息进行测试,经典绕过后缀名都可以尝试一下。

以上是部分在测试中可能会遇到的一些安全问题,以及测试方法,如有不足欢迎指正。

本文来源于:渗透测试项目中一些漏洞的产生原因以及挖掘方法-变化吧门户
特别声明:以上文章内容仅代表作者本人观点,不代表变化吧门户观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与变化吧联系。

  • 赞助本站
  • 微信扫一扫
  • weinxin
  • 加入Q群
  • QQ扫一扫
  • weinxin
二叶草
渗透测试实用工具 渗透

渗透测试实用工具

 工具概述 1、新增批量修改文件夹文件后缀功能,并重新排列工具,更加详细使用 2、新增文件夹监控功能,监控python tool.py -monitor C: 3、新增将包含rgb值的txt...
简谈渗透测试各阶段我常用的那些“神器” 渗透

简谈渗透测试各阶段我常用的那些“神器”

 前言 本人所有文章都很用心的写作完成,并时常总结如何分享更有用的东西给朋友们。这篇更是如此,晚上准备到凌晨四点开始写作,为了需要的朋友而写,不喜欢的右上角点叉不要像上次文章一样在下面喷粪逼我骂你,另...
内网渗透工具- Intranet-Penetration 渗透

内网渗透工具- Intranet-Penetration

 整理一些常用的内外网渗透测试工具 PHPoxy 通过PHP脚本运行一个可以访问内网机器的Web代理。 SocksCap  socks5代理客户端 XX-Net    科学上网利器 phpsocks5...

发表评论