第十二次作业
1、水平越权&垂直越权漏洞实验
水平越权:
首先lucy使用自己的账户登录系统,查看自己的个人信息
通过抓包更改username=lili,即可查看到lili的个人信息,造成水平越权
垂直越权:
有两个用户admin/123456:admin是超级管理员,具备添加/删除用户权限。pikachu/000000:pikachu用户仅仅具备查看权限
admin用户下抓包添加用户的接口:10.0.0.150:8000/vul/overpermission/op2/op2_admin_edit.php
低权限的账号pikachu通过访问添加用户接口,能够使用admin账号添加用户的功能,造成垂直越权
成功创建666用户,造成垂直越权
2、密码修改逻辑漏洞实验
访问越权修改密码靶场
进入docker中的mysql,查看网站后台管理系统的账号密码,知道该系统有两个账户
首先登录aaaaa/asdfsadf的账户
对aaaaa账户进行修改密码的操作:修改密码处未对旧密码进行验证,旧密码处输入任意内容,可以直接对密码进行修改
抓包发现id值可以被篡改,将id修改为1进行尝试,发现修改成功
此时 admin 账户的密码已经被更改为:666,通过低权限账户修改了管理员账户的密码,使用 admin/666 即可成功登录
3、验证码安全
(1)验证码绕过(on client)+ 验证码绕过(on server)
验证码绕过(on client):
抓取登录处数据包,修改密码并多次重放之后发现该验证码依然有效,说明可能存在验证码可以重复使用的情况
暴力破解,破解出密码为123456
验证码绕过(on server):
抓包多次更换密码重放之后,服务端没有显示“验证码错误”仍然返回“用户名或者密码不存在”,证明该验证码依然可以重复使用
破解出密码为admin/123456,验证码在验证之后没有销毁$_SESSION['vcode'],造成了重复使用
(2)验证码绕过(on server)实验中,为什么burp拦截开启的状态下,通过Repeater进行重放不会刷新验证码,关闭拦截后才会刷新验证码?
burp拦截开启后,会有两个数据包通过,一个是验证码核对、一个是更新验证码的数据包。因为更新验证码是第二个数据包还没有到达服务端,所以不管Repeater重放多少次都不会刷新验证码,只有第二个包通过服务端响应回来以后才会刷新验证码,也就是说关闭拦截后两个包相续通过验证码才会刷新。
4、CTFhub:SQL注入靶场,分别完成手工注入和Sqlmap工具注入的过程
启动环境,打开链接
手工注入:
输入1
构造语句,判断出数据库语句查询了两列
进行联合查询,将前面置为-1,获取数据库名字为sqli
查找库里面的所有表名,发现flag表
查flag表里的所有字段,发现flag字段
查字段flag的内容得到flag
Sqlmap工具注入:
抓取CTF字符型注入靶场的数据包,放到SQLmap目录下,使用-r参数
开始注入:
爆出sqli数据库
选择sqli数据库爆出flag表名
选择flag表爆出flag字段
获取flag字段的内容,成功拿到flag