aboutsummaryrefslogtreecommitdiffstats
path: root/misc/nuclei
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-08-08 13:03:32 +0200
committerDanilo M. <danix@danix.xyz>2026-08-08 13:03:32 +0200
commit25742bd9efc32de82eeeeaba0f4b8976c169e7ce (patch)
tree5dacbf9207123e6e74733e5d474b28ed34888f61 /misc/nuclei
parent998dbd56e53c8c8c8bc1a425cec16b6ccc752e34 (diff)
downloadsbo-slackbuilds-25742bd9efc32de82eeeeaba0f4b8976c169e7ce.tar.gz
sbo-slackbuilds-25742bd9efc32de82eeeeaba0f4b8976c169e7ce.zip
repo: move packages under their SBo category
Mirror SBo's own <category>/<package>/ layout instead of a flat <package>/ one. The category is now carried by the directory, so there's no separate map to maintain, and a package exports to the SBo repo at the identical relative path. misc: SecLists, exploitdb, nuclei games: UrbanTerror network: feroxbuster, ffuf, gobuster, metasploit-framework-bin, r8125 Categories taken from the synced SBo tree, which is authoritative. This also repairs two things the flat layout had broken: - test-build's category_of() returned "." for every package, since it derives the category from the parent directory name. - post-commit asserted a fixed depth. It now locates a build by the directory holding the .SlackBuild, and names the archive after the package with the package dir at the tarball root, as SBo expects. Drops the exec bit from SecLists.SlackBuild and gobuster.SlackBuild, flagged by sbolint once the pre-commit hook started running: SBo requires 0644 and ships both that way.
Diffstat (limited to 'misc/nuclei')
-rw-r--r--misc/nuclei/README21
-rw-r--r--misc/nuclei/nuclei.SlackBuild129
-rw-r--r--misc/nuclei/nuclei.info10
-rw-r--r--misc/nuclei/patches/Build-doc.patch31
-rw-r--r--misc/nuclei/patches/Change-default-directory-of-nuclei-templates.patch25
-rw-r--r--misc/nuclei/patches/Disable-update.patch22
-rw-r--r--misc/nuclei/patches/series3
-rw-r--r--misc/nuclei/slack-desc19
8 files changed, 260 insertions, 0 deletions
diff --git a/misc/nuclei/README b/misc/nuclei/README
new file mode 100644
index 0000000..c2f70b6
--- /dev/null
+++ b/misc/nuclei/README
@@ -0,0 +1,21 @@
+Nuclei is a modern, high-performance vulnerability scanner that
+leverages simple YAML-based templates.
+It empowers you to design custom vulnerability detection scenarios that
+mimic real-world conditions, leading to zero false positives.
+
+ - Simple YAML format for creating and customizing vulnerability
+ templates.
+ - Contributed by thousands of security professionals to tackle
+ trending vulnerabilities.
+ - Reduce false positives by simulating real-world steps to verify a
+ vulnerability.
+ - Ultra-fast parallel scan processing and request clustering.
+ - Integrate into CI/CD pipelines for vulnerability detection and
+ regression testing.
+ - Supports multiple protocols like TCP, DNS, HTTP, SSL, WHOIS,
+ JavaScript, Code and more.
+ - Integrate with Jira, Splunk, GitHub, Elastic, GitLab.
+
+Only the nuclei binary will be linked in /usr/bin. All the other
+binaries will be available in /opt/nuclei/bin
+
diff --git a/misc/nuclei/nuclei.SlackBuild b/misc/nuclei/nuclei.SlackBuild
new file mode 100644
index 0000000..1a5d7ea
--- /dev/null
+++ b/misc/nuclei/nuclei.SlackBuild
@@ -0,0 +1,129 @@
+#!/bin/bash
+
+# Slackware build script for nuclei
+
+# Copyright 2026 danix < danix@danix.xyz >
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=nuclei
+VERSION=${VERSION:-3.11.0}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
+cd $PRGNAM-$VERSION
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+
+# Apply patches
+if compgen -G "$CWD/patches/*.patch" > /dev/null; then
+ if [ -f "$CWD/patches/series" ]; then
+ while IFS= read -r PATCH; do
+ [ -z "$PATCH" ] && continue
+ [ "${PATCH#\#}" != "$PATCH" ] && continue
+ patch -p1 -i "$CWD/patches/$PATCH"
+ done < "$CWD/patches/series"
+ else
+ for PATCH in "$CWD"/patches/*.patch; do
+ patch -p1 -i "$PATCH"
+ done
+ fi
+fi
+
+MOD_STRATEGY="-mod=readonly"
+export CGO_CPPFLAGS="$SLKCFLAGS"
+export CGO_CFLAGS="$SLKCFLAGS"
+export CGO_CXXFLAGS="$SLKCFLAGS"
+export GOPATH="$(pwd)/.gocache"
+export GOPROXY="https://proxy.golang.org,direct"
+export GOFLAGS="$MOD_STRATEGY -buildmode=pie -trimpath -modcacherw"
+LIB_LDFLAGS="-linkmode=external -s -w"
+
+mkdir -p "$PKG"/usr/bin
+mkdir -p "$PKG"/opt/${PRGNAM}/bin
+go build -ldflags="$LIB_LDFLAGS" -o "$PKG"/opt/${PRGNAM}/bin ./...
+
+ln -sf ../../opt/${PRGNAM}/bin/nuclei "$PKG"/usr/bin/nuclei
+
+# cleanup to save space
+rm -rf "$GOPATH"
+rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
+
+find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a \
+ CLAUDE.md CONTRIBUTING.md DEBUG.md DESIGN.md LICENSE.md README.md SYNTAX-REFERENCE.md THANKS.md \
+ $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+# a .md file was shipping as 775 from upstream
+chmod 644 $PKG/usr/doc/$PRGNAM-$VERSION/*
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/misc/nuclei/nuclei.info b/misc/nuclei/nuclei.info
new file mode 100644
index 0000000..944466f
--- /dev/null
+++ b/misc/nuclei/nuclei.info
@@ -0,0 +1,10 @@
+PRGNAM="nuclei"
+VERSION="3.11.0"
+HOMEPAGE="https://github.com/projectdiscovery/nuclei"
+DOWNLOAD="https://github.com/projectdiscovery/nuclei/archive/v3.11.0/nuclei-3.11.0.tar.gz"
+MD5SUM="ea1e3fba0ea3889e1cfbad9ef7da0c07"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES="google-go-lang"
+MAINTAINER="danix"
+EMAIL="danix@danix.xyz"
diff --git a/misc/nuclei/patches/Build-doc.patch b/misc/nuclei/patches/Build-doc.patch
new file mode 100644
index 0000000..17f054e
--- /dev/null
+++ b/misc/nuclei/patches/Build-doc.patch
@@ -0,0 +1,31 @@
+From: Sophie Brun <sophie@offensive-security.com>
+Date: Fri, 10 Dec 2021 09:08:38 +0100
+Subject: Build doc
+
+---
+ Makefile | 7 ++-----
+ 1 file changed, 2 insertions(+), 5 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 719c308..ca2e684 100644
+--- a/Makefile
++++ b/Makefile
+@@ -59,10 +59,7 @@ docgen: GOBUILD_OUTPUT = ./bin/docgen
+ docgen: GOBUILD_PACKAGES = cmd/docgen/docgen.go
+ docgen: bin = dstdocgen
+ docgen:
+- @if ! which $(bin) >/dev/null; then \
+- echo "Command $(bin) not found! Installing..."; \
+- go install -v github.com/projectdiscovery/yamldoc-go/cmd/docgen/$(bin)@latest; \
+- fi
++ go install -v github.com/projectdiscovery/yamldoc-go/cmd/docgen/$(bin)@latest; \
+ # TODO: FIX THIS PANIC
+ $(GOCMD) generate pkg/templates/templates.go
+ $(GOBUILD) -o "${GOBUILD_OUTPUT}" $(GOBUILD_PACKAGES)
+@@ -156,4 +153,4 @@ template-validate:
+ ./bin/nuclei -validate \
+ -w workflows \
+ -et http/technologies \
+- -ept code
+\ No newline at end of file
++ -ept code
diff --git a/misc/nuclei/patches/Change-default-directory-of-nuclei-templates.patch b/misc/nuclei/patches/Change-default-directory-of-nuclei-templates.patch
new file mode 100644
index 0000000..447f42d
--- /dev/null
+++ b/misc/nuclei/patches/Change-default-directory-of-nuclei-templates.patch
@@ -0,0 +1,25 @@
+From: Sophie Brun <sophie@offensive-security.com>
+Date: Thu, 20 Apr 2023 14:51:31 +0200
+Subject: Fix path to nuclei-templates
+
+By default the nuclei-templates is located directly in /home/user.
+Change the default location to /home/user/.local
+
+Last-Update: 2023-06-27
+---
+ pkg/catalog/config/constants.go | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pkg/catalog/config/constants.go b/pkg/catalog/config/constants.go
+index fab1884..6d78e7f 100644
+--- a/pkg/catalog/config/constants.go
++++ b/pkg/catalog/config/constants.go
+@@ -22,7 +22,7 @@ var (
+
+ const (
+ TemplateConfigFileName = ".templates-config.json"
+- NucleiTemplatesDirName = "nuclei-templates"
++ NucleiTemplatesDirName = ".local/nuclei-templates"
+ OfficialNucleiTemplatesRepoName = "nuclei-templates"
+ NucleiIgnoreFileName = ".nuclei-ignore"
+ NucleiTemplatesIndexFileName = ".templates-index" // contains index of official nuclei templates
diff --git a/misc/nuclei/patches/Disable-update.patch b/misc/nuclei/patches/Disable-update.patch
new file mode 100644
index 0000000..3472208
--- /dev/null
+++ b/misc/nuclei/patches/Disable-update.patch
@@ -0,0 +1,22 @@
+From: Sophie Brun <sophie@offensive-security.com>
+Date: Wed, 8 Dec 2021 08:40:42 +0100
+Subject: Disable update
+
+Last-Update: 2023-10-27
+Updates must be done with apt.
+---
+ cmd/nuclei/main.go | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/cmd/nuclei/main.go b/cmd/nuclei/main.go
+index 8421d1d..095f5d5 100644
+--- a/cmd/nuclei/main.go
++++ b/cmd/nuclei/main.go
+@@ -469,7 +469,6 @@ on extensive configurability, massive extensibility and ease of use.`)
+ )
+
+ flagSet.CreateGroup("update", "Update",
+- flagSet.BoolVarP(&updateNucleiBinary, "update", "up", false, "update nuclei engine to the latest released version"),
+ flagSet.BoolVarP(&options.UpdateTemplates, "update-templates", "ut", false, "update nuclei-templates to latest released version"),
+ flagSet.StringVarP(&options.NewTemplatesDirectory, "update-template-dir", "ud", "", "custom directory to install / update nuclei-templates"),
+ flagSet.CallbackVarP(disableUpdatesCallback, "disable-update-check", "duc", "disable automatic nuclei/templates update check"),
diff --git a/misc/nuclei/patches/series b/misc/nuclei/patches/series
new file mode 100644
index 0000000..4741101
--- /dev/null
+++ b/misc/nuclei/patches/series
@@ -0,0 +1,3 @@
+Disable-update.patch
+Build-doc.patch
+Change-default-directory-of-nuclei-templates.patch
diff --git a/misc/nuclei/slack-desc b/misc/nuclei/slack-desc
new file mode 100644
index 0000000..c219fdb
--- /dev/null
+++ b/misc/nuclei/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+nuclei: nuclei (a modern, high-performance vulnerability scanner)
+nuclei:
+nuclei: Nuclei is a modern, high-performance vulnerability scanner that
+nuclei: leverages simple YAML-based templates.
+nuclei: It empowers you to design custom vulnerability detection scenarios
+nuclei: that mimic real-world conditions, leading to zero false positives.
+nuclei:
+nuclei:
+nuclei: Home: https://github.com/projectdiscovery/nuclei
+nuclei:
+nuclei: