using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(?:having\s*?[^\s]+\s*?[^\w\s])";
string input = @"=== libinjection tests ===
1 I like having true friends
I like having true friends
I having true friends
I was having true friends
1 having
Family and friends having meal outdoors
=== FP ===
1 I like having true, friends
1 having test, test
Family and friends having meal, outdoors
having test , test
having test test,
=== SQL ===
8' GROUP BY ID_ARTICLE HAVING COUNT(ID_ARTICLE) = '2'
8' GROUP BY ID_ARTICLE HAVING 1 = 1
8' GROUP BY ID_ARTICLE HAVING 1,
8' GROUP BY ID_ARTICLE HAVING true,
FROM Sales.SalesOrderDetail GROUP BY SalesOrderID HAVING SalesOrderID > 50000
-3223%'))) OR 1 GROUP BY CONCAT(0x716a787a71,(SELECT (CASE WHEN (3900=3900) THEN 1 ELSE 0 END)),0x7171627671,FLOOR(RAND(0)*2)) HAVING MIN(0)#""
-2906%' OR 1 GROUP BY CONCAT(0x716a787a71,(SELECT (CASE WHEN (3900=3900) THEN 1 ELSE 0 END)),0x7171627671,FLOOR(RAND(0)*2)) HAVING MIN(0)#""
-2836%00' OR 1 GROUP BY CONCAT(0x716a787a71,(SELECT (CASE WHEN (3900=3900) THEN 1 ELSE 0 END)),0x7171627671,FLOOR(RAND(0)*2)) HAVING MIN(0)#""
-8115 OR 1 GROUP BY CONCAT(0x716a787a71,(SELECT (CASE WHEN (3900=3900) THEN 1 ELSE 0 END)),0x7171627671,FLOOR(RAND(0)*2)) HAVING MIN(0)#""
-2949 OR 1 GROUP BY CONCAT(0x716a787a71,(SELECT (CASE WHEN (3900=3900) THEN 1 ELSE 0 END)),0x7171627671,FLOOR(RAND(0)*2)) HAVING MIN(0)#""
-4609) WHERE 5091=5091 OR 1 GROUP BY CONCAT(0x716a787a71,(SELECT (CASE WHEN (3900=3900) THEN 1 ELSE 0 END)),0x7171627671,FLOOR(RAND(0)*2)) HAVING MIN(0)#""
1 having 1=1
1 having 1
1 having 1=1
1 having id=id
I am having trouble -.-
";
RegexOptions options = RegexOptions.IgnoreCase;
foreach (Match m in Regex.Matches(input, pattern, options))
{
Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx