The source tarball is just a repackage with fixed permissions of directories
and the configure file (which don't have +x on the source repo).
master
Carlos Mogas da Silva 3 years ago
parent 6b72a0d742
commit cc81f3aa22
  1. 178
      dirb/SOURCES/Fix-DIRB-for-GCC-10.patch
  2. BIN
      dirb/SOURCES/dirb222.tar.gz
  3. 5
      dirb/create_srpm.sh
  4. BIN
      dirb/dirb-2.22-1.fc34.src.rpm
  5. 59
      dirb/dirb.spec

@ -0,0 +1,178 @@
From a949ec35d6368537e52bf85458aab590c4deec77 Mon Sep 17 00:00:00 2001
From: Nikita Ermakov <arei@altlinux.org>
Date: Wed, 9 Dec 2020 15:12:41 +0300
Subject: [PATCH] Fix DIRB for GCC 10
GCC now defaults to -fno-common. Use the common module variables.c for
global variables.
---
src/Makefile.am | 3 ++-
src/Makefile.in | 6 ++++--
src/dirb.h | 1 -
src/variables.c | 30 ++++++++++++++++++++++++++++++
src/variables.h | 45 +++++++++++++++++++++++----------------------
5 files changed, 59 insertions(+), 26 deletions(-)
create mode 100644 src/variables.c
diff --git a/src/Makefile.am b/src/Makefile.am
index c0d56c6..5e6f384 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -11,7 +11,8 @@ base = crea_wordlist.c\
calculanec.c\
utils.c\
options.c\
- resume.c
+ resume.c\
+ variables.c
dirb_SOURCES = $(base)
diff --git a/src/Makefile.in b/src/Makefile.in
index add6c74..990de35 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -50,7 +50,7 @@ binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
PROGRAMS = $(bin_PROGRAMS)
am__objects_1 = crea_wordlist.$(OBJEXT) dirb.$(OBJEXT) \
get_url.$(OBJEXT) lanza_ataque.$(OBJEXT) calculanec.$(OBJEXT) \
- utils.$(OBJEXT) options.$(OBJEXT) resume.$(OBJEXT)
+ utils.$(OBJEXT) options.$(OBJEXT) resume.$(OBJEXT) variables.$(OBJEXT)
am_dirb_OBJECTS = $(am__objects_1)
dirb_OBJECTS = $(am_dirb_OBJECTS)
dirb_LDADD = $(LDADD)
@@ -153,7 +153,8 @@ base = crea_wordlist.c\
calculanec.c\
utils.c\
options.c\
- resume.c
+ resume.c\
+ variables.c
dirb_SOURCES = $(base)
dirb_LDFLAGS = @NETWORK_LIBS@
@@ -230,6 +231,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/options.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/resume.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/variables.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
diff --git a/src/dirb.h b/src/dirb.h
index 5917adc..a3df2eb 100644
--- a/src/dirb.h
+++ b/src/dirb.h
@@ -8,7 +8,6 @@
#include "global.h"
#include "variables.h"
-#include "estructuras.h"
#include "funciones.h"
diff --git a/src/variables.c b/src/variables.c
new file mode 100644
index 0000000..55afcf0
--- /dev/null
+++ b/src/variables.c
@@ -0,0 +1,30 @@
+#include "variables.h"
+
+FILE *outfile; // Fichero de output
+CURL *curl; // Descriptor CURL
+struct opciones options; // Array con las opciones recibidas del usuario
+
+struct result *nec[100]; // Array que almacena los NECs
+int contador; // Contador de palabras generadas
+int descargadas; // Numero de URLs descargadas
+int encontradas; // Numero de URLs encontradas
+int errores; // Contador de errores
+int existant; // Flag para determinar si la URL actual existe
+int listable; // Flag para determinar si un directorio es listable
+
+struct words *wordlist_base; // Base de la lista de palabras
+struct words *wordlist_current; // Nodo actual de la lista de palabras
+struct words *wordlist_final; // Final de la lista de palabras
+
+struct words *exts_base; // Base de la lista de extensiones
+struct words *exts_current; // Nodo actual de la lista de externsiones
+int exts_num; // Numero de extensiones
+
+struct words *muts_base; // Base de la lista de mutaciones
+
+struct words *dirlist_base; // Base de la lista de los directorios encontrados
+struct words *dirlist_final; // Final de la lista los directorios encontrados
+struct words *dirlist_current; // Nodo actual de la lista los directorios encontrados
+
+int resuming; // Flag para saber si estamos en una sesion resumida
+int next_dir; // Flag para saber si tenemos que pasar al siguiente directorio
diff --git a/src/variables.h b/src/variables.h
index d06d6bf..0b0c271 100644
--- a/src/variables.h
+++ b/src/variables.h
@@ -7,38 +7,39 @@
#include "global.h"
+#include "estructuras.h"
/* Global variables */
-FILE *outfile; // Fichero de output
-CURL *curl; // Descriptor CURL
-struct opciones options; // Array con las opciones recibidas del usuario
+extern FILE *outfile; // Fichero de output
+extern CURL *curl; // Descriptor CURL
+extern struct opciones options; // Array con las opciones recibidas del usuario
-struct result *nec[100]; // Array que almacena los NECs
-int contador; // Contador de palabras generadas
-int descargadas; // Numero de URLs descargadas
-int encontradas; // Numero de URLs encontradas
-int errores; // Contador de errores
-int existant; // Flag para determinar si la URL actual existe
-int listable; // Flag para determinar si un directorio es listable
+extern struct result *nec[100]; // Array que almacena los NECs
+extern int contador; // Contador de palabras generadas
+extern int descargadas; // Numero de URLs descargadas
+extern int encontradas; // Numero de URLs encontradas
+extern int errores; // Contador de errores
+extern int existant; // Flag para determinar si la URL actual existe
+extern int listable; // Flag para determinar si un directorio es listable
-struct words *wordlist_base; // Base de la lista de palabras
-struct words *wordlist_current; // Nodo actual de la lista de palabras
-struct words *wordlist_final; // Final de la lista de palabras
+extern struct words *wordlist_base; // Base de la lista de palabras
+extern struct words *wordlist_current; // Nodo actual de la lista de palabras
+extern struct words *wordlist_final; // Final de la lista de palabras
-struct words *exts_base; // Base de la lista de extensiones
-struct words *exts_current; // Nodo actual de la lista de externsiones
-int exts_num; // Numero de extensiones
+extern struct words *exts_base; // Base de la lista de extensiones
+extern struct words *exts_current; // Nodo actual de la lista de externsiones
+extern int exts_num; // Numero de extensiones
-struct words *muts_base; // Base de la lista de mutaciones
+extern struct words *muts_base; // Base de la lista de mutaciones
-struct words *dirlist_base; // Base de la lista de los directorios encontrados
-struct words *dirlist_final; // Final de la lista los directorios encontrados
-struct words *dirlist_current; // Nodo actual de la lista los directorios encontrados
+extern struct words *dirlist_base; // Base de la lista de los directorios encontrados
+extern struct words *dirlist_final; // Final de la lista los directorios encontrados
+extern struct words *dirlist_current; // Nodo actual de la lista los directorios encontrados
-int resuming; // Flag para saber si estamos en una sesion resumida
-int next_dir; // Flag para saber si tenemos que pasar al siguiente directorio
+extern int resuming; // Flag para saber si estamos en una sesion resumida
+extern int next_dir; // Flag para saber si tenemos que pasar al siguiente directorio
--
2.25.4

Binary file not shown.

@ -0,0 +1,5 @@
#!/bin/bash
rpmbuild --define "_topdir `pwd`" -bs dirb.spec
mv SRPMS/* .
rmdir BUILDROOT RPMS SRPMS BUILD

Binary file not shown.

@ -0,0 +1,59 @@
# this spec file was largely based of the altlinux version of it
%define debug_package %{nil}
Name: dirb
Version: 2.22
Release: 1%{?dist}
Summary: DIRB is a Web Content Scanner
%global _version %(v=%{version}; echo ${v/./})
License: GPLv2
URL: http://dirb.sourceforge.net/
Source: dirb%{_version}.tar.gz
Patch: Fix-DIRB-for-GCC-10.patch
BuildRequires: libcurl-devel autoconf gcc make
%description
It looks for existing (and/or hidden) Web Objects.
It basically works by launching a dictionary based attack against a web server and analizing the response.
%prep
%autosetup -n %{name}%{_version} -p 1
%build
%configure
make
%install
%make_install
mv %buildroot/%_bindir/gendict{,-dirb}
mkdir -p %buildroot/%_datadir/dirb/
find wordlists/ -maxdepth 1 -type f -exec install -m 0644 '{}' %buildroot/%_datadir/dirb/ \;
mkdir -p %buildroot/%_datadir/dirb/others
find wordlists/others -maxdepth 1 -type f -exec install -m 0644 '{}' %buildroot/%_datadir/dirb/others \;
mkdir -p %buildroot/%_datadir/dirb/stress
find wordlists/stress -maxdepth 1 -type f -exec install -m 0644 '{}' %buildroot/%_datadir/dirb/stress \;
mkdir -p %buildroot/%_datadir/dirb/vulns
find wordlists/vulns -maxdepth 1 -type f -exec install -m 0644 '{}' %buildroot/%_datadir/dirb/vulns \;
%files
%_bindir/*
%_mandir/man1/*
%dir %_datadir/%{name}
%_datadir/%{name}/*
%doc LICENSE.txt README.txt docs/GENDICT.TXT docs/FAQ.txt docs/TRICKS.txt docs/CHANGES.txt
%changelog
* Wed May 19 2021 Carlos Mogas da Silva <r3pek@r3pek.org> - 2.22-1
- Initial release on COPR
* Wed Dec 09 2020 Nikita Ermakov <arei@altlinux.org> 2.22-alt3
- Fix DIRB for GCC 10.
* Tue Nov 12 2019 Nikita Ermakov <arei@altlinux.org> 2.22-alt2
- Rename gendict to gendict-dirb to avoid collisions with icu-utils.
* Tue Nov 12 2019 Nikita Ermakov <arei@altlinux.org> 2.22-alt1
- Initial build for ALT Linux Sisyphus.
Loading…
Cancel
Save