前期分享了sql注入+json绕过WAF的实际案例和原理(详见:不止防JSON技术绕过,RASP相比WAF的七大技术优势),本期给大家分享WAF防护的绕过方式之任意文件上传,这个漏洞又是怎样被RASP防护的呢?
WAF VS RASP
WAF作为一种企业常见的传统安全设备或程序,通常放置在Web应用程序之前,用于检查每个传入的HTTP请求流量是否存在已知攻击,防护规则库内置到WAF中,用于防御众所周知的攻击。而在当下,面对更复杂更多变的软工供应链安全威胁,WAF存在的误报率高、检测被高级攻击绕过、对0day漏洞防御能力弱等问题,让WAF的防御“心有余而力不足”。
RASP通过在应用程序的字节码中动态插桩检测“探针”,来获取应用程序各种运行时的上下文信息,在应用程序运行的时候,利用当前上下文信息实时保护应用,使应用程序具备自我保护能力,不需要进行人工干预。
结合当下热门的ChatGPT工具,ChatGPT可与RASP技术的全自动化漏洞挖掘方式结合,不仅可解决QL规则的迭代、扫描规则误报问题,还可完成代码审计流程的闭环。结果更加稳定、可靠,最终实现高效、精准的漏洞挖掘。
RASP的优势是什么?
01可见性
当检测到威胁时,RASP可收集应用程序行为的上下文数据。准确定位攻击所在代码行攻击,漏洞等级,相应解决办法以及哪些应用程序已成为攻击目标。
02实时运行
RASP无需人工干预,使应用程序运行时具有自我保护功能。
03低误报
RASP可识别攻击和合法信息请求之间的区别,极大地减少误报数量。
04智能应对0day漏洞
0day漏洞意味着安全攻击与漏洞被发现在同一天,RASP可通过自身特性及检测原理智能应对0day漏洞。
文件上传漏洞——绕过WAF手段
对于文件上传漏洞而言,攻击者可以利用WAF的缺陷进行绕过防御,如:
●在恶意代码前加垃圾数据;
●在数据包前加垃圾数据;
●在Content-Disposition参数后面加垃圾数据;
●多加一个filename;
●更改HTTP请求方法;
●删除实体里面的Conten-Type字段:第一种是删除Content整行,第二种是删除C后面的字符。删除掉ontent-Type: image/jpeg只留下c,将.php加c后面即可,但是要注意,双引号要跟着c.php;
●删除Content-Disposition字段里的空格;
●增加一个空格;
●修改Content-Disposition字段值的大小写;
●文件名后缀处回车;
●多个Content-Disposition。
以上列举了文件上传漏洞之WAF防护常用的被绕过手段,WAF主要检测的是请求信息,包括请求地址、请求方式、参数、请求头等。而RASP不光可以检测请求信息,还可以对底层代码的调用进行检测,所以以上WAF绕过方式理论上RASP都可以进行检测与防护,且漏报、误报率较少,准确率较高。
接下来我们看一个实际案例:任意文件上传漏洞——WAF被绕过,RASP有效防护案例:
01无WAF无RASP防护靶场输出情况:
Jsp内容如下:
02有WAF防护靶场输出情况:
03通过增加name=”file”来绕过WAF如图下,RASP拦截情况:
虽然绕过WAF,但到后端会被RASP检测到:
RASP拦截成功如下图:
上述案例展示了WAF与RASP联用,WAF被绕过以后通过RASP进行实时防护的效果。
WAF与RASP相辅相成
当攻击者突破外围防御(如WAF)之后,RASP 依旧可以攻击检测与防护。RASP利用收集到的上下文信息进行灵活的重组和分析,识别恶意攻击,这意味着RASP可以高度精准抵御攻击,可以区分实际的攻击和合法的信息请求减少误报。
当然WAF也有自身的优势,攻击者进行真正的攻击之前,通常会制造大量的非正常流量,这些流量包括推测可注入点、服务器环境信息等,而WAF可以将所有的流量进行记录,且根据规则库内容进行拦截。RASP只处理有害的流量,不会对正常的流量进行记录,所以WAF和RASP在必要的场景下亦可相辅相成。与 WAF 一样,RASP 不会修复应用程序的源代码,但是以探针插桩的形式将自身和应用程序相结合,实时防护应用。
开源网安实时应用自我防护平台
开源网安实时应用自我防护平台(简称RASP),采用插桩技术实现无需人工干预的、无感知的攻击检测和防护功能。针对互联网企业和分布式应用项目,RASP平台的部署效率与防护效果更加明显。