security/w3af: 1.0-rc4 -> 1.6.49

- move from SF to new official repo at Github
- set LICENSE_FILE
- add 12 new dependencies
- remove do-patch section
- change BUILD_DEPENDS to RUN_DEPENDS
- apply shebangfix on tools/*
- add DOCS option
- submitter becomes maintainer

PR:		211061
Changes:	https://github.com/andresriancho/w3af/blob/master/doc/CHANGELOG
Submitted by:	Danilo G. Baio <dbaio@bsd.com.br>
This commit is contained in:
Kurt Jaeger 2016-08-02 17:29:23 +00:00
parent a837c37202
commit 951a132e81
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=419486
9 changed files with 2505 additions and 2328 deletions

View File

@ -2,17 +2,16 @@
# $FreeBSD$
PORTNAME= w3af
DISTVERSION= 1.0-rc4
PORTREVISION= 6
PORTVERSION= 1.6.49
CATEGORIES= security python www
MASTER_SITES= SF/${PORTNAME}/${PORTNAME}/${PORTNAME}%20${DISTVERSION}
MAINTAINER= ports@FreeBSD.org
MAINTAINER= dbaio@bsd.com.br
COMMENT= Web Application Attack and Audit Framework
LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/doc/GPL
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}lxml>=2.1:devel/py-lxml \
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}lxml>=2.1:devel/py-lxml \
${PYTHON_PKGNAMEPREFIX}simplejson>=2.0:devel/py-simplejson \
${PYTHON_PKGNAMEPREFIX}openssl>=0:security/py-openssl \
${PYTHON_PKGNAMEPREFIX}soappy>=0:net/py-soappy \
@ -23,60 +22,75 @@ BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}lxml>=2.1:devel/py-lxml \
${PYTHON_PKGNAMEPREFIX}pdf>0:print/py-pdf \
scapy>0:net/scapy \
${PYTHON_PKGNAMEPREFIX}wordnet>0:textproc/py-wordnet \
${PYTHON_PKGNAMEPREFIX}yaml>0:devel/py-yaml
RUN_DEPENDS:= ${BUILD_DEPENDS}
${PYTHON_PKGNAMEPREFIX}yaml>0:devel/py-yaml \
${PYTHON_PKGNAMEPREFIX}pyClamd>=0.2.2:security/py-pyclamd \
${PYTHON_PKGNAMEPREFIX}pygithub>=1.21:devel/py-pygithub \
${PYTHON_PKGNAMEPREFIX}GitPython>=0.3.2:devel/py-gitpython \
${PYTHON_PKGNAMEPREFIX}pybloom>=0.3.11:math/py-pybloom \
${PYTHON_PKGNAMEPREFIX}esmre>=0.3.1:textproc/py-esmre \
${PYTHON_PKGNAMEPREFIX}phply>=0.9.1:devel/py-phply \
${PYTHON_PKGNAMEPREFIX}stopit>=1.1.0:devel/py-stopit \
${PYTHON_PKGNAMEPREFIX}chardet>=2.1.1:textproc/py-chardet \
${PYTHON_PKGNAMEPREFIX}tblib>=0.2.0:devel/py-tblib \
${PYTHON_PKGNAMEPREFIX}pdfminer=20140328:textproc/py-pdfminer \
${PYTHON_PKGNAMEPREFIX}futures>=2.1.5:devel/py-futures \
${PYTHON_PKGNAMEPREFIX}ndg_httpsclient>=0.3.3:net/py-ndg_httpsclient \
${PYTHON_PKGNAMEPREFIX}pyasn1>=0.1.3:devel/py-pyasn1 \
${PYTHON_PKGNAMEPREFIX}lxml>=0.3.2:devel/py-lxml \
${PYTHON_PKGNAMEPREFIX}guess-language>=0.2:textproc/py-guess-language \
${PYTHON_PKGNAMEPREFIX}cluster>=1.1.1b3:devel/py-cluster \
${PYTHON_PKGNAMEPREFIX}msgpack-python>=0.4.4:devel/py-msgpack-python \
${PYTHON_PKGNAMEPREFIX}python-ntlm>=1.0.1:net/py-python-ntlm \
${PYTHON_PKGNAMEPREFIX}halberd>=0.2.4:security/py-halberd \
${PYTHON_PKGNAMEPREFIX}darts.util.lru>=0.5:devel/py-darts.util.lru \
${PYTHON_PKGNAMEPREFIX}Jinja2>=2.7.3:devel/py-Jinja2 \
${PYTHON_PKGNAMEPREFIX}vulndb>=0.0.17:security/py-vulndb \
${PYTHON_PKGNAMEPREFIX}markdown>=2.6.1:textproc/py-markdown
WRKSRC= ${WRKDIR}/${PORTNAME}
USES= gettext python tar:bzip2
USE_GITHUB= yes
GH_ACCOUNT= andresriancho
OPTIONS_DEFINE= GUI
USES= gettext python tar:bzip2 shebangfix
SHEBANG_FILES= tools/*
NO_BUILD= yes
OPTIONS_DEFINE= GUI DOCS
OPTIONS_SUB= yes
GUI_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}graphviz>0:graphics/py-graphviz
GUI_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pygraphviz>0:graphics/py-pygraphviz \
${PYTHON_PKGNAMEPREFIX}gtksourceview>=2.10.1:x11-toolkits/py-gtksourceview \
${PYTHON_PKGNAMEPREFIX}xdot>=0.7:x11/py-xdot \
${PYTHON_PKGNAMEPREFIX}webkitgtk>=1.1.8:www/py-webkitgtk
GUI_USE= GNOME=pygtk2
.include <bsd.port.options.mk>
do-patch:
.for f in SOAPpy fpconst-0.7.2 nltk nltk_contrib pyPdf scapy yaml
@${RM} -rf ${WRKSRC}/extlib/${f}
.endfor
@${GREP} -lr '/usr/bin/python' ${WRKSRC} | \
${XARGS} ${REINPLACE_CMD} -i "" \
-E "s!/usr/bin/python2?!${PYTHON_CMD}!"
do-build:
@${MKDIR} ${WRKDIR}/build
@${MKDIR} ${WRKSRC}/build/extlib
@${CP} ${WRKSRC}/w3af_console ${WRKDIR}/build/w3af_console.py
.if ${PORT_OPTIONS:MGUI}
@${CP} ${WRKSRC}/w3af_gui ${WRKDIR}/build/w3af_gui.py
.endif
.for f in core locales plugins profiles readme scripts tools
@${MKDIR} ${WRKDIR}/build/${f}
@(cd ${WRKSRC}/${f}/ && ${COPYTREE_SHARE} \* ${WRKDIR}/build/${f})
.endfor
.for ext in cluster gtkcodebuffer ntlm socksipy xdot
@${MKDIR} ${WRKDIR}/build/extlib/${ext}
@(cd ${WRKSRC}/extlib/${ext}/ && ${COPYTREE_SHARE} \* ${WRKDIR}/build/extlib/${ext})
.endfor
@${CP} ${WRKSRC}/extlib/__init__.py ${WRKDIR}/build/extlib/
@${PYTHON_CMD} -m compileall ${WRKDIR}/build
@${PYTHON_CMD} -O -m compileall ${WRKDIR}/build
.for f in w3af_console w3af_gui
@${SED} -e 's:%%PATH%%:${PYTHONPREFIX_SITELIBDIR}/${PORTNAME}/:' \
-e 's:%%PYTHON_CMD%%:${PYTHON_CMD}:' \
< ${FILESDIR}/${f}.sh > ${WRKDIR}/${f}.sh
.endfor
do-install:
@${MKDIR} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/${PORTNAME}
@(cd ${WRKDIR}/build && ${COPYTREE_SHARE} \* \
@(cd ${WRKSRC}/w3af && ${COPYTREE_SHARE} \* \
${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/${PORTNAME})
@${INSTALL_SCRIPT} ${WRKDIR}/w3af_console.sh \
${INSTALL_SCRIPT} ${WRKSRC}/w3af_console \
${STAGEDIR}${PREFIX}/bin/w3af_console
@${MKDIR} ${STAGEDIR}${PREFIX}/libexec/${PORTNAME}
.for f in base64decode base64encode gencc md5hash sha1hash urldecode urlencode
${INSTALL_SCRIPT} ${WRKSRC}/tools/${f} \
${STAGEDIR}${PREFIX}/libexec/${PORTNAME}/${f}
.endfor
.for f in extras profiles scripts
@${MKDIR} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/${PORTNAME}/${f}
@(cd ${WRKSRC}/${f}/ && ${COPYTREE_SHARE} \* \
${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/${PORTNAME}/${f})
.endfor
.if ${PORT_OPTIONS:MGUI}
@${INSTALL_SCRIPT} ${WRKDIR}/w3af_gui.sh \
${INSTALL_SCRIPT} ${WRKSRC}/w3af_gui \
${STAGEDIR}${PREFIX}/bin/w3af_gui
.endif
.if ${PORT_OPTIONS:MDOCS}
@${MKDIR} ${STAGEDIR}${DOCSDIR}
.for d in CHANGELOG CONTRIBUTORS GPL INSTALL README TODO
@${INSTALL_DATA} ${WRKSRC}/doc/${d} ${STAGEDIR}${DOCSDIR}
.endfor
.endif
.include <bsd.port.mk>

View File

@ -1,2 +1,3 @@
SHA256 (w3af-1.0-rc4.tar.bz2) = e36997741f1b457a6eefa1e1c8454ef87e0d9023592db876a6c300d82d468b24
SIZE (w3af-1.0-rc4.tar.bz2) = 19197699
TIMESTAMP = 1467339448
SHA256 (andresriancho-w3af-1.6.49_GH0.tar.gz) = f3a7a6d1d86cb68927fc54a50e2a66f270cf93a36b26717bbdc49343a4633679
SIZE (andresriancho-w3af-1.6.49_GH0.tar.gz) = 23523892

View File

@ -0,0 +1,13 @@
--- w3af_console.orig 2015-04-07 15:04:48 UTC
+++ w3af_console
@@ -9,8 +9,8 @@ import base64
# Check if I have all needed dependencies
-from w3af.core.controllers.dependency_check.dependency_check import dependency_check
-dependency_check()
+#from w3af.core.controllers.dependency_check.dependency_check import dependency_check
+#dependency_check()
from w3af.core.ui.console.console_ui import ConsoleUI
from w3af.core.controllers.misc.get_w3af_version import get_w3af_version

View File

@ -0,0 +1,13 @@
--- w3af_gui.orig 2015-04-07 15:04:48 UTC
+++ w3af_gui
@@ -9,8 +9,8 @@ import base64
# Perform the GTK UI dependency check, this will verify that the current system
# has all the modules required to run w3af (including the core dependencies)
-from w3af.core.ui.gui.dependency_check.dependency_check import dependency_check
-dependency_check()
+#from w3af.core.ui.gui.dependency_check.dependency_check import dependency_check
+#dependency_check()
import w3af.core.controllers.output_manager as om

View File

@ -0,0 +1,70 @@
--- w3af/plugins/grep/clamav.py.orig 2015-04-07 15:04:48 UTC
+++ w3af/plugins/grep/clamav.py
@@ -20,7 +20,7 @@ Foundation, Inc., 51 Franklin St, Fifth
"""
import threading
-import clamd
+import pyclamd
# Installed as a clamd dependency by pip
from six import BytesIO
@@ -55,7 +55,7 @@ class clamav(GrepPlugin):
# User configured settings
# Default for ubuntu installation
- self._clamd_socket = '/var/run/clamav/clamd.ctl'
+ self._clamd_socket = '/var/run/clamav/clamd.sock'
def grep(self, request, response):
"""
@@ -113,7 +113,7 @@ class clamav(GrepPlugin):
"""
try:
cd = self._get_connection()
- return cd.ping() == u'PONG'
+ return cd.ping()
except:
return False
@@ -123,7 +123,7 @@ class clamav(GrepPlugin):
Thought about having a connection pool, but it doesn't make
much sense; plus it adds complexity due to the threads.
"""
- return clamd.ClamdUnixSocket(path=self._clamd_socket)
+ return pyclamd.ClamdUnixSocket(self._clamd_socket)
def _get_clamd_version(self):
"""
@@ -145,7 +145,7 @@ class clamav(GrepPlugin):
try:
cd = self._get_connection()
- result_dict = cd.instream(BytesIO(body))
+ result_dict = cd.scan_stream(body)
except Exception, e:
msg = 'The ClamAV plugin failed to connect to clamd using'\
' the provided unix socket: "%s". Please verify your'\
@@ -185,12 +185,9 @@ class clamav(GrepPlugin):
:return: A namedtuple with the scan result
"""
- try:
- signature = result['stream'][1]
- found = result['stream'][0] == 'FOUND'
- return ScanResult(found, signature)
- except:
- om.out.debug('Invalid response from clamd: %s' % result)
+ signature = result['stream'][1]
+ found = result['stream'][0] == 'FOUND'
+ return ScanResult(found, signature)
def set_options(self, options_list):
self._clamd_socket = options_list['clamd_socket'].get_value()
@@ -232,4 +229,4 @@ class clamav(GrepPlugin):
This plugin was sponsored by http://scoresecure.com/ .
"""
-ScanResult = namedtuple('ScanResult', ['found', 'signature'])
\ No newline at end of file
+ScanResult = namedtuple('ScanResult', ['found', 'signature'])

View File

@ -0,0 +1,36 @@
--- w3af/plugins/tests/grep/test_clamav.py.orig 2015-04-07 15:04:48 UTC
+++ w3af/plugins/tests/grep/test_clamav.py
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin St, Fifth
"""
import unittest
import time
-import clamd
+import pyclamd
from nose.plugins.attrib import attr
from itertools import repeat
@@ -69,7 +69,7 @@ class TestClamAV(unittest.TestCase):
@patch('w3af.plugins.grep.code_disclosure.is_404', side_effect=repeat(False))
@need_clamav
def test_clamav_eicar(self, *args):
- body = clamd.EICAR
+ body = pyclamd.EICAR
url = URL('http://www.w3af.com/')
headers = Headers([('content-type', 'text/html')])
response = HTTPResponse(200, body, headers, url, url, _id=1)
@@ -151,7 +151,7 @@ class TestClamAV(unittest.TestCase):
@patch('w3af.plugins.grep.code_disclosure.is_404', side_effect=repeat(False))
def test_no_clamav_eicar(self, *args):
- body = clamd.EICAR
+ body = pyclamd.EICAR
url = URL('http://www.w3af.com/')
headers = Headers([('content-type', 'text/html')])
response = HTTPResponse(200, body, headers, url, url, _id=1)
@@ -213,4 +213,4 @@ class TestClamAVScan(PluginTest):
for finding in findings:
self.assertIn(finding.get_url().get_file_name(), EXPECTED_FILES)
self.assertEqual(finding.get_name(), 'Malware identified')
- self.assertIn('ClamAV identified malware', finding.get_desc())
\ No newline at end of file
+ self.assertIn('ClamAV identified malware', finding.get_desc())

View File

@ -1,7 +0,0 @@
#!/bin/sh
#
# $FreeBSD$
#
cd %%PATH%%
exec %%PYTHON_CMD%% -O w3af_console.py

View File

@ -1,7 +0,0 @@
#!/bin/sh
#
# $FreeBSD$
#
cd %%PATH%%
exec %%PYTHON_CMD%% -O w3af_gui.py

File diff suppressed because it is too large Load Diff