sensepost / gowitness

🔍 gowitness - a golang, web screenshot utility using Chrome Headless
GNU General Public License v3.0
2.82k stars 323 forks source link

Fix database file path location parser #188

Closed mr-pmillz closed 1 year ago

mr-pmillz commented 1 year ago

I've encountered an issue in how absolute file paths are handled that are passed to the -D, --db-location flag.

Bug 🐛

https://github.com/sensepost/gowitness/blob/master/storage/db.go#L52 is missing logic to appropriately handle absolute file paths, for example: 'sqlite:///tmp/testing/gowitness.sqlite3' returns an empty string after being parsed via url.Parse() when calling the .Host method.

Expected Functionality

Ability to specify absolute file paths to the -D, --db-location argument.

Solution

I've implemented a helper function that fixes the issue and added some unit tests for verification.

Passing Tests

Tested it with two trial runs that garnered the desired functionality. Test cases are passing: image

Issue Representation Example Code

Here's an example demonstrating the issue: GoPlayground

Lemme know if this PR requires adjustments. 🍻

leonjza commented 1 year ago

Amazing, thank you!

Hackndo commented 9 months ago

I was trying to fix this (bug still in release), but couldn't reproduce while compiling from source. Now I understand why. Thank you!

leonjza commented 9 months ago

Ill roll a new release later today.

leonjza commented 9 months ago

Landed in 2.5.1.