Exemple #1
0
        private ExpressionInfo HandleGetOptions(FunctionCall call, IDictionary <uint, ExpressionInfo> argumentInfos, ExpressionInfo exprInfo)
        {
            XmlNode firstArgument;
            string  optionsKeyValue;

            if (call.Arguments.TryGetValue(1, out firstArgument) && TryGetOptionKeyValue(firstArgument, argumentInfos[1], out optionsKeyValue))
            {
                Func <TaintSets> taintFactory = () => new TaintSets(new SQLITaintSet(SQLITaint.SQL_ALL), new XSSTaintSet(XSSTaint.XSS_ALL));
                var possibleStoredTaint       = new StoredVulnInfo()
                {
                    StorageOrigin = "Options",
                    StorageName   = optionsKeyValue,
                    Taint         = taintFactory(),
                    ICantFeelIt   = IsItInYet.NoImPullingOut
                };
                var getOptionResult = new ExpressionInfo
                {
                    ExpressionStoredTaint = possibleStoredTaint,
                    ValueInfo             =
                    {
                        PossibleStoredTaint                             = possibleStoredTaint,
                        NestedVariablePossibleStoredDefaultTaintFactory = taintFactory,
                    },
                };
                return(getOptionResult);
            }
            return(exprInfo);
        }
Exemple #2
0
 public ValueInfo()
 {
     Taints    = new TaintSets().ClearTaint();
     Variables = new Dictionary <VariableTreeDimension, Variable>();
     NestedVariableDefaultTaintFactory = () => new TaintSets();
     NestedVariablePossibleStoredDefaultTaintFactory = () => new TaintSets();
     DefaultDimensionTaintFactory = () => new TaintSets();
     PossibleStoredTaint          = new StoredVulnInfo();
     ClassNames = new List <string>();
 }
Exemple #3
0
 private ExpressionInfo HandleGetOptions(FunctionCall call, IDictionary<uint, ExpressionInfo> argumentInfos, ExpressionInfo exprInfo)
 {
     XmlNode firstArgument;
     string optionsKeyValue;
     if (call.Arguments.TryGetValue(1, out firstArgument) && TryGetOptionKeyValue(firstArgument, argumentInfos[1], out optionsKeyValue))
     {
         Func<TaintSets> taintFactory = () => new TaintSets(new SQLITaintSet(SQLITaint.SQL_ALL), new XSSTaintSet(XSSTaint.XSS_ALL));
         var possibleStoredTaint = new StoredVulnInfo()
                                     {
                                         StorageOrigin = "Options",
                                         StorageName = optionsKeyValue,
                                         Taint = taintFactory(),
                                         ICantFeelIt = IsItInYet.NoImPullingOut
                                     };
         var getOptionResult = new ExpressionInfo
                               {
                                   ExpressionStoredTaint = possibleStoredTaint,
                                   ValueInfo =
                                   {
                                       PossibleStoredTaint = possibleStoredTaint,
                                       NestedVariablePossibleStoredDefaultTaintFactory = taintFactory,
                                   },
                               };
         return getOptionResult;
     }
     return exprInfo;
 }