**
**
设计并实现基本的网站漏洞扫描系统,实现常见的网络爬虫、 SQL 注入等功能,还在此基础上扩展实现跨站脚本攻击检测、密码暴力破解、表单绕过、网站后台扫描等功能。
网络爬虫:是一种能访问网站并跟踪链接的程序,通过它,可快速地画出一个网站所包含的网页地图信息,网络爬虫根据用户输入的URL和相关限制参数进行爬取网页可用的URL,用于下一步的漏洞检测。网络爬虫是一个自动提取网页的程序,从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,采用广度优先的方式,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。
SQL注入:SQL注入是一种代码注入技术,利用应用程序数据库层的安全漏洞(如查询)。SQL注入漏洞通常在应用程序的查询接口设计不当时发生。SQL注入是根据用户输入的URL或者爬取的的URL进行漏洞检测,能够自动判断注入类型、数据库类型和版本信息、以及需要猜解得数据库内部信息。SQL注入是一种注入攻击,可以执行恶意SQL语句。它通过将任意SQL代码插入数据库查询,使攻击者能够完全控制Web应用程序后面的数据库服务器。攻击者可以使用SQL注入漏洞绕过应用程序安全措施;可以绕过网页或Web应用程序的身份验证和授权,并检索整个SQL数据库的内容;还可以使用SQL注入来添加,修改和删除数据库中的记录。
SQL注入漏洞可能会影响使用SQL数据库(如MySQL,Oracle,SQL Server或其他)的任何网站或Web应用程序。犯罪分子可能会利用它来未经授权访问用户的敏感数据:客户信息,个人数据,商业机密,知识产权等。SQL注入攻击是最古老,最流行,最危险的Web应用程序漏洞之一。
GET方式(Int型和Char型)SQL注入是本项目的主要功能模块之一,本模块主要实现的功能有以下几部分:
基于网页爬虫对目标网站所有URL进行注入类型判断,爬虫结束后会展示存在注入点的URL,同时将存在注入点的URL及其注入点类型存入数据库中,随后对用户指定URL进行数据库类型检测、记录条数判定以及数据库内容破解,其中数据库内容破解又包括了表名破解、字段名破解和账号口令破解。
其中核心部分是数据库破解,表名破解、字段名破解采用了字典暴力匹配,账号口令破解先采取字典暴力匹配,然后模拟盲注按位猜解,开启多线程工作方式以提高效率。在最后可以生成HTML报告。
同时用户可以根据自己的需要自行添加列名,表名字典,大大提高了猜解的成功率以及程序的可拓展性。
跨站攻击:是指攻击者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用户造成影响的HTML代码的攻击方式。XSS检测网页是否存在漏洞攻击,可以选择不同模式进行检测。
1整体描述
本模块实现了针对Web网站的get方式和post方式的跨站攻击的检测功能。
post方式的跨站攻击具体实现过程如下
① 获取页面表单;
② 连接待检测的网站并整合提交数据插入跨站检测语句,例如:private String xssStr = “1";
③ 使用Jsoup模拟POST提交按行获取网页内容,并将获取的内容整合为待检测内容;
④ 对比待检测的内容是否含"tkswifty"的内容,以确定是否能够存在post类型的跨站攻击;
⑤ 将存在漏洞的URL存入漏洞库并将其及其方式展示出来,生成HTML报告。
get方式的跨站攻击具体实现过程如下:
① 连接待检测的网站并整合提交数据插入跨站检测语句,例如:private String xssStr = “";
② 使用Jsoup模拟GET提交并获取网页内容,并将获取的内容整合为待检测内容;
③ 对比待检测的内容中的标签中是否含"tkswifty"的内容,以确定是否能够存在get类型的跨站攻击。
④ 将存在漏洞的URL存入漏洞库并将其及其方式展示出来,生成HTML报告。
表单绕过:检测功能用于测试网页是否存在表单绕过漏洞,即不需要输入合法的用户名和密码就可绕过登录页面。
本模块主要实现的功能是对登陆网页进行万能密码登陆,功能相对简单,并没有对验证码进行处理。其中核心部分是表单分析,得到登陆页和表单的重新构造,使用万能口令。表单绕过模块,表单绕过技术原理:在用户登录页面或管理员登录页面使用’or’=‘or’和’or’’='尝试绕过form表单实现登录的目的。通俗来说就是,当我们在碰到一些页面需要你填满所有的表项才能提交时,我们完全可能绕过这些限制。如果你仔细看一下页面的源代码,然后找到关于表单提交的那部分代码,你会发现form标签中有一个onsubmit属性。当你看到这个属性的时候,我们就很有希望尝试一下绕过这些限制。大家都知道的,javascript可以控制页面中的所有元素,包括表单元素。因此,我们可以利用javascript修改、删除以及添加任意元素到我们浏览的每一个页面。因此,我们就可以利用javascript清除表单中的ousubmit属性,这么我们就可以不受限制的成功提交表单了。onsubmit 属性通常指向了一个函数,这个函数是用来检查提交form表单数据的正确格式的。
1)整体描述
WEB网站采用表单来收集访问者的用户名和密码以确认其是否有足够权限访问某些保密信息,然后改表单被发送到WEB服务器进行处理,服务器端根据表单提供的信息生成SQL指令语句提交到SQL服务器,并根据SQL服务器返回的结果判断提交的用户名/密码组合是否有效。
表单绕过攻击是指利用表单存在的安全漏洞,通过构造一些特殊的提交语句,绕过表单安全认证从而进入网站后台获得管理权限的一种攻击手段。本模块主要实现的功能是对登陆网页进行万能密码登陆,功能相对简单,并没有对验证码进行处理。
其中核心部分是表单分析,得到登陆页和登陆验证页面、表单的重新构造,使用万能口令字典对其进行绕过。
网站后台扫描
1)整体描述
扫描目标网站隐藏目录下是否存在后台页面。
得到数据库中保存的后台URI后,对目标URL进行正则替换,访问处理后的URL,查看HTTP状态码是否是200~300以内的,从而得到目标网站隐藏后台。
ARP攻击:通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。ARP断网攻击是ARP欺骗的一种,是ARP欺骗时因为配置不当导致流量转发不出来,出现断网情况。
Burp Suite是Web应用程序测试的最佳工具之一,其多种功能可以帮我们执行各种任务.请求的拦截和修改,扫描web应用程序漏洞,以暴力破解登陆表单,执行会话令牌等多种的随机性检查。
Proxy:是一个拦截http/https的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许你拦截,查看,修改在两个方向上的原始数据流。
Spider
Scanner
Intruder:Intruder------是一个定制的高度可配置的工具,对web应用程序进行自动化攻击,可用于漏洞利用,如:暴力破解,Fuzzing测试技术等
Fuzzing技术------利用漏洞检查工具,发送数据到组件,或对指定格式进行填充,完成数以万计的检查任务,来帮助我们发现软件中不期望有的漏洞的行为。
Repeater
HTTP:Web内容存储在Web服务器上的。Web服务器所使用的是HTTP协议(可靠的数据传输协议),因此也经常被称为HTTP服务器。服务器存储因特网中的数据。客户端向服务器发送HTTP请求。服务器会在HTTP响应中回送所请求的数据。HTTP客户端和HTTP服务器共同构成了万维网的基本组件。
资源:Web服务器是Web资源的宿主。Web资源是Web内容的源头。Web资源就是web服务器文件系统的文件。也可以是根据需要生成内容的软件程序
URI URL URN:统一资源标识符(Uniform Resource Identifier,URI) :服务器资源名,有两种形式,分别为URL和URN。统一资源定位符(Uniform Resource Locator,URL):是资源标识符最常见的形式,描述了一台服务器上某资源的特定位置。统一资源名(Uniform Resource Name,URN):作为特定内容的唯一名称使用,与目前的资源所在地无关。通过URN,可以用同一个名字通过多种网络访问协议来访问资源。如:PHP下载中使用的磁力链接。
URL:第一部分schema:说明了访问资源所使用的协议类型。通常是HTTP协议。第二部分给出了服务器的的Internet地址。第三部分:指定了服务器上的某个资源。现在,几乎所有的URI都是URL。
事务:一个HTTP事务由一条(从客户端发往服务器)的请求和一个(从服务器发回客户端的)响应结果组成。通信是通过名为HTTP 报文(HTTP message)的格式化数据块进行。HTTP支持几种不同的请求命令,这些命令称为HTTP方法(HTTP method)。每条HTTP请求报文都包含一个方法。这个方法告诉服务器要执行什么动作。
get/post:
状态码:
报文:
九头蛇爆破(Hydra):
著名黑客组织thc的一款开源的暴力破解工具,可以破解多种密码。可支持:TELNET, FTP, HTTP, HTTPS, HTTP-PROXY, SMB, SMBNT, MS-SQL, MYSQL,REXEC,RSH, RLOGIN, CVS, SNMP, SMTP-AUTH, SOCKS5, VNC, POP3, IMAP, NNTP, PCNFS,ICQ, SAP/R3, LDAP2, LDAP3, Postgres, Teamspeak, Cisco auth, Cisco enable,AFP, LDAP2, Cisco AAA等密码破解。