Repository: projectdiscovery/httpx (language: go)

Issue:
Remove tech-detect info from default output to stdout
### Please describe your feature request:
Starting in either 1.6.1 or 1.6.2 the default output to stdout includes the info from --tech-detect. While this info is useful in certain scenarios, it goes against the streamlined integration with other tools/utilities that httpx and other projectdiscovery tools are known for. Now it's required to add the -tech-detect=false flag every time you use httpx and want to pipe the output to another tool or just copy the URL list without extra data. 

This feature request is requesting that the default output be changed back to how it was in 1.6.0 and prior, removing the tech-detect info from stdout by default and only including it when the --tech-detect flag is used. 

Here's a screenshot of an example of the behaviour pre and post upgrade
![httpx](https://github.com/projectdiscovery/httpx/assets/22598243/f6ec8758-d5f0-4532-928e-47ce86072fd2)


### Describe the use case of this feature:
I know it's a minor annoyance, but when trying to integrate httpx with other tools and workflows it makes much more sense to include the additional information only when the user requests it rather than by default. 



Discussion / hints:
@lappsec we meant to enable it for JSONL / CSV output as default, not on the CLI, so this looks like bug and will be fixed / update asap, thanks for flagging.

For the time being, default behavior can be disabled as below.

```
echo hackerone.com | httpx -td=false
```
Sounds good. Thanks for the quick response!

Fix patch:
diff --git a/runner/options.go b/runner/options.go
index 3a7243ec7..8a94fceb9 100644
--- a/runner/options.go
+++ b/runner/options.go
@@ -330,7 +330,7 @@ func ParseOptions() *Options {
 		flagSet.BoolVar(&options.ExtractTitle, "title", false, "display page title"),
 		flagSet.DynamicVarP(&options.ResponseBodyPreviewSize, "body-preview", "bp", 100, "display first N characters of response body"),
 		flagSet.BoolVarP(&options.OutputServerHeader, "web-server", "server", false, "display server name"),
-		flagSet.BoolVarP(&options.TechDetect, "tech-detect", "td", true, "display technology in use based on wappalyzer dataset"),
+		flagSet.BoolVarP(&options.TechDetect, "tech-detect", "td", false, "display technology in use based on wappalyzer dataset"),
 		flagSet.BoolVar(&options.OutputMethod, "method", false, "display http request method"),
 		flagSet.BoolVar(&options.OutputWebSocket, "websocket", false, "display server using websocket"),
 		flagSet.BoolVar(&options.OutputIP, "ip", false, "display host ip"),
diff --git a/runner/runner.go b/runner/runner.go
index b07bb76d7..9423652b8 100644
--- a/runner/runner.go
+++ b/runner/runner.go
@@ -106,7 +106,7 @@ func New(options *Options) (*Runner, error) {
 		options: options,
 	}
 	var err error
-	if options.TechDetect {
+	if options.TechDetect || options.JSONOutput || options.CSVOutput {
 		runner.wappalyzer, err = wappalyzer.New()
 	}
 	if err != nil {
@@ -276,7 +276,7 @@ func New(options *Options) (*Runner, error) {
 	scanopts.OutputResponseTime = options.OutputResponseTime
 	scanopts.NoFallback = options.NoFallback
 	scanopts.NoFallbackScheme = options.NoFallbackScheme
-	scanopts.TechDetect = options.TechDetect
+	scanopts.TechDetect = options.TechDetect || options.JSONOutput || options.CSVOutput
 	scanopts.StoreChain = options.StoreChain
 	scanopts.StoreVisionReconClusters = options.StoreVisionReconClusters
 	scanopts.MaxResponseBodySizeToSave = options.MaxResponseBodySizeToSave
@@ -2004,7 +2004,7 @@ retry:
 			// As we now have headless body, we can also use it for detecting
 			// more technologies in the response. This is a quick trick to get
 			// more detected technologies.
-			if r.options.TechDetect {
+			if r.options.TechDetect || r.options.JSONOutput || r.options.CSVOutput {
 				moreMatches := r.wappalyzer.FingerprintWithInfo(resp.Headers, []byte(headlessBody))
 				for match, data := range moreMatches {
 					technologies = append(technologies, match)


Test patch: