本章内容为安全测试的基础,阅读时间大概【五分钟】,很重要!
安全测试 和 常规测试的 区别
目标不同:
安全测试为了发现安全隐患为目标;常规测试则是为了发现bug
条件不同:
安全测试假设问题产生是由于黑客行为,有极高的针对性;常规测试相关的只有脏数据,属于用户不小心造成的。
思考域不同:
安全测试需要考虑系统的外部环境,应用数据安全;常规测试基于功能出发。
问题发现依据不同:
安全测试以违反权限和能力作为判定漏洞依据;常规测试基于功能需求出发。
安全测试和渗透测试 的区别
出发点不同:
安是以发现安全隐患出发;渗是以成功入侵系统,证明系统存在安全隐患出发;
视角不同:
安是站在防护者角度自查;渗是以攻击者角度来攻击。
覆盖性:
安是测试系统架构层面;渗是值针对几个点进行攻击测试。
成本诧异:
安需要成本大;渗需要成本小
解决方案不同:
安站在开发者角度,最终能提供解决方案;渗则可以只抛出问题即可
常见的安全测试工具
Web漏洞扫描工具——AppScan
拥有十分强大的报表。采用黑盒方式自动探查。
1)探测:在探测阶段,AppScan通过发送请求对站内的链接、表单等进行访问,根据响应信息检测目标程序可能存在的安全隐患,从而确定安全漏洞范围。 (2)测试:在测试阶段,AppScan对潜在的安全漏洞发起攻击。AppScan有一个内置的测试策略库,测试策略库可以针对相应的安全隐患检测规则生成对应的测试输人,AppScan就使用生成的测试输人对安全漏洞发起攻击。 (3)扫描:在扫描阶段,AppScan会检测目标程序对攻击的响应结果,并根据结果来确定探测到的安全漏洞是否是一个真正的安全漏洞,如果是一个真正的安全漏洞则根据其危险程度确定危险级别,为开发人员修复缺陷提供依据。
端口扫描工具——Nmap
网络端口自动扫描。
主机扫描:用于发现目标主机是否处于活动状态。Nmap提供了多种主机在线检测机制,可以更有效地辨识主机是否在线。 ·端口状态扫描:Nmap可以扫描端口,并将端口识别为开放、关闭、过滤、未过滤、开放或过滤、关闭或过滤6种状态。默认情况下,Nmap可以扫描1 660 个常用的端口,覆盖大多数应用程序使用的端口。 ·应用程序版本探测: Nmap可以扫描到占用端口的应用程序,并识别应用程序版本和使用的协议等。Nmap可以识别数千种应用的签名,检测数百种应用协议。对于不识别的应用,默认打印应用的指纹。 ·操作系统探测: Nmap可以识别目标主机的操作系统类型、版本编号及设备类型。它支持1500个操作系统或设备的指纹数据库,可以识别通用PC系统、路由器、交换机等设备类型。 ·防火墙/IDS逃避和欺骗:Nmap可以探查目标主机的状况,如IP欺骗、IP伪装、MAC地址伪装等。 ·支持测试对象交互脚本:交互脚本用于增强主机发现、端口扫描、版本侦测和操作系统侦测等功能,还可扩展高级的功能,如Web扫描、漏洞发现和漏洞利用等。
抓包工具 fiddler chalres等
它以代理Web服务器形式工作,帮助用户记录计算机和Intermet之间传递的所有HTTP( HTTPS)流量
可以捕获来自本地运行程序的所有流量,从而记录服务器到服务器、设备到服务器之间的流量。此外,Fiddler 还支持各种过滤器,如“隐藏会话”“突出特殊流量”“在会话上操纵断点” “阻止发送流量”等,这些过滤 器可以过滤出用户 想要的流量数据,节省大量时间和精力。
Web渗透测试工具一Metasploit
一个渗透测试平台,能够查找、验证漏洞,并利用漏洞进行渗透攻击。
(1)渗透模块( Exploit):运行时会利用目标的安全漏洞进行攻击。 (2)攻击载荷模块( Payload):在成功对目标完成一次渗透之后,测试程序开始在目标计算机上运行。它能帮助用户在目标系统上获得需要的访问和行动权限。 (3)辅助模块( Auxiliary):包含了一系列的辅助支持模块,包括扫描模块、漏洞发掘模块、网络协议欺骗模块。 (4)编码器模块( Encoder):编码器模块通常用来对我们的攻击模块进行代码混淆,逃过目标安全保护机制的检测,如杀毒软件和防火墙等。 (5) Meterpreter:使用内存技术的攻击载荷,可以注人进程之中。它提供了各种可以在目标上执行的功能。
常见攻击方式
sql注入
就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
xss跨站攻击
攻击者注入任意脚本(一般是javascript)到合法网站或者web程序中,这个脚本执行在客户端
css攻击
包含点击劫持:用户点击到其他透明的按钮上。
css流量劫持:用户进入页面点击到透明蒙层跳转到其他页面
xpath注入
攻击者注入数据到应用程序中来执行精心准备的XPath查询,以此来获得无授权访问和bypass授权