postgresql - 通过正则表达式和类似的

时间:2017-02-08 17:20:14

标签: regex postgresql sql-injection

有人告诉我,在SIMILAR TO中将REGEXPOSTGRESQL结合使用时,可能会出现SQL注入。我阅读了相应的手册,上面写着:

  

要小心接受来自敌对的正则表达式搜索模式   源。如果必须这样做,建议发表声明   超时。   9.7. Pattern Matching

然而,我进行了广泛的搜索,但找不到这种攻击的样本。有人可以提供一个例子吗?

1 个答案:

答案 0 :(得分:0)

使用SIMILAR TOREGEX可以为SQL注入创建向量,即使在使用PDO抽象时,如果接受未经过滤的用户输入也可能导致ReDOS attack

例如(使用PHP代码),如果您有:

$this->pdo->prepare('SELECT * FROM items WHERE text SIMILIAR TO :searchpattern');
// OR
$this->pdo->prepare('SELECT * FROM items WHERE text ~ :searchpattern');
$stmt->bindValue(':searchpattern', $_GET['searchpattern']);

然后,如果有人发送了搜索模式([a-zA-Z]+)*$(源:https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS),您将在服务器上导致一个进程,该进程的执行时间将随着要测试的字符串的长度呈指数增长(在此示例中)情况下,DB字段-text),例如该字符串在最后一个字符上失败。