首页天道酬勤代码漏洞扫描工具,python漏洞扫描器编写

代码漏洞扫描工具,python漏洞扫描器编写

张世龙 05-12 07:35 62次浏览
大气犀牛p前内链/p大气犀牛p正文文字和图片来自互联网,只用于学习、交流,没有任何商业用途。 有问题请马上联系处理。 大气犀牛/p大气犀牛pPS:Python快乐交流群: 1136201545大气犀牛/p大气犀牛PPS一、使用说明:大气犀牛/p大气犀牛p1 .运行环境:大气犀牛PP 1 p大气犀牛pLinux命令行hdsdg Python2.7 p大气犀牛p2 .程序来源:大气犀牛/p大气犀牛pvimscanner//scanner文件大气犀牛/p大气犀牛pChmod a xscanner//p大气犀牛p3 .执行程序:大气犀牛/p大气犀牛p火星蜻蜓scanner//文件大气犀牛/p如果大气犀牛p没有目标帅气的花dydby,hdsdg输出可以帮助dydby并输入参数大气犀牛/p大气犀牛p魔幻热狗,大气犀牛/p大气犀牛p--h输出dydby大气犀牛/p大气犀牛p--url扫描酷花大气犀牛/p大气犀牛p--data POST请求方法p大气犀牛p--Cookie HTTP需求头cookie值大气犀牛/p大气犀牛p--用户代理http需求头User-Agent值大气犀牛/p大气犀牛p--random-agent通过浏览器进入大气p大气犀牛p--referer目标帅花上层hdsdg大气犀牛/p大气犀牛p--proxy HTTP请求头代理值大气犀牛/p大气犀牛p火星蜻蜓scanner---- URL=' 3358127.0.0 phpsessid=menn TB9B2 is j7 qha 739 ihg9of1'大气犀牛/p大气犀牛p输出扫描结果如下: 大气犀牛/p大气犀牛pbmdxn在大气犀牛/p大气犀牛p中存在XSS脆弱性,脆弱性匹配脆弱性特征库“. XSS .大气犀牛/p大气犀牛/p大气犀牛p中存在BLIND SQL注入脆弱性。 大气犀牛/p大气犀牛p激情花瓣代码:大气犀牛/p大气犀牛p代码经过验证是可行的,我个人推荐DVWA测试。 大气犀牛/p大气犀牛p#! - -编码: utf-8----大气犀牛/p大气犀牛p导入选项,random,re,string,urllib,urllib2,difflib,itertools, httplib大气犀牛/p大气犀牛pNAME='Scanner for RXSS and SQLI '大气犀牛/p大气犀牛pAUTHOR='Lishuze '大气犀牛/p大气犀牛pPREFIXES=' ', “”“”“”大气犀牛pPREFIXES=“”)大气犀牛/p大气犀牛pSUFFIXES=(、(、(-- (、)、)、)、) p大气犀牛pboolean_tests=p大气的犀牛ptamper_XSS_char_pool=)、(、大气的犀牛pGET、POST )、)、大气的犀牛pGET REFERER='Cookie '、' User-Agent '、' rrer Linux i686; rv:38.0 ) Gecko/20100101 Firefox/38.0 )、大气犀牛/p大气犀牛p'Mozilla/5.0(windowsnt6.1; WOW64 ) appleWebKit/537.36(khtml,like Gecko ) chrome/45.0.2454.101 safari/537.36 ),大气犀牛/p大气犀牛p ' Mozilla/英特尔MACOSx10_7_0; en-US ) appleWebKit/534.21(khtml,like Gecko ) chrome/11.0.678.0safari/534.21 ',大气犀牛/p大气犀牛p )大气犀牛/p大气的犀牛/p> 大气的犀牛p>(r"","\"\", inside the comment", None),大气的犀牛/p> 大气的犀牛p>(r"(?s)","\"\", enclosed by 大气的犀牛/p> 大气的犀牛p>(r'(?s)',"'', enclosed by 大气的犀牛/p> 大气的犀牛p>(r"(?s)","\"\", enclosed by 大气的犀牛/p> 大气的犀牛p>(r">[^<]*%(chars)s[^<]*(<热心的项链Z)", "\">.xss.<\", outside of tags", r"(?s)|"),大气的犀牛/p> 大气的犀牛p>(r"]*'[^>']*%(chars)s[^>']*'[^>]*>", "\"<.>\", inside the tag, inside single-quotes", r"(?s)|"),大气的犀牛/p> 大气的犀牛p>(r']*"[^>"]*%(chars)s[^>"]*"[^>]*>', "'<.>', inside the tag, inside double-quotes", r"(?s)|"),大气的犀牛/p> 大气的犀牛p>(r"]*%(chars)s[^>]*>", "\"<.xss.>\", inside the tag, outside of quotes", r"(?s)|")大气的犀牛/p> 大气的犀牛p>)大气的犀牛/p> 大气的犀牛p>DBMS_ERRORS = {大气的犀牛/p> 大气的犀牛p>"MySQL": (r"SQL syntax.*MySQL", r"Warning.*mysql_.*", r"valid MySQL result", r"MySqlClient\."),大气的犀牛/p> 大气的犀牛p>"Microsoft SQL Server": (r"Driver.* SQL[\-\_\ ]*Server", r"OLE DB.* SQL Server", r"(\W热心的项链A)SQL Server.*Driver", r"Warning.*mssql_.*", r"(\W热心的项链A)SQL Server.*[0-9a-fA-F]{8}", r"(?s)Exception.*\WSystem\.Data\.SqlClient\.", r"(?s)Exception.*\WRoadhouse\.Cms\."),大气的犀牛/p> 大气的犀牛p>"Microsoft Access": (r"Microsoft Access Driver", r"JET 矮小的棉花糖, r"Access 矮小的棉花糖),大气的犀牛/p> 大气的犀牛p>"Oracle": (r"ORA-[0-9][0-9][0-9][0-9]", r"Oracle error", r"Oracle.*Driver", r"Warning.*\Woci_.*", r"Warning.*\Wora_.*")大气的犀牛/p> 大气的犀牛p>}大气的犀牛/p> 大气的犀牛p>def _retrieve_content_xss(url, data=None):大气的犀牛/p> 大气的犀牛p>surl=""大气的犀牛/p> 大气的犀牛p>for i in xrange(len(url)):大气的犀牛/p> 大气的犀牛p>if i > url.find('?'):大气的犀牛/p> 大气的犀牛pyxdhb=surl.join(url[i]).replace(' ',"%20")大气的犀牛/p> 大气的犀牛p>else:大气的犀牛/p> 大气的犀牛pyxdhb=surl.join(url[i])大气的犀牛/p> 大气的犀牛p>try:大气的犀牛/p> 大气的犀牛p>req = urllib2.Request(surl, data, _headers)大气的犀牛/p> 大气的犀牛p踏实的纸鹤 = urllib2.urlopen(req, timeout=30).read()大气的犀牛/p> 大气的犀牛p>except Exception, ex:大气的犀牛/p> 大气的犀牛p踏实的纸鹤 = getattr(ex, "message", "")大气的犀牛/p> 大气的犀牛p>return retval or ""大气的犀牛/p> 大气的犀牛p>def _retrieve_content_sql(url, data=None):大气的犀牛/p> 大气的犀牛p踏实的纸鹤 = {HTTPCODE: httplib.OK}大气的犀牛/p> 大气的犀牛p>surl=""大气的犀牛/p> 大气的犀牛p>for i in xrange(len(url)):大气的犀牛/p> 大气的犀牛p>if i > url.find('?'):大气的犀牛/p> 大气的犀牛pyxdhb=surl.join(url[i]).replace(' ',"%20")大气的犀牛/p> 大气的犀牛p>else:大气的犀牛/p> 大气的犀牛pyxdhb=surl.join(url[i])大气的犀牛/p> 大气的犀牛p>try:大气的犀牛/p> 大气的犀牛p>req = urllib2.Request(surl, data, _headers)大气的犀牛/p> 大气的犀牛p踏实的纸鹤[HTML] = urllib2.urlopen(req, timeout=30).read()大气的犀牛/p> 大气的犀牛p>except Exception, ex:大气的犀牛/p> 大气的犀牛p踏实的纸鹤[HTTPCODE] = getattr(ex, "code", None)大气的犀牛/p> 大气的犀牛p踏实的纸鹤[HTML] = getattr(ex, "message", "")大气的犀牛/p> 大气的犀牛p>match = re.search(r"大气的犀牛/p>(?P独特的路人, retval[HTML], re.I) 大气的犀牛p踏实的纸鹤[TITLE] = match.group("result") if match else None大气的犀牛/p> 大气的犀牛p踏实的纸鹤[TEXT] = re.sub(r"(?si)|||]+>热心的项链s+", " ", retval[HTML])大气的犀牛/p> 大气的犀牛p>return retval大气的犀牛/p> 大气的犀牛p>def scan_page_xss(url, data=None):大气的犀牛/p> 大气的犀牛p>print "Start scanning RXSS:\n"大气的犀牛/p> 大气的犀牛p踏实的纸鹤, usable = False, False大气的犀牛/p> 大气的犀牛p>url = re.sub(r"=(&热心的项链Z)", "=1\g<1>", url) if url else url大气的犀牛/p> 大气的犀牛p>data=re.sub(r"=(&热心的项链Z)", "=1\g<1>", data) if data else data大气的犀牛/p> 大气的犀牛p>try:大气的犀牛/p> 大气的犀牛p>for phase in (GET, POST):大气的犀牛/p> 大气的犀牛p>current = url if phase is GET else (data or "")大气的犀牛/p> 大气的犀牛p>for match in re.finditer(r"((\A|[?&])(?P[\w]+)=)(?P[^&大气的棉花糖, current):大气的犀牛/p> 大气的犀牛p>found, usable = False, True大气的犀牛/p> 大气的犀牛p>print "Scanning %s parameter '%s'" % (phase, match.group("parameter"))大气的犀牛/p> 大气的犀牛p眼睛大的小鸭子 = ("".join(random.sample(string.ascii_lowercase, 5)))大气的犀牛/p> 大气的犀牛pzzdxl = ("".join(random.sample(string.ascii_lowercase, 5)))大气的犀牛/p> 大气的犀牛p>if not found:大气的犀牛/p> 大气的犀牛p>tampered = current.replace(match.group(0), "%s%s" % (match.group(0), urllib.quote("%s%s%s%s" % (隐形的万宝路, prefix, "".join(random.sample(TAMPER_XSS_CHAR_POOL, len(TAMPER_XSS_CHAR_POOL))), suffix))))大气的犀牛/p> 大气的犀牛p>content = _retrieve_content_xss(tampered, data) if phase is GET else _retrieve_content_xss(url, tampered)大气的犀牛/p> 大气的犀牛p>for sample in re.finditer("%s([^ ]+?)%s" % (prefix, suffix), content, re.I):大气的犀牛/p> 大气的犀牛p>#print sample.group()大气的犀牛/p> 大气的犀牛p>for regex, info, content_removal_regex in XSS_PATTERNS:大气的犀牛/p> 大气的犀牛p>context = re.search(regex % {"chars": re.escape(sample.group(0))}, re.sub(content_removal_regex or "", "", content), re.I)大气的犀牛/p> 大气的犀牛p>if context and not found and sample.group(1).strip():大气的犀牛/p> 大气的犀牛p>print "!!!%s parameter '%s' appears to be XSS vulnerable (%s)" % (phase, match.group("parameter"), info)大气的犀牛/p> 大气的犀牛p>found = retval = True大气的犀牛/p> 大气的犀牛p>if not usable:大气的犀牛/p> 大气的犀牛p>print " (x) no usable GET/POST parameters found"大气的犀牛/p> 大气的犀牛p>except KeyboardInterrupt:大气的犀牛/p> 大气的犀牛p>print "\r (x) Ctrl-C pressed"大气的犀牛/p> 大气的犀牛p>return retval大气的犀牛/p> 大气的犀牛p>def scan_page_sql(url, data=None):大气的犀牛/p> 大气的犀牛p>print "Start scanning SQLI:\n"大气的犀牛/p> 大气的犀牛p踏实的纸鹤, usable = False, False大气的犀牛/p> 大气的犀牛p>url = re.sub(r"=(&热心的项链Z)", "=1\g<1>", url) if url else url大气的犀牛/p> 大气的犀牛p>data=re.sub(r"=(&热心的项链Z)", "=1\g<1>", data) if data else data大气的犀牛/p> 大气的犀牛p>try:大气的犀牛/p> 大气的犀牛p>for phase in (GET, POST):大气的犀牛/p> 大气的犀牛p>current = url if phase is GET else (data or "")大气的犀牛/p> 大气的犀牛p>for match in re.finditer(r"((\A|[?&])(?P\w+)=)(?P[^&大气的棉花糖, current):大气的犀牛/p> 大气的犀牛p>vulnerable, usable = False, True大气的犀牛/p> 大气的犀牛p>original=None大气的犀牛/p> 大气的犀牛p>print "Scanning %s parameter '%s'" % (phase, match.group("parameter"))大气的犀牛/p> 大气的犀牛p>tampered = current.replace(match.group(0), "%s%s" % (match.group(0), urllib.quote("".join(random.sample(TAMPER_SQL_CHAR_POOL, len(TAMPER_SQL_CHAR_POOL))))))大气的犀牛/p> 大气的犀牛p>content = _retrieve_content_sql(tampered, data) if phase is GET else _retrieve_content_sql(url, tampered)大气的犀牛/p> 大气的犀牛p>for (dbms, regex) in ((dbms, regex)大气的犀牛/p>
app漏洞扫描,全网漏洞扫描工具