不安全的直接对象引用
点击刷新的个人资料
并用burpsuite抓包
将username参数guest
改为admin
并发送,获取key
失效的数据认证
根据题意输入负数,结果报错
F12查看源码,发现前端验证,可以绕过
先输入一个整数提交并抓包
然后在burp中修改为负数提交
获取到key
安全性设定缺失
用户名爆破出admin
密码爆破出password
失效的会话管理
点击完成该课程并抓包
发现cookie中多了个lessionComplete参数,试着把值改为lessionComplete
,把Not删除能否完成
结果成功
没有限制URL访问
一看就是有隐藏内容,直接F12查看源代码
发现隐藏页面
进去发现空白?
往下拉
跨站脚本 (XSS)
直接<script>alert(1)</script>
试试
成了!
跨站脚本 (XSS) 1
还是老样子<script>alert(1)</script)
试试
发现不行,换个方式<img onerror="alert(1)">
试试
成功!
不安全的加密存储
这明显是个base64密码,直接解密
SQL 注入
随便输个错误字符试试
发现报错,可能有SQL注入
闭合字符串注入1'or'1'='1
不安全的加密存储 1
感觉像凯撒密码
发现熟悉的The,应该就是这个:后面的是key
不安全的直接对象引用 1
随便选中一个提交,抓包
没什么异常,依次往下尝试
发现是奇数增加,用burpsuite更改为11,提交
失效的数据认证 1
题目要求免费买个trolls的脸,就是第三个,直接买1个trolls再买-100个最后一个,看能不能抵消掉
直接成功
SQL 注入 1
发现单引号不行了,试试双引号字符型
报错,直接注入真值1"or"1"="1
成功
会话管理 1
直接点击按钮,显示我不是管理员,直接抓包看看
Cookie多了个checksum参数,值看着像base64解密
试试改为administrator,为什么不是Admin,因为题里给了提示,只有administrator才能看
成功
没有限制URL访问 1
点击按钮什么反应都没有,抓个包
依旧是熟悉的checksum,改下试试
竟然没反应!试了Admin,administrator都无反应
只好从源代码下手看看
好家伙,竟然有两个提交函数,其中一个是Admin,肯定是这个了
把两个提交按钮的标签换一下,点击按钮
完美
跨站请求伪造 (CSRF)
emmmmm,直接复制链接,改userId试试
成功
未验证的重定向和转发
将重定向的URL和请求URL组合起来https://192.168.223.148/user/redirect?to=https://192.168.223.148/root/grantComplete/unvalidatedredirectlesson?userid=exampleId
把exampleId更改为自己的id
SQL 注入 2
题目说是Email,那就按邮箱格式注入
payload:'or'1abc@abc.com
在邮箱前面加个1,是真值
NoSQL 注入 1
点击按钮就是普通的回显,抓包看看
题目说是SQL注入,那就试试吧
在发送的数据后加个'
试试能不能注入
报错了,现在只要返回值为真就能查询所有数据了
构建NOSQL payload:';return true;'
得到所有信息
题目要Marlo的GamerId
SQL 注入转义
单引号双引号都被过滤了,题目说注入转义,那我引号转义一下试试?
成了
不过这题的payload要变一下,加个注释把后面的引号注释一下1'or"1"="1"#
会话管理 2
题目说了admin,那就试试admin登录
不出所料密码错误,密码爆破应该不可取,下面有个忘记密码找回,点击看看
输入上面显示的邮箱
提示密码重置请求已发送,F12看看请求
显示改变成这个,那试试这个密码
跨站请求伪造 (CSRF) 1
题里给了个很重要的提示
任何用户都能增加你的计数器,除了你自己
所以我们创建个小号,用小号的cookie来访问这个链接
exampleId换成要过关的Id,不能用自己的账号访问自己的链接
显示成功,登录自己账号去看一眼
显示key了
SQL 注入 3
输入单引号报错,应该能注入
没用,试试其他语句,来源 手工SQL注入(二)
好家伙,终于让我试出问题了,原来是or被过滤了,那就只能不用or语句了
根据上面链接的内容进行注入,首先注入出当前数据库
查看数据库内表名
竟然没权限。。。
只好从题入手,看看有没有提示
这几个标紫的单词应该暗示着表、数据库和字段
credit card numbery
应该是要查询值的字段,customers
应该是表名,customer name
应该是查询的条件,Mary Martin
应该是要查询的人,题里也提示要Mary的信用卡号作为key提交
构建payload:1'union select creditCardNumber from customers where customerName='Mary Martin'#
成功了
其实payload可以简化一些,,不用刻意增加条件,直接1'union select creditCardNumber from customers#
不过不知道哪个是题要的,而且提交错误也扣分
直接用*也不行,因为只回显一个字段
让我康康CSRF!!
大佬牛🍺
大佬666