admin 管理员组

文章数量: 1086019


2024年4月29日发(作者:下载游戏)

AWVSAcuSensor功能分析

Auth:Cryin’

Date:2016.05.08

AcuSensor

AcuSensor是AcunetixWebVulnerabilityScanner推出的基于交互式应用安全检测(IAST)

技术的Web漏洞扫描功能,目前支持.net、php两种语言站点,根据目标站点可以分别配置

生成agent端。

其中.net程序的agent端是一个客户端setup程序,需要在web服务器上安装并配置iis、

站点目录等。

php程序的agent是一个php文件(配置生存的php代码经过混淆),php文件需要上传至web

服务器并配置文件auto_prepend_file字段,该字段功能是将该php文件加入网站

文件页眉中。

agent原理及实现分析

AcuSensor的agent主要作用是对php关键函数SQL_Query、File_Open、Sys_Command、

Create_Function、Delete_File等进行监控。当这些函数执行将参数及相关信息echo到

responsebody中供扫描器分析。Agent代码功能及流程如下:

1、判断httpheader字段是否存在及密码正确性,从而执行agent,直接访问agent页面

返回404;

2、根据Acunetix-Aspect-Queries字段判断特定任务类型:aspectalerts、filelist两种,

无Acunetix-Aspect-Queries则执行一般的IAST任务:

1)aspectalerts:phpconfig信息等

2)filelist:该页面文件所在目录的所有的文件列表信息

3、判断HTTP_ACUNETIX_ASPECT状态是否为enable,并检查HTTP_ACUNETIX_ASPECT_PASSWORD

字段是否和预设password相同。password编码后保存在agent文件末尾;

4、使用set_error_handler函数设置一个用户定义的错误处理函数。根据不同的错误类型

在响应内容中echo错误信息:

5、使用token_get_all将访问的php文件源代码进行解析,对class、函数、参数、注释、

T_VARIABLE等各种字段进行处理并保存在临时文件当中;

6、对于临时文件中需要监控的函数则替换为自定义函数,自定义函数中再调用监控函数。

然后执行临时php文件;

7、使用debug_backtrace跟踪php程序执行的bug信息,获取当前函数、class、args、

object、line、file信息,如图:

8、对于返回的信息进行格式化,如:

00000010PHP_File_Includes00000014database_00000018/hj/var/www//produ

00000001s0000001A"require_once"wascalled.

其中00000010为16进制,表示后面数据的长度,该串数字后可能出现""、"s"、"n"、"a",

分别标识16进制数后面的数据是string、null、array类型。

AcuSensor漏洞检测原理

SQLinjection漏洞实例

AcuSensor在扫描到sql注入时会根据Agent返回的信息判断漏洞是否真实存在,如真实存

在则标注verified,并给出具体漏洞php文件、漏洞产生的对应代码行数

SQLinjection漏洞数据包分析

Agent将监控到的漏洞信息通过base64编码返回到相应消息中,扫描器获取数AcuSensor

据得到漏洞详细信息。如图:


本文标签: 漏洞 文件 函数 信息 是否