package burp; import static org.junit.Assert.*; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.net.URLDecoder; import java.util.ArrayList; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @SuppressWarnings("deprecation") public class BurpHashEmailTests { @Before public void setUp() throws Exception { } @After public void tearDown() throws Exception { } @Test public void testJunitIsWorking() { String str= "Junit is working fine"; assertEquals("Junit is working fine",str); } @Test public void emailregex0() { String email = "joe@example.com"; Matcher matcher = burpExtender.emailRegex.matcher(email); assertTrue(matcher.find() && matcher.group().equals("joe@example.com")); } @Test public void emailregex1() { String email = "&email=joe@example.com&"; Matcher matcher = burpExtender.emailRegex.matcher(email); assertTrue(matcher.find() && matcher.group().equals("joe@example.com")); } @Test public void emailregex2() { String email = "{\"email\":\"foo@bar.com\"}"; Matcher matcher = burpExtender.emailRegex.matcher(email); assertTrue(matcher.find() && matcher.group().equals("foo@bar.com")); } @Test public void emailregex3() { String email = "{\"email\":\"foo-foo@bar-bar.com\"}"; Matcher matcher = burpExtender.emailRegex.matcher(email); assertTrue(matcher.find() && matcher.group().equals("foo-foo@bar-bar.com")); } @Test public void emailregex4() { String email = "{\"email\":\"foo.foo@bar.bar.com\"}"; Matcher matcher = burpExtender.emailRegex.matcher(email); assertTrue(matcher.find() && matcher.group().equals("foo.foo@bar.bar.com")); } @Test public void emailregex5() { String email = "{email:foo-bar@yo-domain.com}"; Matcher matcher = burpExtender.emailRegex.matcher(email); assertTrue(matcher.find() && matcher.group().equals("foo-bar@yo-domain.com")); } @Test public void emailregex6() { String email = "foo=joe.smith@somewhere.cc&this=not_yours;"; Matcher matcher = burpExtender.emailRegex.matcher(email); assertTrue(matcher.find() && matcher.group().equals("joe.smith@somewhere.cc")); } @Test public void emailregex7() { String email = "foo=;asdf-asdf@gmail.com;"; Matcher matcher = burpExtender.emailRegex.matcher(email); assertTrue(matcher.find() && matcher.group().equals("asdf-asdf@gmail.com")); } @Test public void emailregex8() { String email = "foo=;asdf-asdf%40gmail.com;"; Matcher matcher = burpExtender.emailRegex.matcher(URLDecoder.decode(email)); assertTrue(matcher.find() && matcher.group().equals("asdf-asdf@gmail.com")); } @Test public void emailregex9() { String email = "&email=joe@joe.com&acceptTerms=true"; Matcher matcher = burpExtender.emailRegex.matcher(URLDecoder.decode(email)); matcher.find(); String result = matcher.group(); assertTrue(result.equals("joe@joe.com&acceptterms")); result = result.split("&")[0]; //assertTrue(result.equals("joe@joe.com")); } BurpExtender burpExtender = new BurpExtender(); String requestWithUrlEncodedEmail = "POST /blog/forgot2 HTTP/1.1\r\n" + "Host: 192.168.13.216:999\r\n" + "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:39.0) Gecko/20100101 Firefox/39.0\r\n" + "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n" + "Accept-Language: en-US,en;q=0.5\r\n" + "Accept-Encoding: gzip, deflate\r\n" + "Referer: http://192.168.13.216:999/blog/reset\r\n" + "Cookie: csrftoken=5865246ded13f3543adef0a39ed494b3\r\n" + "Connection: keep-alive\r\n" + "Content-Type: application/x-www-form-urlencoded\r\n" + "Content-Length: 87\r\n" + "\r\n" + "csrfmiddlewaretoken=5865246ded13f3543adef0a39ed494b3&email=joe%40joe.com&acceptTerms=on\r\n"; @Test public void FindEmail_urlEncoded_returnsEmptyCollection() { List<Item> items = new ArrayList<>(); items.addAll(burpExtender.findEmailRegex(requestWithUrlEncodedEmail)); assertTrue(items.isEmpty()); } @Test public void FindEmail_urlDecoded_returnsNonEmptyCollection() { List<Item> items = new ArrayList<>(); String urlDecoded = URLDecoder.decode(requestWithUrlEncodedEmail); items.addAll(burpExtender.findEmailRegex(urlDecoded)); assertFalse(items.isEmpty()); } @Test public void FindEmail_returnsExpectedEmail() { List<Item> items = new ArrayList<>(); String urlDecoded = URLDecoder.decode(requestWithUrlEncodedEmail); items.addAll(burpExtender.findEmailRegex(urlDecoded)); String expected = "joe@joe.com"; String actual = items.get(0).getValue(); assertTrue(expected.equals(actual)); } }