一次性付费进群,长期免费索取教程,没有付费教程。
进微信群回复公众号:微信群;QQ群:460500587
教程列表 见微信公众号底部菜单 | 本文底部有推荐书籍微信公众号:计算机与网络安全
ID:Computer-network
安全漏洞审计,作为扫描器的核心功能,会告诉扫描器如何去检测和审计漏洞。它可以看作扫描器的大脑,通过对每一种漏洞进行场景化学习,从中提取漏洞的扫描特征,将其存储到扫描知识库中,这样扫描器就能具备该种漏洞的检测能力了。而漏洞特征的提取也就是这里所说的安全漏洞审计。在扫描器的实践中,这部分显然是最重要的,不过也是有规律可循的。
对于任何一种漏洞的检测或审计,都会遵循下面的流程:
● 需要分析现实中这个漏洞的各种场景。
● 构造出可以覆盖所有漏洞场景的扫描载荷(payload)。
● 将其转化成扫描器的检测脚本并生成最终的扫描签名。
扫描器通过这种方式不断地学习新的漏洞和丰富扫描知识库,它就能具备最新漏洞的检测能力,并能持续保持较高的扫描检出率。
通用型漏洞具有普遍性,大部分应用都会涉及如 SQL 注入漏洞、XSS 跨站漏洞、命令执行注入或文件包含漏洞等。它们主要是针对HTTP请求中的输入部分进行测试的,通过改变这些输入值就可以对漏洞进行测试和判定。
1、SQL注入漏洞
所谓 SQL 注入漏洞,就是程序对用户的输入没有进行过滤,直接将其拼接到数据库语句中所致。攻击者可以通过提交恶意构造的数据,从而改变原有 SQL 语句执行的逻辑,并执行额外的数据库操作,最终产生非预期的攻击结果。
下面举一个典型的SQL 注入漏洞例子。
变量id的值是由用户输入的,在正常的情况下,当输入参数时,如果输入的内容:id=3,那么执行的SQL语句为:
这时程序会把数据库user表中id等于3的那条记目取出来,如下:
可当我们输入经过恶意构造的参数时,执行的结果却完全不一样,如果输入的内容:id=3 or 1=1,那么执行的SQL语句为:
这时程序会把数据库content表中所有的记目都读取出来,如下:
从上面这个例子可以发现,经过构造的输入内容其实已经改变了原有 SQL 语句的逻辑,原有SQL语句的逻辑为:
而