@@ -24,6 +24,7 @@ type Config struct {
2424	Multiple       bool 
2525	StdinWordlist  bool 
2626	DisplayModes   []DisplayMode 
27+ 	FullDisplay    bool 
2728	HideBanner     bool 
2829	Hide           bool 
2930	Filters        []Filter 
@@ -43,31 +44,30 @@ CONFIGURATION
4344  -if, --stdin-fuzzing        fuzz sdtin instead of command line 
4445  -m, --spider                fuzz multiple keyword places. You must provide as many wordlists as keywords. Provide them in order you want them to be applied. 
4546  -sw, --stdin-wordlist       provide wordlist in cfuzz stdin 
46-   -T, --threads               number of concurrent threads (if no limit is set the execution of the command could be modified) 
4747
4848DISPLAY 
4949  -oc, --stdout               display stdout number of characters 
5050  -ec, --stderr               display stderr number of characters 
5151  -t, --time                  display execution time 
5252  -c, --code                  display exit code 
5353  -Hb, --no-banner            do not display banner 
54-   -w , --only-word             only display words 
55-    
54+   -r , --only-word             only display words (from wordlist)  
55+   -f, --full-output           display full command execution output (can't be combined with others display mode)  
5656
5757FILTER 
58- 
5958  -H, --hide                  only display results that don't pass the filters 
6059
6160 STDOUT: 
6261  -omin, --stdout-min         filter to only display if stdout characters number is lesser than n 
6362  -omax, --stdout-max         filter to only display if stdout characters number is greater than n 
6463  -oeq,  --stdout-equal       filter to only display if stdout characters number is equal to n 
65-   -r ,   --stdout-word          filter to only display if stdout cointains specific word 
64+   -ow ,   --stdout-word        filter to only display if stdout cointains specific word 
6665
6766 STDERR: 
6867  -emin, --stderr-min         filter to only display if stderr characters number is lesser than n 
6968  -emax, --stderr-max         filter to only display if stderr characters number is greater than n 
7069  -eeq,  --stderr-equal       filter to only display if stderr characters number is equal to n 
70+   -ew,   --stderr-word        filter to only display if stderr cointains specific word 
7171
7272 TIME: 
7373  -tmin, --time-min           filter to only display if exectuion time is shorter than n seconds 
@@ -168,6 +168,9 @@ func NewConfig() Config {
168168	flag .BoolVar (& codeDisplay , "c" , false , "display command execution exit code." )
169169	flag .BoolVar (& codeDisplay , "code" , false , "display command execution exit code." )
170170
171+ 	flag .BoolVar (& config .FullDisplay , "f" , false , "display full command execution output" )
172+ 	flag .BoolVar (& config .FullDisplay , "full-output" , false , "display full command execution output" )
173+ 
171174	// FILTERS 
172175	var  success , failure  bool 
173176	flag .BoolVar (& success , "success" , false , "filter to display only command with exit code 0." )
@@ -190,7 +193,7 @@ func NewConfig() Config {
190193
191194	// parse display mode 
192195	if  ! noDisplay  {
193- 		config .DisplayModes  =  parseDisplayMode (stdoutDisplay , stderrDisplay , timeDisplay , codeDisplay )
196+ 		config .DisplayModes  =  parseDisplayMode (& config ,  stdoutDisplay , stderrDisplay , timeDisplay , codeDisplay )
194197	}
195198
196199	return  config 
@@ -222,6 +225,10 @@ func (c *Config) CheckConfig() error {
222225	} else  if  ! c .Multiple  &&  len (c .Wordlists ) >  1  {
223226		return  errors .New ("Several wordlists have been submitted. Please use -m flag to use more than one wordlist/keyword" )
224227	}
228+ 
229+ 	if  c .FullDisplay  &&  len (c .DisplayModes ) >  0  {
230+ 		return  errors .New ("-f/full-output can't be used with other display mode:"  +  c .DisplayModes [0 ].Name ()) //only give the first one for example 
231+ 	}
225232	// check field consistency 
226233	err  :=  checkKeywordsPresence (c )
227234
@@ -254,7 +261,7 @@ func checkKeywordsPresence(c *Config) error {
254261}
255262
256263//parseDisplayMode: Return array of display mode interface chosen with flags. If none, default is stdout characters display mode 
257- func  parseDisplayMode (stdout  bool , stderr  bool , time  bool , code  bool ) (modes  []DisplayMode ) {
264+ func  parseDisplayMode (c   * Config ,  stdout  bool , stderr  bool , time  bool , code  bool ) (modes  []DisplayMode ) {
258265	if  stdout  {
259266		modes  =  append (modes , StdoutDisplay {})
260267	}
@@ -268,11 +275,14 @@ func parseDisplayMode(stdout bool, stderr bool, time bool, code bool) (modes []D
268275		modes  =  append (modes , CodeDisplay {})
269276	}
270277
271- 	//default, if none 
272- 	if  len (modes ) ==  0  {
273- 		stdoutDisplay  :=  StdoutDisplay {}
274- 		modes  =  []DisplayMode {stdoutDisplay }
278+ 	//default, if none && not full display 
279+ 	if  ! c .FullDisplay  {
280+ 		if  len (modes ) ==  0  {
281+ 			stdoutDisplay  :=  StdoutDisplay {}
282+ 			modes  =  []DisplayMode {stdoutDisplay }
283+ 		}
275284	}
285+ 
276286	return  modes 
277287}
278288
@@ -367,6 +377,15 @@ func parseFilters(config *Config) {
367377		})
368378	}
369379
380+ 	ewordS  :=  []string {"ew" , "stderr-word" }
381+ 	for  i  :=  0 ; i  <  len (ewordS ); i ++  {
382+ 		flag .Func (ewordS [i ], "filter to display only results cointaing specific in stderr" , func (word  string ) error  {
383+ 			filter  :=  StderrWordFilter {TargetWord : word }
384+ 			config .Filters  =  append (config .Filters , filter )
385+ 			return  nil 
386+ 		})
387+ 	}
388+ 
370389	// time filters 
371390	tmaxS  :=  []string {"tmax" , "time-max" }
372391	for  i  :=  0 ; i  <  len (tmaxS ); i ++  {
0 commit comments