这几天整理了下网站渗入测试中基本部份的第三节,我们SINE平安渗入工程师对代码平安审计,手工渗入测试搜检代码的风险破绽要领,找出平安题目重点,合营东西扫描来到达测试破绽的目的,本测试重点仅限于客户受权才操纵,牢记忽不法尝试入侵!以下要领只是供应网站平安检测的详细参考看法。
1.5. 代码审计
1.5.1. 简介
代码审计是找到运用瑕玷的历程。其平常有白盒、黑盒、灰盒等体式格局。白盒指经由过程对源代码的剖析找到运用瑕玷,黑盒平常不涉及到源代码,多运用隐约测试的体式格局,而灰盒则是是非连系的体式格局。
1.5.2. 经常使用观点
1.5.2.1. 输入
运用的输入,可所以请求的参数(GET、POST等)、上传的文件、网络、数据库等用户可控或许间接可控的处所。
1.5.2.2. 处置惩罚函数
处置惩罚数据的函数,多是过滤,也多是编解码。
1.5.2.3. 风险函数
又常叫做Sink Call、破绽点,是能够触发风险行动如文件操纵、敕令实行、数据库操纵等行动的函数。
1.5.3. 自动化审计
平常以为一个破绽的触发历程是从输入经由过滤到风险函数的历程,而审计就是寻觅这个链条的历程。
1.5.3.1. 风险函数婚配
白盒审计最罕见的体式格局是经由过程征采风险函数与风险参数定位破绽,比较有代表性的东西是Seay开辟的审计东西。这类要领误报率相称高,这是由于这类要领没有对顺序的流程举行深入剖析,另一方面,这类体式格局平常是孤登时剖析每个文件,疏忽了文件之间庞杂的挪用关联。
详细的说,这类体式格局在一些环境下能做到险些无漏报,只需审计者有耐烦,能够发明大部份的破绽,然则在高度框架化的代码中,能找到的破绽相对有限。
1.5.3.2. 掌握流剖析
在厥后的系统中,斟酌到肯定程度引入AST作为剖析的依据,在肯定程度上减少了误报,然则仍存在许多瑕玷。
然后,Dahse J等人设想了RIPS,该东西举行数据流与掌握流剖析,连系历程内与历程间的剖析取得审计结果,相对风险函数婚配的体式格局来讲误报率少了许多,然则一样的也增加了开支。
1.5.3.3. 灰盒剖析
国内平安研究员fate0提出了基于运转时的剖析体式格局,处理了掌握流剖析完成庞杂、盘算途径开支大的题目。
1.5.4. 手工审计体式格局
拿到代码,肯定版本,肯定可否一般运转
找汗青破绽
找运用该系统的实例
简朴审计,运转审计东西看是不是有破绽
也许看懂全部顺序是怎样运转的
文件怎样加载
类库依靠
有无加载waf
数据库怎样衔接
mysql/mysqli/pdo
有无用预编译
视图怎样构成
能不能xss
能不能模版注入
SESSION怎样处置惩罚
文件
数据库
内存
Cache怎样处置惩罚
文件cache能够写shell
数据库cache能够注入
memcache
看账户系统
治理员账户的暗码
加密体式格局
走漏数据后能不能爆破暗码
重置破绽
修正暗码破绽
修正其他人暗码
一般用户的帐号
可否拿到一般用户权限
一般用户帐号可否盗号
重点找没有帐号的状况下能够接见的页面
是不是是OAuth
进击
SQLi
看全局过滤可否bypass
看是不是有直接实行sql的处所
看是用的什么驱动,mysql/mysqli/pdo
假如运用PDO,看是不是是直接实行的处所
XSS
全局bypass
直接echo
看视图是怎样加载的
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捏造
过滤
找WAF
看waf怎样过滤的,相应的怎样绕过
点击增加图片形貌(最多60个字)
1.6. WAF
1.6.1. 简介
1.6.1.1. 观点
WAF(Web Application Firewall,Web运用防火墙)是经由过程实行一系列针对HTTP/HTTPS的平安战略来特地为Web运用供应加固的产物。 在市场上,有种种价钱种种功用和选项的WAF。在肯定程度上,WAF能为Web运用供应平安性,然则不能保证完整的平安。
1.6.1.2. 罕见功用
检测异常协定,谢绝不符合HTTP规范的请求
对状况治理举行会话庇护
Cookies庇护
信息泄漏庇护
DDoS防护
制止某些IP接见
可疑IP搜检
平安HTTP头治理
X-XSS-Protection
X-Frame-Options
机制检测
CSRF token
HSTS
1.6.1.3. 安排位置
按安排位置,WAF能够分为云WAF、主机防护软件和硬件防护。云WAF安排在云上,请求先经由云效劳器然后流向主机。主机防护软件须要主机预先装置对应软件,如mod_security、ngx-lua-waf等,对主机举行防护。硬件防护指流量流向主机时,先经由装备的洗濯和阻拦。
1.6.2. 防护体式格局
WAF经常使用的要领有关键字检测、正则表达式检测、语法剖析、行动剖析、荣誉剖析、机械进修等。
基于正则的庇护是最罕见的庇护体式格局。开辟者用一些设定好的正则划定规矩来检测载荷是不是存在进击性。基于正则的防护较为简朴,因而存在一些瑕玷。比方只能运用于单次请求,而且正则很难运用到一些庞杂的协定上。
基于语法的剖析相对正则来讲更快而且更正确,这类剖析会把载荷依据语法剖析成的标记组,然后在标记组中寻觅风险的关键字。这类体式格局对一些载荷的变式有较好的结果,然则一样的,对剖析器请求较高。
基于行动的剖析着眼的局限更广一些,比方进击者的端口扫描行动、目次爆破、参数测试或许一些其他自动化或许进击的形式都会被归入斟酌当中。
基于荣誉的剖析能够比较好的过滤掉一些可疑的泉源,比方经常使用的VPN、匿名代办、Tor节点、僵尸网络节点的IP等。
基于机械进修的WAF涉及到的局限异常广,结果也因详细完成和场景而较为多样化。
除了按详细的要领分,也能够依据白名单和黑名单的运用来分类。基于白名单的WAF适用于稳固的Web运用,而基于黑名单则合适处置惩罚已知题目。
1.6.3. 扫描器防备
基于User-Agent辨认
基于进击载荷辨认
考证码
1.6.4. WAF指纹
分外的Cookie
分外的Header
被谢绝请求时的返回内容
被谢绝请求时的返回相应码
IP
1.6.5. 绕过体式格局
1.6.5.1. 基于架构的绕过
站点在WAF后,然则站点可直连
站点在云效劳器中,对同网段效劳器无WAF
1.6.5.2. 基于资本的绕过
运用斲丧大的载荷,耗尽WAF的盘算资本
1.6.5.3. 基于剖析的绕过
字符集剖析差别
协定掩盖不全
协定剖析不正确
站点和WAF对https有部份不一致
WAF剖析与Web效劳剖析不一致
同一个参数屡次涌现,取的位置不一样
HTTP Parameter Pollution (HPP)
HTTP Parameter Fragmentation (HPF)
1.6.5.4. 基于划定规矩的绕过
等价替代
等价函数
等价变量
关键字拆分
字符串操纵
大小写变更
select => sEleCt
<>alert(1)
字符编码
URL编码
十六进制编码
Unicode剖析
HTML
JSFuck
其他编码花样
字符滋扰
解释
空字符
NULL (x00)
空格
回车 (x0d)
换行 (x0a)
垂直制表 (x0b)
程度制表 (x09)
换页 (x0c)
特殊标记
解释符
引号(反引号、单引号、双引号)
应用效劳自身特征
替代可疑关键字为空
selselectect => select
少见特征未在划定规矩列表中
2.1. 域名信息
2.1.1. Whois
Whois 能够查询域名是不是被注册,以及注册域名的详细信息的数据库,个中能够会存在一些有用的信息,比方域名一切人、域名注册商、邮箱等。
2.1.2. 搜刮引擎搜刮
搜刮引擎平常会纪录域名信息,能够经由过程 site:域名的语法来查询。
2.1.3. 第三方查询
网络中有相称多的第三方运用供应了子域的查询功用,下面有一些例子,更多的网站能够在 8.1 东西列表 中查找。
DNSDumpster
Virustotal
CrtSearch
threatminer
Censys
2.1.4. ASN信息关联
在网络中一个自治系统(Autonomous System, AS)是一个有权自立地决定在本系统中应采纳何种路由协定的小型单元。这个网络单元可所以一个简朴的网络也可所以一个由一个或多个一般的网络治理员来掌握的网络群体,它是一个零丁的可治理的网络单元(比方一所大学,一个企业或许一个公司个别)。
一个自治系统偶然也被称为是一个路由挑选域(routing domain)。一个自治系统将会分派一个全局的唯一的16位号码,这个号码被称为自治系统号(ASN)。因而能够经由过程ASN号来查找能够相干的IP,比方:
whois -h whois.xxx.net -- '-i origin AS111111' | grep -Eo "([0-9.]+){4}/[0-9]+" | uniq
nmap -- targets-asn ---args targets-asn.asn=15169
2.1.5. 域名相干性
同一个企业/个人注册的多个域名平常具有肯定的相干性,比方运用了同一个邮箱来注册、运用了同一个备案、同一个负责人来注册等,能够运用这类体式格局来查找关联的域名。一种操纵步骤以下:
查询域名注册邮箱
经由过程域名查询备案号
经由过程备案号查询域名
反查注册邮箱
反查注册人
经由过程注册人查询到的域名在查询邮箱
经由过程上一步邮箱去查询域名
查询以上获掏出的域名的子域名
2.1.6. 网站信息应用
网站中有相称多的信息,网站自身、各项平安战略、设置等都能够暴露出一些信息。
网站自身的交互平常不囿于单个域名,会和其他子域交互。关于这类状况,能够经由过程爬取网站,网络站点中的其他子域信息。这些信息平常涌现在Java文件、资本文件链接等位置。
网站的平安战略如跨域战略、CSP划定规矩等平常也包括相干域名的信息。偶然候多个域名为了轻易会运用同一个SSL/TLS证书,因而偶然可经由过程证书来猎取相干域名信息。
2.1.7. 证书透明度
为了保证HTTPS证书不会被误发或捏造,CA会将证书纪录到可公然考证、不可改动且只能附加内容的日记中,任何感兴趣的相干方都能够检察由受权中间签发的一切证书。因而能够经由过程查询已受权证书的体式格局来取得相干域名。
2.1.8. 域传送破绽
DNS域传送(zone transfer)指的是冗余备份效劳器运用来自立效劳器的数据革新本身的域(zone)数据库。这是为了防备主效劳器因不测不可用时影响到全部域名的剖析。
平常来讲,域传送操纵应当只允许可托的备用DNS效劳器提议,然则假如毛病设置了受权,那末恣意用户都能够取得全部DNS效劳器的域名信息。这类毛病受权被称作是DNS域传送破绽。
2.1.9. Passive DNS
Passive DNS被动的从递归域名效劳器纪录来自差别域名效劳器的相应,构成数据库。应用Passive DNS数据库能够晓得域名曾绑定过哪些IP,IP曾关联到哪些域名,域名最早/近来涌现的时候,为测试供应较大的协助。Virustotal、passivetotal、CIRCL等网站都供应了Passive DNS数据库的查询。
2.1.10. SPF纪录
SPF(Sender Policy Framework)是为了防备垃圾邮件而提出来的一种DNS纪录范例,是一种TXT范例的纪录,用于登记某个域名具有的用来外发邮件的一切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. 子域爆破
在内网等不容易用到以上技能的环境,或许想监测新域名上线时,能够经由过程批量尝试的体式格局,找到有用的域名,以上等内容基本全面性比较掩盖网站平安轻易的渗入测试要领,假如对此有需求能够联络专业的网站平安公司来处置惩罚处理,防备被入侵被进击之类的平安题目。