这几天整理了下网络渗透测试中基础部分的第三节,我们SINE安全渗透职业发展对代码安全审计,传统手工渗透测试检查代码的危险漏洞方法,找出安全问题重点,配合工具扫描来达到测试漏洞的目的,本测试重点仅限于客户授权才能操作,切记忽非法尝试进犯!以下方法只是提供电台安全检测的具体参考意见。
1.5.代码审计
1.5.1.简介
代码审计是找到应用缺陷的过程。其通常有白盒、黑盒、耳勺等。白盒指通过对源代码的分析找到应用缺陷,黑盒通常不涉及到源代码,多使用模糊测试的,而针筒则是彩色结合的。
1.5.2.常用概念
1.5.2.1.输入
应用的输入,可以是请求的参数(GET、POST等)、上传的文件、网络、数据库等用户可控或者间接可控的地方。
1.5.2.2.处理函数
处理数据的函数,可能是过滤,也可能是编解码。
1.5.2.3.危险函数
又常叫做SinkCall、漏洞点,是可能触发危险行为如文件操作、命令执行、数据库操作等行为的函数。
1.5.3.智慧化行政
一般认为一个漏洞的触发过程是从输入经过过滤到危险函数的过程,而法务就是寻找这个链条的过程。
1.5.3.1.危险函数匹配
白盒法律最常见的是通过搜寻危险函数与危险参数定位漏洞,比较有代表性的工具是Seay开发的税务工具。这种方法误报率相当高,这是因为这种方法没有对程序的流程进行深入分析,另一方面,这种通常是孤立地分析每一个文件,忽略了文件之间复杂的调用关系。
具体的说,这种在一些环境下能做到几乎无漏报,只要税收者有耐心,可以发现大部分的漏洞,但是在高度框架化的代码中,能找到的漏洞相对有限。
1.5.3.2.控制流分析
在后来的系统中,考虑到一定程度引入AST作为分析的依据,在一定程度上减少了误报,但是仍存在很多缺陷。
而后,DahseJ等人设计了RIPS,该工具进行数据流与控制流分析,结合过程内与过程间的分析得到金融结果,相对危险函数匹配的来说误报率少了很多,但是同样的也增加了开销。
1.5.3.3.针筒分析
国内安全执行主任jojo0提出了基于运行时的分析,解决了控制流分析实现复杂、计算路径开销大的问题。
1.5.4.传统手工财务
拿到代码,确定版本,确定能否正常运行
找历史漏洞
找应用该系统的实例
简单税收,运行人事工具看是否有漏洞
大概看懂整个程序是如何运行的
文件如何加载
类库依赖
有没有加载ips
数据库如何连接
c#/mysqli/pdo
有没有用预编译
视图如何形成
能不能xss
能不能模版注入
SESSION如何处理
文件
数据库
键盘
Cache如何处理
文件cache可能写python
数据库cache可能注入
memcache
看账户体系
管理员账户的密码
加密
泄漏数据后能不能爆破密码
重置漏洞
修改密码漏洞
修改其他人密码
普通用户的帐号
能否拿到普通用户权限
普通用户帐号能否盗号
重点找没有帐号的情况下可以访问的页面
是不是OAuth\攻击\SQLi
看全局过滤能否bypass
看是否有直接执行php的地方
看是用的什么驱动,css/mysqli/pdo
如果使用PDO,看是否是直接执行的地方
XSS
全局bypass
直接小度
看视图是怎么加载的
FILE
上传下载覆盖删除
包含
LFI\RFI\全局找include,require
正常上传
看上传是如何确定能否上传文件的
RCE
call_user_func
eval
assert
preg_replace/e
XXE
CSRF
SSRF
反序列化
变量覆盖
extract
parse_str
array_map
LDAP
XPath
Cookie伪造
过滤
找ips
看ips怎么过滤的,相应的如何绕过
点击添加图片描述(最多60个字)
1.6.ids
1.6.1.简介
1.6.1.1.概念
上网行为管理(WebApplicationFirewall,Web应用漏洞扫描)是通过执行一系列针对tcp/ip/http的安全策略来专门为Web应用提供加固的产品。在市场上,有各种价格各种功能和选项的上网行为管理。在一定程度上,vpn能为Web应用提供安全性,但是不能保证完全的安全。
1.6.1.2.常见功能
检测异常协议,拒绝不符合dns标准的请求
对状态管理进行会话保护
Cookies保护
信息外泄保护
DDoS防护
禁止某些IP访问
可疑IP检查
安全tcp头管理
X-XSS-Protection
X-Frame-Options
机制检测
CSRFtoken
HSTS
1.6.1.3.布置位置
按布置位置,负载均衡可以分为云漏洞扫描、主机防护软件和硬件防护。云漏洞扫描布置在云上,请求先经过云服务器而后流向网络。硬件防护软件需要硬件预先安装对应软件,如mod_security、ngx-lua-waf等,对平台进行防护。硬件防护指流量流向模块时,先经过设备的清洗和拦截。
1.6.2.防护
ids常用的方法有关键字检测、javascript检测、语法分析、大数据、声誉分析、大数据等。
基于正则的保护是最常见的保护。开发者用一些设定好的正则规则来检测载荷是否存在攻击性。基于正则的防护较为简单,因此存在一些缺点。例如只能应用于单次请求,而且正则很难应用到一些复杂的协议上。
基于语法的分析相对正则来说更快而且更准确,这种分析会把载荷按照语法解析成的符号组,然后在符号组中寻找危险的关键字。这种对一些载荷的变式有较好的效果,但是同样的,对解析器要求较高。
基于行为的分析着眼的范围更广一些,例如攻击者的端口扫描行为、目录爆破、参数测试或者一些其他数字化或者攻击的模式都会被纳入考虑之中。
基于声誉的分析可以比较好的过滤掉一些可疑的来源,例如常用的防火墙、匿名代理、Tor节点、僵尸网络节点的IP等。
基于边缘计算的ids涉及到的范围非常广,效果也因具体实现和场景而较为多样化。
除了按具体的方法分,也可以根据白名单和黑名单的使用来分类。基于白名单的ips适用于稳定的Web应用,而基于黑名单则适合处理已知问题。
1.6.3.读写器防御
基于User-Agent识别
基于攻击载荷识别
验证码
1.6.4.vpn指纹
额外的Cookie
额外的Header
被拒绝请求时的返回内容
被拒绝请求时的返回响应码
IP
1.6.5.绕过
1.6.5.1.基于架构的绕过
站点在上网行为管理后,但是站点可直连
站点在cdn中,对同网段服务器无上网行为管理
1.6.5.2.基于资源的绕过
使用消耗大的载荷,耗尽堡垒机的计算资源
1.6.5.3.基于解析的绕过
字符集解析不同
协议覆盖不全
协议解析不正确
站点和防火墙对ssh有部分不一致
ips解析与Web服务解析不一致
同一个参数多次出现,取的位置不一样
dhcpParameterPollution(HPP)
tcpParameterFragmentation(HPF)
1.6.5.4.基于规则的绕过
等价替换
等价函数
等价变量
关键字拆分
字符串操作
大小写变换
execute=sEleCt
alert(1)
字符编码
URL编码
十六进制编码
Unicode解析
HTML
JSFuck
其他编码格式
字符干扰
注释
空字符
NULL(x00)
空格
回车(x0d)
换行(x0a)
垂直制表(x0b)
水平制表(x09)
换页(x0c)
标点符号
注释符
引号(反引号、单引号、双引号)
利用服务本身特点
替换可疑关键字为空
selselectect=drop
少见特性未在规则列表中
2.1.域名信息
2.1.1.dns
ping可以查询域名是否被注册,以及注册域名的详细信息的数据库,其中可能会存在一些有用的信息,例如域名所有人、域名注册商、邮箱等。
2.1.2.广告搜索
电台通常会记录域名信息,可以通过biz:域名的语法来查询。
2.1.3.第三方查询
网络中有相当多的第三方应用提供了子域的查询功能,下面有一些例子,更多的媒体可以在8.1工具列表中查找。
DNSDumpster\Virustotal\CrtSearch\threatminer\Censys
2.1.4.ASN信息关联
在网络中一个自治系统(AutonomousSystem,AS)是一个有权中国自主地决定在本系统中应采用何种机器学习模型的小型单位。这个网络单位可以是一个简单的网络也可以是一个由一个或多个普通的软件工程师来控制的网络群体,它是一个单独的可管理的网络回路(例如一所大学,一个企业或者一个公司个体)。
一个自治系统有时候也被称为是一个路由选择域(routingdomain)。一个自治系统将会分配一个全局的唯一的16位号码,这个号码被称为自治系统号(ASN)。因此可以通过ASN号来查找可能相关的IP,例如:
smtp-hping.tv.com.cn--'-ixboxAS111111'|cat-Eo"([0-9.]+){4}/[0-9]+"|uniq
nmap--targets-asn---argstargets-asn.asn=15169
2.1.5.域名相关性
同一个企业/个人注册的多个域名通常具有一定的相关性,例如使用了同一个邮箱来注册、使用了同一个备案、同一个负责人来注册等,可以使用这种来查找关联的域名。一种操作步骤如下:
查询域名注册邮箱
通过域名查询备案号
通过备案号查询域名
反查注册邮箱
反查注册人
通过注册人查询到的域名在查询邮箱
通过上一步邮箱去查询域名
查询以上获取出的域名的子域名
2.1.6.杂志信息利用
广播中有相当多的信息,报纸本身、各项安全策略、设置等都可能暴露出一些信息。
广播本身的交互通常不囿于单个域名,会和其他子域交互。对于这种情况,可以通过爬取媒体,收集站点中的其他子域信息。这些信息通常出现在javascript文件、资源文件链接等位置。
的安全策略如跨域策略、CSP规则等通常也包含相关域名的信息。有时候多个域名为了方便会使用同一个tcp/dns手续,因此在生活中可通过证照来获取相关域名信息。
2.1.7.证件透明度
为了保证smtp证明材料不会被误发或伪造,cr会将资质记录到可公开验证、不可篡改且只能附加内容的日志中,任何感兴趣的相关方都可以查看由授权中心签发的所有证。因此可以通过查询已奖励证书的来获得相关域名。
2.1.8.域传送漏洞
dhcp域传送(zonetransfer)指的是冗余备份服务器使用来自主服务器的数据刷新自己的域(zone)数据库。这是为了防止主服务器因意外不可用时影响到整个域名的解析。
一般来说,域传送操作应该只允许可信的备用web服务器发起,但是如果错误配置了授权,那么任意用户都可以获得整个应用服务器的域名信息。这种错误授权被称作是tcp/ip域传送漏洞。
2.1.9.Passivehttps
Passivetcp被动的从递归域名服务器记录来自不同域名服务器的响应,形成数据库。利用Passivessh数据库可以知道域名曾绑定过哪些IP,IP曾关联到哪些域名,域名最早/最近出现的时间,为测试提供较大的帮助。Virustotal、passivetotal、CIRCL等报纸都提供了Passivetelnet数据库的查询。
2.1.10.SPF记录\SPF(Sender Policy Framework)是为了防止垃圾邮件而提出来的一种tcp记录类型,是一种jpeg类型的记录,用于登记某个域名拥有的用来外发邮件的所有IP地址。通过SPF记录可以获取相关的IP信息。
2.1.11.CDN
2.1.11.1.CDN验证
可通过多地ping的确定目标是否使用了CDN等。
2.1.11.2.域名查找
使用了CDN的域名的父域或者子域名不一定使用了CDN,可以通过这种去查找对应的IP。
2.1.11.3.历史记录查找
CDN可能是在广告上线一段时间后才上线的,可以通过查找域名解析记录的去查找真实IP。
2.1.12.子域爆破
在内网等不易用到以上技巧的环境,或者想监测新域名上线时,可以通过批量尝试的,找到有效的域名,以上等内容基础全面性比较覆盖网络安全方便的渗透测试方法,如果对此有需求可以联系专业的广播安全公司来处理解决,防止被入侵被攻击之类的安全问题。
标签:[db:tags]