diff --git a/lib/controller/checks.py b/lib/controller/checks.py index 7a1d14832..af6b97614 100644 --- a/lib/controller/checks.py +++ b/lib/controller/checks.py @@ -14,6 +14,7 @@ import time from difflib import SequenceMatcher from lib.core.agent import agent +from lib.core.common import beep from lib.core.common import getFilteredPageContent from lib.core.common import getUnicode from lib.core.common import preparePageForLineComparison @@ -81,8 +82,12 @@ def checkSqlInjection(place, parameter, value, parenthesis): if not falseResult: infoMsg = "%s parameter '%s' is %s (%s) injectable " % (place, parameter, case.desc, logic) - infoMsg += "with %d parenthesis%s" % (parenthesis, "\a" if conf.beep else "") + infoMsg += "with %d parenthesis" % parenthesis logger.info(infoMsg) + + if conf.beep: + beep() + return case.name return None diff --git a/lib/core/common.py b/lib/core/common.py index 86f6380b0..02c8b8053 100644 --- a/lib/core/common.py +++ b/lib/core/common.py @@ -1494,3 +1494,24 @@ def wasLastRequestError(): Returns True if the last web request resulted in a (recognized) DBMS error page """ return kb.lastErrorPage and kb.lastErrorPage[0]==kb.lastRequestUID + +def beep(): + """ + Does an audible beep sound + Reference: http://de3.aminet.net/dev/src/clr.py.txt + """ + if sys.platform=='linux2': + try: + audio=file('/dev/audio', 'wb') + count=0 + while count < 250: + beep=chr(32) * 4 + audio.write(beep) + beep=chr(0) * 4 + audio.write(beep) + count=count + 1 + audio.close() + except: + print '\a' + else: + print '\a'