diff --git a/javaid.py b/javaid.py index 80b4d71..408ab42 100644 --- a/javaid.py +++ b/javaid.py @@ -50,7 +50,6 @@ "getRuntime.exec", "ProcessBuilder.start", "GroovyShell.evaluate" - ''' class javaid(object): @@ -66,12 +65,12 @@ def _run(self): try: self.banner() self.handlePath(self._dir) - print "[-]【JavaID】identify danger function Finished!" + print "[-][JavaID] identify danger function Finished!" except: raise - def report_id(self,vul): - print "[+]【"+vul+"】identify danger function ["+self._function+"] in file ["+self._filename+"]" + def report_id(self,vul,keyword): + print "[+][{0}] identified by danger function [{1} -- \"{2}\"] in file [{3}]".format(vul,self._function,keyword,self._filename) def report_line(self): print " --> [+] on line : "+ str(self._line) @@ -128,7 +127,7 @@ def regexp_search(self,rule_dom,content): exp_pattern = re.compile(regexp_dom.text) if exp_pattern.search(content): #print "identify sfunction is : "+self._function - self.report_id(self._vultype) + self.report_id(self._vultype,regexp_dom.text.replace("\\","")) self.function_search_line() return True @@ -150,7 +149,7 @@ def check_regexp(self, content): def remove_comment(self,content): return content def banner(self): - print "[-]【JavaID】 Danger function identify tool" + print "[-][JavaID] Danger function identify tool" if __name__ == '__main__': parser = optparse.OptionParser('usage: python %prog [options](eg: python %prog -d /user/java/demo)') parser.add_option('-d', '--dir', dest = 'dir', type = 'string', help = 'source code file dir') diff --git a/regexp.xml b/regexp.xml index 7ad5d2a..f4d4237 100644 --- a/regexp.xml +++ b/regexp.xml @@ -1,287 +1,299 @@ - - - - - new\s+SAXReader\(\) - - - - - - - new\s+SAXBuilder\(\) - - - - - - - newSAXParser\( - - - - - - - createXMLReader\( - - - - - - - newDocumentBuilder\( - - - - - - - createXMLStreamReader\( - - - - - - - - - \.readObject\( - - - - - - - JSON\.parseObject\( - - - - - - - ObjectMapper\.readValue - - - - - - - fromXML\( - - - - - - - readUnshared\( - - - - - - - .load\( - - - - - - - - - openConnection\(|getInputStream\( - - - - - - - URL\(|openStream\( - - - - - - - ImageIO\.read\( - - - - - - - HttpClient\(|executeMethod\( - - - - - - - new\sSocket\( - - - - - - - \.newCall\(|Request.Builder\(\) - - - - - - - \.getConnection\( - - - - - - - \.getConnection\( - - - - - - - - - \.getOriginalFilename\(|MultipartFile\s - - - - - - - - - \.createNewFile\(|FileOutputStream\( - - - - - - - \.delete\(\) - - - - - - - new\sFileInputStream\( - - - - - - - - - @SessionAttributes - - - - - - - @ModelAttribute - - - - - - - - - sendRedirect\( - - - - - - - setHeader\(\"refresh - - - - - - - forward\( - - - - - - - - - getRuntime\(\)\.exec\( - - - - - - - ProcessBuilder|ProcessBuilder\.start - - - - - - - GroovyShell\.evaluate - - - - - - - - - SpelExpressionParser - - - - - - - getValue\(\) - - - - - - - - - (into|where)[^\$]*(\$\{[^,#=\s]+\}) - - - - - - - - - spring-boot-starter-actuator - - - - - + + + + new\s+SAXReader\(\) + + + + + + + new\s+SAXBuilder\(\) + + + + + + + newSAXParser\( + + + + + + + createXMLReader\( + + + + + + + newDocumentBuilder\( + + + + + + + createXMLStreamReader\( + + + + + + + StreamingReader\.builder\(\) + + + + + + + new\s+XSSFWorkbook\( + + + + + + + + + \.readObject\( + + + + + + + JSON\.parseObject\( + + + + + + + ObjectMapper\.readValue + + + + + + + fromXML\( + + + + + + + readUnshared\( + + + + + + + \.load\( + + + + + + + new\s+XMLDecoder\( + + + + + + + + + openConnection\(|getInputStream\( + + + + + + + URL\(|openStream\( + + + + + + + ImageIO\.read\( + + + + + + + HttpClient\(|executeMethod\( + + + + + + + new\sSocket\( + + + + + + + \.newCall\(|Request.Builder\(\) + + + + + + + \.getConnection\( + + + + + + + \.getConnection\( + + + + + + + + + \.getOriginalFilename\(|MultipartFile\s + + + + + + + + + \.createNewFile\(|FileOutputStream\( + + + + + + + \.delete\(\) + + + + + + + new\sFileInputStream\( + + + + + + + + + @SessionAttributes + + + + + + + @ModelAttribute + + + + + + + + + sendRedirect\( + + + + + + + setHeader\(\"refresh + + + + + + + forward\( + + + + + + + + + getRuntime\(\)\.exec\( + + + + + + + ProcessBuilder|ProcessBuilder\.start + + + + + + + GroovyShell\.evaluate + + + + + + + + + SpelExpressionParser + + + + + + + getValue\(\) + + + + + + + + + (into|where)[^\$]*(\$\{[^,#=\s]+\}) + + + + + + + + + spring-boot-starter-actuator + + + + +