通达OA /interface/auth.php SQL注入

- AV AC AU C I A
发布: 2025-04-13
修订: 2025-04-13

通达OA 两处注入点: ``` /interface/auth.php /general/score/flow/scoredate/result.php ``` 主要原因还是由于宽字符导致的。 MYSQL的字符集转换过程 1. MySQL Server收到请求时将请求数据从character_set_client转换为character_set_connection; 2. 进行内部操作前将请求数据从character_set_connection转换为内部操作字符集,其确定方法如下: • 使用每个数据字段的CHARACTER SET设定值; • 若上述值不存在,则使用对应数据表的DEFAULT CHARACTER SET设定值(MySQL扩展,非SQL标准); • 若上述值不存在,则使用对应数据库的DEFAULT CHARACTER SET设定值; • 若上述值不存在,则使用character_set_server设定值。 • 将操作结果从内部操作字符集转换为character_set_results。 >宽字节注入发生的位置就是PHP发送请求到MYSQL时字符集使用character_set_client设置值进行了一次编码。 ``` 1,$_GET[‘sql’] 经过 addslashes编码之后带入了‘\’ 变为USER_ID=%df%5c%27 2,带入mysql处理时使用了gbk字符集 %df%5c变成 運 成功的吃掉了%5c 从而导致单引号成功闭合 ``` GBK编码,它的编码范围是0x8140~0xFEFE(不包括xx7F),在遇到%df(ascii(223)) ascii(128)时自动拼接%5c,因此吃掉‘\’,而%27、%20小于ascii(128)的字符就保留了。 在提交USER_ID=%df%27 或者 USER_ID=%df%27 ![](https://images.seebug.org/contribute/79ec0845-785c-4875-8764-ff021729b660-1.png) ![](https://images.seebug.org/contribute/49768c40-009b-46ab-b62a-cdd32434f04e-2.png) 构造相应的payload即可完成攻击 ```...

0%
暂无可用Exp或PoC
当前有0条受影响产品信息