コード例 #1
0
ファイル: HtmlFormTokenizer.cs プロジェクト: rmkerr/RiverFuzz
        public TokenCollection ExtractTokens(Response response)
        {
            TokenCollection tokens = new TokenCollection();

            if (response.Headers.ContainsKey("Content-Type") &&
                response.Headers["Content-Type"].Count >= 1 &&
                response.Headers["Content-Type"][0].Contains("text/html"))
            {
                HtmlDocument doc = new HtmlDocument();
                doc.LoadHtml(response.Content);

                var nodes = doc.DocumentNode.SelectNodes("//input[@type=\"hidden\"]");

                if (nodes != null)
                {
                    foreach (HtmlNode node in nodes)
                    {
                        string value = node.GetAttributeValue("value", "");
                        if (value != "")
                        {
                            HtmlFormToken token = new HtmlFormToken(node.GetAttributeValue("name", "likely-csrf"), value, TypeGuesser.GuessTypes(value));
                            tokens.Add(token);
                        }
                    }
                }
            }
            return(tokens);
        }
コード例 #2
0
        public void HtmlFormToken_KeyValue_ReplaceSecondValue()
        {
            string  content = "key1=value1&key2=value2";
            Request request = new Request(new Uri("http://test.com"), HttpMethod.Get, content);

            request.Headers.Add("Content-Type", new List <string> {
                "application/x-www-form-urlencoded"
            });

            HtmlFormToken token1 = new HtmlFormToken("key2", "", Types.String);

            token1.ReplaceValue(request, "testvalue");

            Assert.Equal("key1=value1&key2=testvalue", request.Content);
        }
コード例 #3
0
ファイル: HtmlFormTokenizer.cs プロジェクト: rmkerr/RiverFuzz
        public TokenCollection ExtractTokens(Request request)
        {
            TokenCollection tokens = new TokenCollection();

            if (request.Headers.ContainsKey("Content-Type") &&
                request.Headers["Content-Type"].Count >= 1 &&
                request.Headers["Content-Type"][0] == "application/x-www-form-urlencoded")
            {
                string[] pairs = request.Content.Split("&");
                foreach (string pair in pairs)
                {
                    if (pair.Length >= 3)
                    {
                        string[]      data  = pair.Split('=', 2);
                        HtmlFormToken token = new HtmlFormToken(HttpUtility.UrlDecode(data[0]), HttpUtility.UrlDecode(data[1]), TypeGuesser.GuessTypes(HttpUtility.UrlDecode(data[1])));
                        tokens.Add(token);
                    }
                }
            }
            return(tokens);
        }