web应用体系结构 |
web应用程序是一种使用浏览器在互联网或企业内部网上进行访问操做的应用软件形态,也造就了B/S计算结构,提高了部署和应用的便捷性。web应用体系结构如图所示:php
针对于上图对关键组件进行介绍:python
web应用安全威胁 |
web应用信息收集 |
针对web应用的攻击也须要首先进行信息情报的收集,主要收集:服务器域名,IP地址和虚拟IP地址,web服务器端口与其余开放服务,web站点类型和版本,web应用程序类型及版本,web服务器及其存在的安全漏洞信息。mysql
攻击web服务器软件 |
web服务器的安全漏洞主要分为如下几类:git
攻击web应用程序 |
针对web应用安全威胁从攻击技术角度分为如下6类:web
攻击web数据内容 |
代码注入利用web应用程序的输入验证不完善漏洞,使得web应用程序执行由攻击者所注入的恶意指令和代码。sql
代码注入根据攻击目标不一样分为:shell
SQL注入攻击原理 |
利用web应用程序的数据层存在的输入验证不完善性安全漏洞实施的代码注入攻击技术。因为用户输入没有被正确地过滤以消除SQL语言中的转义字符,或没有进行严格的类型判断,使得用户能够输入并执行一些非预期的SQL指令代码。数据库
SQL注入攻击步骤和过程 |
http://SITE/xxx.asp?some_rec=yyy
的动态网页,当some_rec
字段为整形参数,经过不一样的三种字符串可判断该动态页面是否存在SQL注入点。
yyy
修改成yyy'
形成SQL出错,动态页面返回错误提示信息yyy
修改成yyy and 1=1
不对查询条件形成任何影响,返回正常页面yyy
修改成yyy and 1=2
查询不到任何信息some_rec
为字符型参数时,经过三种不一样的字符串肯定是否存在SQL注入点
yyy
修改成yyy'
输入引号不匹配形成SQL语句错误yyy
修改成yyy'and'1'='1'
不对查询语句形成任何影响yyy' and '1'='2'
查询不到任何信息,返回空白页面或错误提示信息SQL注入攻击工具 |
URL字符转义编程
+ URL 中+号表示空格 %2B 空格 URL中的空格能够用+号或者编码 %20 / 分隔目录和子目录 %2F ? 分隔实际的URL和参数 %3F % 指定特殊字符 %25 # 表示书签 %23 &URL 中指定的参数间的分隔符 %26 =URL 中指定参数的值 %3D
XSS跨站脚本攻击的最终目标不是提供服务的web应用程序而是使用web应用程序的用户。XSS的漏洞存在于web应用程序中,使得攻击者能够在web页面中插入恶意代码(HTML或JavaScript)用户在浏览网页时,浏览器会解析这些插入的代码,形成获取用户敏感信息、客户端渗透攻击等危害后果。后端
XSS攻击技术原理 |
web应用程序对用户输入内容的安全验证与过滤不够完善,用户提交的内容能够包括HTML、JAVAScript及其余脚本代码。例如在name变量填写为<script>alert(/xss/)</script>
,这段客户端代码将会被包含在留言浏览页面中,其余用户访问时将会执行代码。
XSS攻击技术分类 |
XSS攻击实例 |
在SEED实验环境中的PHPBB论坛程序中引入XSS安全漏洞,咱们利用以下步骤来测试与利用该漏洞。
http://www.sqllabmysqlphpbb.com
访问,首先须要运行Apache service
<script>alert('XSS');</script>
的帖子,验证该论坛程序存在XSS安全漏洞,修改以下代码,不须要密码就能够登陆相应的帐号。将发布帖子中的脚本换为
攻击者能够进一步利用XSS漏洞进行用户会话Cookie的窃取。攻击者首先架设一个服务器,该服务器将全部收到的HTPP请求显示在屏幕中,而后在论坛中发布帖子。当其余用户访问到该帖子页面时,植入脚本会在浏览器中自动执行。
web浏览器软件的安全威胁 |
web浏览器安全威胁位置
被隐蔽地挂接在一些提供真实内容的网页上,用户在访问这些网页时,网页木马会神不知鬼不觉地向用户计算机中植入恶意程序,与传统木马程序相比,网页木马仍是具备较大的差别性,并体现出更高的复杂性。
网页木马的本质核心就是利用脚本语言实现对web浏览器软件安全漏洞的渗透攻击,从而向客户端主机中植入恶意程序。咱们定义网页木马是对web浏览器端软件进行客户端渗透攻击的一类恶意移动代码,一般以网页脚本语言或flash、PDF等恶意构造的web文件形式存在,经过利用web浏览器端软件中存在的安全漏洞,得到客户端计算机的控制权限以植入恶意程序。
对网页木马机理的理解 |
因为网页木马采用客户端渗透攻击的形式,须要web浏览器端软件访问恶意构造的web页面内容,才可能触发渗透攻击过程。所以网页木马的攻击是被动式的,须要一些技术方法诱使互联网用户来访问网页木马页面。
网页挂马机制 |
在编写完成网页木马渗透攻击代码以后,为了使得可以有终端用户使他们可能存在安全漏洞的web浏览端软件来访问网页木马,攻击者还须要将网页木马挂接到一些拥有客户访问流量的网站页面上,这一过程称为网页挂马。
iframe标签的功能是在页面中建立一个内嵌的框架,用于包含和显示其余文档页面,当包含页面被浏览器打开时,被包含的页面也会同时被请求并显示在内嵌框架中。<iframe src="URL to Trojan" width="0" height="0" frameborder="0"></frame>
将内嵌框架设置为不可见,避免引发受害者的注意。
script脚本标签经过外部引用脚本的方式来包含网页木马。跳转脚本一般使用document.write动态生成包含网页木马链接的iframe内嵌标签。
利用图片、flesh等内嵌对象中的特定方法来完成指定页面的加载。这种挂马技术可以产生出一些包含木马链接的图片或flash文件,经过向一些容许用户上传图片和flesh文件的网站进行上传,从而形成这些网站特定页面被挂马的危害后果。
在同一以太网网段内,攻击者经过ARP欺骗能够进行中间人攻击,劫持全部目标网站出入的网络流量,并可能在目标网站的HTML反馈包中注入任意的恶意脚本,从而使其成为将网络访问流量链接至网页木马的挂马网站。
混淆机制 |
网页木马攻击网络中每每采用了大量的混淆技术,来对抗反病毒软件的检测,并提升反病毒工程师的分析难度,从而使得网页木马攻击网络更难被检测和摧毁,这些混淆技术也被称为“免杀”
目前使用普遍的混淆方法主要有:将代码从新排版,去除缩进、空行、换行等,同时将网页木马中的变量名替换为一组合法的随机字符串,失去自我描述能力,干扰阅读分析;经过大小写变换、十六进制编码、escape编码等方法对网页木马进行编码混淆;经过通用或定制加密工具对网页木马进行加密等到密文,使用脚本语言中包含的解密函数对密文进行解密,再进行动态输出或执行;利用字符串运算、数学运算或特殊函数混淆代码;修改网页木马文件掩码欺骗反病毒软件,或对网页木马文件结构进行混淆,来假装正常文件。
网页木马的检测与分析技术 |
kali漏洞分析之数据库评估 |
是一个python编写的盲注工具,当检测可疑的注入漏洞时会颇有用,同时是一个半自动工具,容许客户自定义参数。
从界面上能够看到设置不一样的参数只要在命令行中输入对应的参数便可
使用方式:
破解SQLSever数据库 ./dbpwaudit -s IP -d master(数据库名) -D mssql(数据库类型) -U username(字典) -P password(字典) 破解MySql数据库 ./dbpwaudit.sh -s IP -d mysql(数据库名称) -D MySQL(数据库类型) -U username(字典) -P password(字典)
能够看到在界面的最下方是bruteforce暴力枚举破译数据库的用户名和密码
一款轻量级的安全测试工具,能够检测SQL注入漏洞。跨平台开源且免费。将存在注入漏洞的URL贴进来就能够进行响应的漏洞利用。
包括MDB-Export以及MDB-Dump,mdb-parsecsv,mdb-sql,mdb-tables等子工具,具体环境具体使用
是一个利用Java开发的Oracle评估工具。它是基于插件的结构。
sqldict 用户名密码破解工具
tnscmd10g 能够向Oracle数据库注入命令
是一个开放源代码的SQL注入和接管工具,sqlsus使用perl编写,基于命令行界面,能够获取数据库结构,注入本身的SQL语句,从服务器下载文件,爬行web站点上的可写目录,上传和后空后门等。
使用方法:先利用-g参数,生成test.conf,并编辑配置文件,以后启动测试,获取数据库数据并可查看全部数据库的名字
是一款专门针对SQL server的SQL注入工具,sqlninja侧重于得到一个shell,能够远程SQL服务器的标志和特征;对管理员帐号口令的强力攻击,一旦找到口令进行提权。还具备“逃避技术”、“盲目执行”攻击模式等。注入网址是须要写在配置文件中的,默认是sqlninja.conf
是一个开源的渗透测试工具,主要用于自动化侦测和实施SQL注入攻击,以及渗透数据库服务器。SQLmap配有强大的侦测引擎,适用于高级渗透测试用户,不只能够得到数据库的指纹信息,还能够从数据库中提取数据,处理潜在文件系统以及经过带外数据链接执行系统命令。
使用方法:snamp -u "测试是否存在SQL注入的URL" --cookie'PHPHSESSID=cookies值;securtiy=low'
将会测试当前URL是否存在SQL注入漏洞,添加其余参数还能够查看数据库相关信息。
kali漏洞分析之web应用代理 |
经过web应用代理工具分析数据包,或者修改数据包重放、暴力攻击等常常会在web安全测试中用到。
咱们首先在burpsuite的proxy的option选项,将监听设置为127.0.0.1 8080
端口,同时修改firefox浏览器的web代理为127.0.0.1 8080
此时咱们能够看到访问百度时没有直接打开百度的链接,在raw页多出了一些请求
点击forword,此时浏览器打开了百度
是一个开放源码的web应用程序安全测试平台,Vega能够帮助测试SQL注入,XSS、敏感信息泄露和其余安全漏洞也有代理功能,能够利用代理功能截获数据包。
接下来以burpsuit为例的使用介绍 |
burpsuit是一个web应用程序集成攻击平台,包含了一系列burp工具,这些工具之间有大量的接口能够相互通讯。平台中全部工具共同享有同一个robust框架,以便统一处理HTTP请求。容许攻击者结合手工和自动技术枚举、分析、攻击web应用程序。
接下来是spider的使用,首先,要将浏览器的代理web改成127.0.0.1 如前步骤,而后将dvwa的安全改成low
便可,访问其余页面将会获取到页面信息。
请求到的全部页面都会在proxy主界面的HTTP History下显示出来
返回登陆界面,随便输入帐号和密码登陆确定是失败的,咱们能够在HTTP history下看到最新的一条请求,以及请求的内容
利用intruder模块,对帐号密码进行暴力破解,将POST数据包发送给intruder模块,同时,将add包围username和password两个变量,将会利用字典一次替换两个变量,对帐号密码进行暴力破解
repeater改包重放 将某个包发送至repeater中能够修改包中的内容从新实现新的访问
compare模块能够比较两个包的不一样
BAPP Store能够专门下载一些插件实现更多的功能
kali漏洞分析之Fuzz工具 |
测试xsser工具
首先复制浏览器的cookie值,并在命令行输入命令
能够获得结果,100%存在xss漏洞
由于这章的代码时利用Scanpy的接口进行数据包嗅探和提取其中的内容,我检测是不是scapy出现了错误,因而在命令行输入Scapy,出现如下问题
能够看到报错是INFO: Can't import python ecdsa lib. Disabled certificate manipulation tools
应该是在安装matplotlib模块的时候没有安装正确,因而,我利用pip install matplotlib pyx cryptography
尝试安装matplotlib模块,提示
因而我在提示目录下删除了原有的模块从新安装,此次安装成功
以后运行代码没有再报错
运行mail_sniffer.py,同时使用Telnet pop3.163.com 110 输入用户名和密码登陆邮箱,将看到mail_sniffer截获到了咱们的邮箱帐号和密码
首先咱们观察Windows靶机ARP缓存表中攻击机的IP地址与MAC地址。以及其网关的IP地址。
在运行代码时出现了如下的错误
仔细检查代码发现是interface接口错误,仔细检查代码发现,咱们选用的网络接口是eth0,而不是书中的en1。:(( 这件事告诉我不能照抄代码,须要理解代码才能正确运行。运行结束后咱们能够检查靶机的网关mac地址已经变成了攻击机的mac地址了。
因为没有找到人脸识别的pcap文件我对这个也不是特别了解,可是运行能够正常运行
代码已经上传到码云,点击这里----> 个人码云:))